sum - 定和と不定和
Sum - 和の不活性形
使い方
sum(f, k) sum(f, k=m..n) sum(f, k=alpha) sum(f, k=expr)
Sum(f, k) Sum(f, k=m..n) Sum(f, k=alpha) Sum(f, k=expr)
パラメータ
f - 式
k - 名前; 和の添え字
m, n - 整数または任意の式
alpha - RootOf 式
expr - 'k' を含まない式
|
説明
|
|
•
|
sum コマンドは、「記号的な」和を求めます。これは定和または不定和に対する公式を計算するために用いられます。 Maple が閉じた形を計算不可能なときは、Maple は「未評価の」和を返します。典型的な例はsum(k,k=0..n-1) です。このとき公式 n^2/2-n/2 を返します。公式を計算するのではなく、むしろ有限個の値を足し合わせたいときは add コマンドを使用して下さい。例えば、add(k, k=0..9) は 45 を返します。sum コマンドは明示的な和を計算することも可能ですが、明示的な和が必要なプログラムにおいては add コマンドを使用すべきです。
|
|
注意: 早まった評価を防ぐために (例えば、k が前の値を持っているかもしれない場合など)、f と k を一重引用符に入れることを推奨します (およびいくつかの場合では必要となります)。 したがって、一般的なフォーマットは sum('f', 'k'=m..n) です。
|
•
|
sum('f', 'k') の呼び出しは、k に関して f(k) の不定和を計算します。この呼び出しは、全ての k に対して g(k+1)-g(k)=f(k) を満たすような公式 g(k) を計算します。
|
•
|
sum('f', 'k'=m..n) の呼び出しは、与えられた範囲 m..n の上で f(k) の定和、すなわち f(m) + f(m+1) + ... + f(n) を計算します。 g を不定和とすると、定和は g(n+1)-g(m) に一致します。例えば、sum(n,n) = sum('k', k=0..n-1) = (n^2-n)/2 です。
|
•
|
m = n+1 ならば、返される値は 0 です。m > n+1 ならば、返される値は -sum('f', 'k'=n+1..m-1) です。
|
•
|
sum('f', 'k'=alpha) の呼び出しは、多項式 alpha の根すべてをわたる f(k) の定和を計算します。ここで、alpha は RootOf でなくてはなりません。
|
•
|
sum('f', 'k'=expr) の呼び出しは、 'f' における 'k' を expr の値で置き換えます。
|
•
|
不定和に対して、 Maple は次の方法を使用します:多項式の和はベルヌーイ多項式に基づく公式を用いて計算されます。 k の有理関数の和は Moenck の方法を用いて計算されます。その結果は有理関数と Polygamma 関数 Psi(k) とその導関数を含む項の和です。 階乗(ニ項係数を含む)と累乗を含む式の和を計算するために、Gosper の決定手続きが用いられます。
|
•
|
不定和に対して、 Maple は次の方法を使用します:
|
|
多項式の和は、ベルヌーイ多項式に基づく公式を用いて計算されます。
|
|
k の有理関数の和は、Abramov の手法を用いて計算されます。その結果は、有理関数と Polygamma 関数 Psi(k) とその導関数を含む項の和です。
|
|
階乗 (ニ項係数を含む) と累乗を含む式の和を計算するために、Gosper の決定手続きが用いられます。
|
•
|
定和に関して、n-m が小さい整数ならば、その和は直接計算されます。そうでないときは、不定和と範囲を取り、場合によっては様々な超幾何和の恒等式を用いることにより計算されます。
|
•
|
Maple が和に対する閉じた形を見つけることができないと、関数の呼び出し自身が返されます。(prettyprinter は整形された和の記号を用いて sum 関数を表示します。)
|
•
|
大文字を使用した関数名 Sum は不活性な sum 関数で、単に評価しない結果を返します。プリティプリンタは表示する目的のために Sum が sum と同等であると解釈しますが、視覚的に不活性な場合を識別するために黒で和の記号を整形します。
|
|
注意: sum ルーチンは様々な総和法を認識し、このため発散する和の様々なクラスに対しても「正しい」値を与えることが可能であることに注意して下さい。環境変数 _EnvFormal を true に設定すると、sum にこのテクニックを用いるよう強制します。
|
|
|
例
|
|
| (2.1) |
| (2.2) |
| (2.3) |
>
|
sum('a[k]*x^k','k'=0..4);
|
| (2.4) |
閉じた形を見つけることができない場合には、Maple は評価されない呼び出しを返します。
>
|
sum('a[k]*x^k','k'=0..n);
|
| (2.5) |
不活性関数が使用されると、Maple は評価しない形を返します。
>
|
Sum('k/(k+1)','k'=0..n) = sum('k/(k+1)', 'k'=0..n);
|
| (2.6) |
| (2.7) |
| (2.8) |
>
|
sum('binomial(n+k,k)', 'k');
|
| (2.9) |
>
|
sum('k*binomial(n,k)', 'k'=0..n);
|
| (2.10) |
| (2.11) |
>
|
sum('1/k!', 'k'=0..infinity);
|
| (2.12) |
>
|
sum('1/k^2', 'k'=1..infinity);
|
| (2.13) |
>
|
sum('k/(k+1)', 'k'=RootOf(x^3-2));
|
| (2.14) |
>
|
sum('k^(3/2)', 'k'=1..infinity);
|
| (2.15) |
>
|
sum('(-1)^k', 'k'=1..infinity);
|
| (2.16) |
_EnvFormal が true に設定されている場合、sum は認識される発散和のクラスを返します。
| (2.17) |
>
|
sum('k^(3/2)', 'k'=1..infinity);
|
| (2.18) |
>
|
sum('(-1)^k', 'k'=1..infinity);
|
| (2.19) |
|
|