Mathematics | ![]() ![]() |
例題:2重積分
たとえば、
. を考えます。最初のステップは、計算する関数を作成することです。関数は、ベクトル入力が与えられたとき、ベクトル出力を返すものでなければなりません。ユーザは、変数が内側になっているか、外側になっているかを考えなければなりません。この例題では、内側の変数は x で、外側の変数は y です(積分の順番は、dxdyです)。この場合、積分関数は、つぎのようになります。
function out = integrnd(x,y) out = y*sin(x) + x*cos(y);
積分を行なうために、2つの関数がfunfun
デレクトリの中で使用可能になります。まず、dblquad
が、コマンドラインから直接読み込まれます。このM-ファイルはquad
を使って外側のループを計算します。各繰り返しで、quad
は内側ループを計算する2番目の関数を読み込みます。
result = dblquad(@integrnd,xmin,xmax,ymin,ymax);
最初の引数は、積分される関数名です。2番目から5番目までの引数は、つぎのようになります。
xmin |
内側積分の下限 |
xmax |
内側積分の上限 |
ymin |
外側積分の下限 |
ymax |
外側積分の上限 |
xmin = pi; xmax = 2*pi; ymin = 0; ymax = pi; result = dblquad(@integrnd,xmin,xmax,ymin,ymax)
デフォルトにより、dblquad
は、quad
を使います。quadl
を使って前の例を積分するため、つぎのステートメントを使います。
result = dblquad(@integrnd,xmin,xmax,ymin,ymax,[],@quadl);
また、quad
と同じ読み込みかた、引数を求積関数がもっているなら、ユーザ定義の求積法関数をdblquad
に渡すこともできます。
![]() | 例題:曲線の長さの計算 | 微分方程式 | ![]() |