Next: Introduction to Series, Previous: Sums Products and Series, Up: Sums Products and Series [Contents][Index]
それぞれの和や積に独自のインデックスを与えることで、
式exprを変換します。
これは、
和や積と一緒に機能する時
changevarによりよい精度を与えます。
独自のインデックスの形式はjnumberです。
量numberは、gensumnumに参照することで決定されます。
これを、ユーザーは変更することができます。
例えば、gensumnum:0$はそれを再設定します。
Lの中のそれぞれの要素xに関するexprの和を表します。
もし引数Lがリストに評価されなければ、名詞形'lsumが返されます。
例:
(%i1) lsum (x^i, i, [1, 2, 7]);
                            7    2
(%o1)                      x  + x  + x
(%i2) lsum (i^2, i, rootsof (x^3 - 1, x));
                     ====
                     \      2
(%o2)                 >    i
                     /
                     ====
                                   3
                     i in rootsof(x  - 1, x)
和の外側の掛け算因子を内側に移動します。
もし外側の式でインデックスが使われているなら、
関数は、sumcontractに関してするのと同じように、合理的なインデックスを見つけようとします。
これは、本質的に、和のoutativeプロパティの逆の考えですが、
このプロパティを取り除かず、ただ無視するだけであることに注意してください。
いくつかの場合、
intosumの前に、scanmap (multthru, expr)が必要になるかもしれません。
インデックスiがi_0からi_1まで変えたexprの値の積を返します。
名詞形'productは、大文字Πとして表示されます。
productは、exprと下限上限i_0、i_1を評価し、
productは、インデックスiをクォートします(評価しません)。
もし上限と下限が整数差だけ違うなら、 exprは、インデックスiのそれぞれの値に関して評価され、 結果は陽な積です。
そうでなければ、インデックスの範囲は不定です。
積を整理するためにいくつかの規則が適用されます。
グローバル変数simpproductがtrueの時、
更なる規則が適用されます。
いくつかの場合、式整理は、積でない結果を出力します;
そうでなければ、結果は名詞形'productです。
nounsとevflagも参照してください。
例:
(%i1) product (x + i*(i+1)/2, i, 1, 4);
(%o1)           (x + 1) (x + 3) (x + 6) (x + 10)
(%i2) product (i^2, i, 1, 7);
(%o2)                       25401600
(%i3) product (a[i], i, 1, 7);
(%o3)                 a  a  a  a  a  a  a
                       1  2  3  4  5  6  7
(%i4) product (a(i), i, 1, 7);
(%o4)          a(1) a(2) a(3) a(4) a(5) a(6) a(7)
(%i5) product (a(i), i, 1, n);
                             n
                           /===\
                            ! !
(%o5)                       ! !  a(i)
                            ! !
                           i = 1
(%i6) product (k, k, 1, n);
                               n
                             /===\
                              ! !
(%o6)                         ! !  k
                              ! !
                             k = 1
(%i7) product (k, k, 1, n), simpproduct;
(%o7)                          n!
(%i8) product (integrate (x^k, x, 0, 1), k, 1, n);
                             n
                           /===\
                            ! !    1
(%o8)                       ! !  -----
                            ! !  k + 1
                           k = 1
(%i9) product (if k <= 5 then a^k else b^k, k, 1, 10);
                              15  40
