Main Content

quad

(非推奨) 数値積分、適応 Simpson 求積法

quad は推奨されません。代わりに integral を使用してください。

説明

q = quad(fun,a,b) は、a から b の区間で、再帰的な適応 Simpson 求積法を使用して関数 fun の積分を近似します。

q=abf(x) dx

q = quad(fun,a,b,tol) は、各部分区間に対して、既定値の 1e-6 の代わりに絶対許容誤差 tol を指定します。

q = quad(fun,a,b,tol,trace) は、診断情報の表示をオプションでオンにします。trace が非ゼロの場合、quad は再帰時に値のベクトル [fcnEvals, a, b-a, Q] を表示します。

[q,fcnEvals] = quad(___) は、関数の評価回数 fcnEvals を追加で返します。前述の任意の入力引数の組み合わせを指定できます。

すべて折りたたむ

以下の積分を計算します。

021x3-2x-5dx.

最初に、被積分を計算する無名関数 myfun を作成します。

myfun = @(x) 1./(x.^3-2*x-5);

次に、quad を使用して積分を計算します。積分範囲を 2 番目と 3 番目の入力引数として指定します。

q = quad(myfun,0,2)
q = -0.4605

または、関数ファイルを作成して被積分を quad に渡すことができます。

function y = myfun(x) 
  y = 1./(x.^3-2*x-5);
end

この方法では、quad の呼び出しは quad(@myfun,0,2) になります。

入力引数

すべて折りたたむ

被積分関数。a から b まで積分される関数を定義する関数ハンドルとして指定します。

スカラー値問題の場合、関数 y = fun(x) はベクトル引数 x を受け入れてベクトル結果 y を返さなければなりません。ここで、y は、x の各要素で評価される被積分関数です。この要件は通常、fun が行列演算子 (^*、…) ではなく配列演算子 (.^.*、…) を使用しなければならないことを意味します。

関数のパラメーター化では、必要に応じて関数 fun にパラメーターを追加する方法について説明しています。

例: q = quad(@(x) exp(1-x.^2),a,b) は無名関数ハンドルを積分します。

例: q = quad(@myFun,a,b) は、ファイルとして保存される関数 myFun を積分します。

データ型: function_handle

積分範囲。個別のスカラー引数として指定します。範囲 a および b は有限でなければなりません。

例: quad(fun,0,1) は、fun0 から 1 まで積分します。

データ型: single | double

絶対許容誤差。スカラーとして指定します。quad は、積分の各部分区間で絶対許容誤差を使用します。tol が大きいほど、quad で実行される関数評価が少なくなり、計算は速くなりますが、結果の精度は低下します。

例: quad(fun,a,b,1e-12) は絶対許容誤差を 1e-12 に設定します。

データ型: single | double

診断情報の切り替え。非ゼロのスカラーとして指定します。trace が非ゼロの場合、quad は再帰の各部分区間で値のベクトル [fcnEvals, a, b-a, Q] を表示します。

  • fcnEvals は関数評価の回数です。

  • a および b は積分範囲です。

  • Q は部分区間の計算領域です。

例: quad(fun,a,b,1e-8,1) は、診断情報をオンにして、fun を許容誤差 1e-8a から b まで積分します。

出力引数

すべて折りたたむ

積分値。スカラーとして返されます。

関数評価の回数。スカラーとして返されます。

アルゴリズム

quad は、再帰的な適応 Simpson 法を使用して低次数求積法を実装します。

参照

[1] Gander, W., and W. Gautschi. “Adaptive Quadrature—Revisited.” BIT Numerical Mathematics 40 (2000): 84–101. https://doi.org/10.1023/A:1022318402393

バージョン履歴

R2006a より前に導入