ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

積分

この例では、Symbolic Math Toolbox™ を使った定積分の計算方法を説明します。

定積分

における の範囲の定積分 が 0 であることを示します。

syms x
int(sin(x),pi/2,3*pi/2)
ans = 

最大値と最小値による定積分

の場合に を最大化するには、はじめにシンボリック変数を定義し、 と仮定します。

syms a x
assume(a >= 0);

次に、最大化する関数を定義します。

F = int(sin(a*x)*sin(x/a),x,-a,a)
F = 

ここで、 の場合の特殊なケースに注意してください。計算を容易にするには、assumeAlso を使用してこの可能性を無視します (後で が最大値ではないことを確認します)。

assumeAlso(a ~= 1);
F = int(sin(a*x)*sin(x/a),x,-a,a)
F = 

のプロットを作成し、その形状を確認します。

fplot(F,[0 10])

diff を使用して、 について の導関数を求めます。

Fa = diff(F,a)
Fa = 

の零点は の局所的極値です。

hold on
fplot(Fa,[0 10])
grid on

最大値は 1 と 2 の間にあります。vpasolve を使用してこの区間における の零点の近似を求めます。

a_max = vpasolve(Fa,a,[1,2])
a_max = 

subs を使用して積分の最大値を取得します。

F_max = subs(F,a,a_max)
F_max = 

結果にはまだ厳密な数値 が含まれています。vpa を使用してそれらを数値近似と置き換えます。

vpa(F_max)
ans = 

除外した のケースがそれよりも大きい値にならないことを確認します。

vpa(int(sin(x)*sin(x),x,-1,1))
ans = 

多重積分

高次元領域の数値積分には次のような特殊関数があります。

integral2(@(x,y) x.^2-y.^2,0,1,0,1)
ans = 4.0127e-19

高次のシンボリック積分にはそのような特殊関数はありません。代わりに入れ子にされた 1 次元積分を使用します。

syms x y
int(int(x^2-y^2,y,0,1),x,0,1)
ans = 

線積分

3 次元空間のベクトル場 F を定義します。

syms x y z
F(x,y,z) = [x^2*y*z, x*y, 2*y*z];

次に、曲線を定義します。

syms t
ux(t) = sin(t);
uy(t) = t^2-t;
uz(t) = t;

曲線 u に沿った F の線積分は と定義されます。ここで、右側にある はスカラー積を表します。

この定義を使用して、範囲 の線積分を計算します。

F_int = int(F(ux,uy,uz)*diff([ux;uy;uz],t),t,0,1)
F_int = 

この厳密な結果の数値近似を求めます。

vpa(F_int)
ans =