integrate ..... 定積分/不定積分

関数 f(x) の変数 x に関する原始関数(の 1 つ)を求めるには、書式

integrate(f(x), x)

を用いる。例えば、log x の不定積分を計算してみると次のようになる。

(%i1) integrate(log(x), x);

(%o1)                       x log(x) - x

a から b までの定積分を求めるには、書式

integrate(f(x), x, a, b)

を用いる。sin x の 0 から π までの定積分を計算すると次のようになる。

(%i2) integrate(sin(x), x, 0, %pi);

(%o2)                             2

積分区間には inf(正の無限大)や minf(負の無限大)を用いることが出来る。

(%i3) integrate(%e^x, x, minf, 0);

(%o3)                             1

上手くいかない場合もある:

(%i4) integrate(2^x, x, minf, 0);

                              0
                             /
                             [      x
(%o4)                        I     2  dx
                             ]
                             /
                              minf
なお、2^x の場合も不定積分(%o5)や正の無限大 [0, ∞) の方は正しく計算出来ている(%i6)。
(%i5) integrate(2^x, x);

                                  x
                                 2
(%o5)                          ------
                               log(2)


(%i6) integrate(2^x, x, 0, inf);

Integral is divergent
 -- an error.  Quitting.  To debug this try debugmode(true)

他に、定積分計算用関数 ldefint や数値積分計算用関数 romberg などがある。

注意 不定積分を実行する場合は変数 logabs を true に設定することが推奨される。この変数はデフォルトでは false のため、例えば 1/x を正しく不定積分出来ないからである:

(%i7) integrate(1/x, x);

(%o7)                               log(x)


(%i8) logabs:true;

(%o8)                                true


(%i9) integrate(1/x, x);

(%o9)                             log(abs(x))