Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

vpasum

可変精度を使用した数値的な総和

説明

s = vpasum(f,a,b) は、f で定義される級数の a から b までの和を数値的に近似します。f の既定の総和変数 xsymvar によって決定されます。総和範囲の境界 a および b は実数でなければなりません。

vpasum(f,[a,b])vpasum(f,a,b) と等価です。

s = vpasum(f,x,a,b) は、総和変数 x を使用して数値的な総和を計算します。

すべて折りたたむ

シンボリック式 11.2x を 1 から 1,000 まで数値的に合計します。

syms x;
s = vpasum(1/1.2^x,1,1000)
s = 5.0vpa('5.0')

シンボリック関数 y(x)=x2a から b までの総和を求めます。総和の範囲は実数値でなければならないため、境界 a および b が実数であると仮定します。

syms y(x)
syms a b real
y(x) = x^2;
s = vpasum(y,a,b)
s = 

x=abx2symsum(x^2, x, a, b)

計算時間を比較して、シンボリックな総和と数値的な総和を評価します。

symsum を使用して、級数 k=1(-1)klog(k)k3 のシンボリックな総和を求めます。vpa を使用して、シンボリックな総和を有効桁数 32 桁で数値的に評価します。シンボリックな総和を宣言してその数値を評価するまでの時間を測定します。

syms k
tic
y = symsum((-1)^k*log(k)/k^3,k,1,Inf)
y = 

k=1-1klog(k)k3symsum(((-sym(1))^k*log(k))/k^3, k, 1, sym(inf))

yVpa = vpa(y)
yVpa = 0.059705906160195358363429266287926vpa('0.059705906160195358363429266287926')
toc
Elapsed time is 1.612575 seconds.

計算のパフォーマンスを向上させる (計算時間を短縮する) には、vpasum を使用して、シンボリックな総和の評価なしで同じ数値的な総和を評価します。

tic
y = vpasum((-1)^k*log(k)/k^3,k,1,Inf)
y = 0.059705906160195358363429266287926vpa('0.059705906160195358363429266287926')
toc
Elapsed time is 0.164563 seconds.

入力引数

すべて折りたたむ

合計する式または関数。シンボリック数、シンボリック変数、シンボリック関数、シンボリック式、シンボリック ベクトル、シンボリック行列、またはシンボリック多次元配列として指定します。

総和範囲。2 つのコンマ区切りの数値、シンボリック数、シンボリック変数、シンボリック関数、またはシンボリック式として指定します。a から b までの総和範囲は、2 つの要素をもつベクトルを使用して指定することもできます。総和範囲は実数でなければなりません。

総和変数。シンボリック変数として指定します。x が指定されない場合、積分変数が symvar(f) によって決定されます。

アルゴリズム

級数が交代か単調かによって、vpasum はその範囲を計算するために次のいくつかの手法を試みます。レビン u 変換、オイラー・マクローリンの公式、またはファン ワインハールデンのトリック。

たとえば、オイラー・マクローリンの式は次のとおりです。

i=abf(i)=f(a)+f(b)2+abf(x)dx+(m=1p/2B2m(2m)!(f(b)2m1f(a)2m1))+Rp,

ここで B2m は 2m 番目のベルヌーイ数を表し、Rp は、a、b、p、および f に依存する誤差項です。

参照

[1] Olver, F. W. J., A. B. Olde Daalhuis, D. W. Lozier, B. I. Schneider, R. F. Boisvert, C. W. Clark, B. R. Miller, B. V. Saunders, H. S. Cohl, and M. A. McClain, eds., Chapter 2.10 Sums and Sequences, NIST Digital Library of Mathematical Functions, Release 1.0.26 of 2020-03-15.

R2020b で導入