(%o9)                        a   b
デフォルト値: false
simpsumがtrueの時、
sumの結果は、整理されます。
この整理は、時々、閉形式を生成することができるかもしれません。
もしsimpsumがfalseもしくは、もしクォートされた形'sumが使われたなら、
値は、数学で使われるΣ表示の表現である和の名詞形です。
インデックスiがi_0からi_1まで変えたexprの値の和を返します。
名詞形'sumは、大文字Σとして表示されます。
sumは、被和exprと下限上限i_0、i_1を評価し、
sumは、インデックスiをクォートします(評価しません)。
もし上限と下限が整数差だけ違うなら、 被和exprは、インデックスiのそれぞれの値に関して評価され、 結果は陽な和です。
そうでなければ、インデックスの範囲は不定です。
積を整理するためにいくつかの規則が適用されます。
グローバル変数simpsumがtrueの時、
更なる規則が適用されます。
いくつかの場合、式整理は、和でない結果を出力します;
そうでなければ、結果は名詞形'sumです。
evflag(評価フラグ) cauchysumがtrueの時、
和の積は、コーシー積として表現されます。
コーシー積では、内側の和のインデックスは、独立に変化するのではなく、外側の和のインデックスの関数になります。
グローバル変数genindexは、
和の次のインデックスを生成するのに使われるアルファベット前置です。
gensumnumは、
自動生成されるインデックスが必要な時、
和の次のインデックスを生成するのに使われる数値接尾です。
gensumnumがfalseの時,
自動生成されるインデックスは、接尾なしのgenindexのみです。
sumcontract, intosum, bashindices, niceindices,
nouns, evflag, zeilbergerも参照してください。
例:
(%i1) sum (i^2, i, 1, 7);
(%o1)                          140
(%i2) sum (a[i], i, 1, 7);
(%o2)           a  + a  + a  + a  + a  + a  + a
                 7    6    5    4    3    2    1
(%i3) sum (a(i), i, 1, 7);
(%o3)    a(7) + a(6) + a(5) + a(4) + a(3) + a(2) + a(1)
(%i4) sum (a(i), i, 1, n);
                            n
                           ====
                           \
(%o4)                       >    a(i)
                           /
                           ====
                           i = 1
(%i5) sum (2^i + i^2, i, 0, n);
                          n
                         ====
                         \       i    2
(%o5)                     >    (2  + i )
                         /
                         ====
                         i = 0
(%i6) sum (2^i + i^2, i, 0, n), simpsum;
                              3      2
                   n + 1   2 n  + 3 n  + n
(%o6)             2      + --------------- - 1
                                  6
(%i7) sum (1/3^i, i, 1, inf);
                            inf
                            ====
                            \     1
(%o7)                        >    --
                            /      i
                            ====  3
                            i = 1
(%i8) sum (1/3^i, i, 1, inf), simpsum;
                                1
(%o8)                           -
                                2
(%i9) sum (i^2, i, 1, 4) * sum (1/i^2, i, 1, inf);
                              inf
                              ====
                              \     1
(%o9)                      30  >    --
                              /      2
                              ====  i
                              i = 1
(%i10) sum (i^2, i, 1, 4) * sum (1/i^2, i, 1, inf), simpsum;
                                  2
(%o10)                       5 %pi
(%i11) sum (integrate (x^k, x, 0, 1), k, 1, n);
                            n
                           ====
                           \       1
(%o11)                      >    -----
                           /     k + 1
                           ====
                           k = 1
(%i12) sum (if k <= 5 then a^k else b^k, k, 1, 10);
          10    9    8    7    6    5    4    3    2
(%o12)   b   + b  + b  + b  + b  + a  + a  + a  + a  + a
定数だけ異なる上限と下限を持つ足し算の和すべてを結合します。
結果は、
そんな和のそれぞれの集合が、この和を形成するよう抽出されなければならないすべての適切な余分の項に加えられた1つの和を含む式です。
sumcontractは、互換性のある和すべてを結合し、
可能なら和の1つからインデックスの1つを使い、もし供給されたどれもが使えないなら、合理的なインデックスを形成するよう試みます。
sumcontractの前に、intosum (expr)を実行する必要があるかもしれません。
デフォルト値: false
sumexpandがtrueの時、
和の積と、指数和は、入れ子の和に整理されます。
cauchysumも参照してください。
例:
(%i1) sumexpand: true$ (%i2) sum (f (i), i, 0, m) * sum (g (j), j, 0, n);
                     m      n
                    ====   ====
                    \      \
(%o2)                >      >     f(i1) g(i2)
                    /      /
                    ====   ====
                    i1 = 0 i2 = 0
(%i3) sum (f (i), i, 0, m)^2;
                     m      m
                    ====   ====
                    \      \
(%o3)                >      >     f(i3) f(i4)
                    /      /
                    ====   ====
                    i3 = 0 i4 = 0
Next: Introduction to Series, Previous: Sums Products and Series, Up: Sums Products and Series [Contents][Index]