ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

integral3

構文

  • q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax)
  • q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,Name,Value)

説明

q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax) は、領域 xmin ≤ x ≤ xmax, ymin(x) ≤ y ≤ ymax(x) および zmin(x,y) ≤ z ≤ zmax(x,y) に対して、関数 z = fun(x,y,z) の積分を近似します。

q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,Name,Value) は、1 つまたは複数の Name,Value 引数の組み合わせをもつ追加オプションを指定します。

すべて展開する

有限限界のある 3 重積分

無名関数 f(x,y,z) = y sin x + z cos x を定義します。

fun = @(x,y,z) y.*sin(x)+z.*cos(x)

領域 0 ≤ x ≤ π、0 ≤ y ≤ 1、および -1 ≤ z ≤ 1 に対して積分します。

q = integral3(fun,0,pi,0,1,-1,1)
q =

    2.0000

直交座標での単位球に対する積分

匿名関数 f(x,y,z) = x cos y + x2 cos z を定義します。

fun = @(x,y,z) x.*cos(y) + x.^2.*cos(z)

積分の極限を定義します。

xmin = -1;
xmax = 1;
ymin = @(x)-sqrt(1 - x.^2);
ymax = @(x) sqrt(1 - x.^2);
zmin = @(x,y)-sqrt(1 - x.^2 - y.^2);
zmax = @(x,y) sqrt(1 - x.^2 - y.^2);

'tiled' メソッドで定積分を評価します。

q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,'Method','tiled')
q =

    0.7796

パラメーター化関数の異常 3 重積分の評価

無名パラメーター化関数 f(x,y,z) = 10/(x2 + y2 + z2 + a) を定義します。

a = 2;
f = @(x,y,z) 10./(x.^2 + y.^2 + z.^2 + a);

領域 -Inf ≤ x ≤ 0、-100 ≤ y ≤ 0、および -100 ≤ z ≤ 0 に対して 3 重積分を評価します。

format long
q1 = integral3(f,-Inf,0,-100,0,-100,0)
q1 =

     2.734244598320928e+03

積分を再び評価し、有効桁数約 9 桁の精度を指定します。

q2 = integral3(f,-Inf,0,-100,0,-100,0,'AbsTol', 0,'RelTol',1e-9)
q2 =

     2.734244599944285e+03

入力引数

すべて展開する

fun - 被積分関数関数ハンドル

関数ハンドルとして指定される被積分関数であり、領域 xmin ≤ x ≤ xmax, ymin(x) ≤ y ≤ ymax(x)、および zmin(x,y) ≤ z ≤ zmax(x,y) に対して積分される関数を定義します。関数 fun は、同じサイズの 3 つの配列を受け入れ、対応する値の配列を返さなければなりません。要素単位の演算を実行しなければなりません。

データ型:function_handle

xmin - x の下限実数

x の下限。有限または無限の実数スカラー値として指定します。

例:

データ型:double | single

xmax - x の上限実数

x の上限。有限または無限の実数スカラー値として指定します。

データ型:double | single

ymin - y の下限実数 | 関数ハンドル

y の下限。有限または無限の実数スカラー値として指定します。四角形でない領域を積分するときに、ymin を関数ハンドル (x の関数) になるように指定することもできます。

例:

データ型:double | function_handle | single

ymax - y の上限実数 | 関数ハンドル

y の上限。有限または無限の実数スカラー値として指定します。四角形でない領域を積分するときに、ymax を関数ハンドル (x の関数) になるように指定することもできます。

例:

データ型:double | function_handle | single

zmin - z の下限実数 | 関数ハンドル

z の下限。有限または無限の実数スカラー値として指定します。四角形でない領域を積分するときに、zmin を関数ハンドル (x,y の関数) になるように指定することもできます。

データ型:double | function_handle | single

zmax - z の上限実数 | 関数ハンドル

z の上限。有限または無限の実数スカラー値として指定します。四角形でない領域を積分するときに、zmax を関数ハンドル (x,y の関数) になるように指定することもできます。

データ型:double | function_handle | single

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数個の名前と値のペアの引数を、任意の順番で指定できます。

例: 'AbsTol',1e-12 は精度の小数点以下約 12 桁に対する絶対許容誤差を設定します。

'AbsTol' - 絶対許容誤差非負の実数

'AbsTol' と非負の実数で構成され、コンマ区切りの組み合わせとして指定される、絶対許容誤差。integral3 は、絶対許容誤差を使用して絶対誤差 |q – Q| の推定を制限します。ここで、q は積分の計算値であり、Q は (未知の) 正確な値です。絶対許容誤差を減らすと、より多くの小数桁数の精度を integral3 で指定できることもあります。既定値は 1e-10 です。

    メモ:   AbsTolRelTol は一緒に動作します。integral3 は絶対許容誤差または相対許容誤差を満たす可能性がありますが、両方とも満たす必要はありません。これらの許容誤差の使用の詳細は、「ヒント」の節を参照してください。

例: 'AbsTol',1e-12 は精度の小数点以下約 12 桁に対する絶対許容誤差を設定します。

データ型:double | single

'RelTol' - 相対許容誤差非負の実数

'RelTol' と非負の実数で構成され、コンマ区切りの組み合わせとして指定される、相対許容誤差。integral3 は、相対許容誤差を使用して相対誤差 |q – Q|/|Q| の推定を制限します。ここで、q は積分の計算値であり、Q は (未知の) 正確な値です。相対許容誤差を減らすと、より多くの有効桁数の精度を integral3 で指定できることもあります。既定値は 1e-6 です。

    メモ:   RelTolAbsTol は一緒に動作します。integral3 は相対許容誤差または絶対許容誤差を満たす可能性がありますが、両方とも満たす必要はありません。これらの許容誤差の使用の詳細は、「ヒント」の節を参照してください。

例: 'RelTol',1e-9 は約 9 桁の有効桁数に相対許容誤差を設定します。

データ型:double | single

'Method' - 積分法'auto' (既定の設定) | 'tiled' | 'iterated'

'Method' と以下のいずれかの方法で構成され、コンマ区切りの組み合わせとして指定される、積分法。

積分法説明
'auto'ほとんどの場合、integral3'tiled' 法を使用します。これは、積分の極限が無限であるときに 'iterated' 法を使用します。これは既定のメソッドです。
'tiled'integral3xmin ≤ x ≤ xmax に対して積分するために integral を呼び出します。'tiled' 法で integral2 を呼び出して、ymin(x) ≤ y ≤ ymax(x) および zmin(x,y) ≤ z ≤ zmax(x,y) に対する 2 重積分を評価します。
'iterated'integral3xmin ≤ x ≤ xmax に対して積分するために integral を呼び出します。'iterated' 法で integral2 を呼び出して、ymin(x) ≤ y ≤ ymax(x) および zmin(x,y) ≤ z ≤ zmax(x,y) に対する 2 重積分を評価します。積分の極限を無限にできます。

例: 'Method','tiled' はタイル状の積分法を指定します。

出力引数

すべて展開する

q - 計算された積分数値

数値として返される、指定の領域に対する fun(x,y,z) の計算された積分。

詳細

すべて展開する

ヒント

  • integral3 関数は次を満たそうとします。

    abs(q - Q) <= max(AbsTol,RelTol*abs(q))

    ここで、q は積分の計算値であり、Q は (未知の) 正確な値です。絶対許容誤差と相対許容誤差は、精度と計算時間のトレードオフ方法を提供します。通常、相対許容誤差が積分の精度を決定します。ただし、abs(q) が十分に小さい場合、絶対許容誤差が積分の精度を決定します。通常は、絶対許容誤差と相対許容誤差を両方とも指定してください。

  • 'iterated' 法は、関数が積分領域内に不連続点をもつときに、より効果的になります。ただし、最高のパフォーマンスと精度は、不連続点で被積分関数を分割して、複数の積分結果を合計する場合に得られます。

  • 四角形でない領域を積分するときは、次の極限のいずれかまたはすべてである場合に、最良のパフォーマンスと精度が得られます。yminymaxzminzmax。四角形でない領域を積分する場合は、被積分関数値を 0 に設定することは避けてください。そうしなければならない場合は、'iterated' 法を指定してください。

  • 次の極限のいずれかまたはすべてである場合に、'iterated' メソッドを使用してください。ymin(x)ymax(x)zmin(x,y)zmax(x,y)

  • 無名関数をパラメタライズするときには、パラメーター値が関数ハンドルの寿命まで持続することを認識してください。たとえば、関数 fun = @(x,y,z) x + y + z + afun が作成されたときの a の値を使用します。後で a の値を変更することにした場合、新しい値で無名関数を再定義しなければなりません。

  • 積分の単精度極限を指定している場合、または fun が単精度の結果を返す場合、より大きな絶対許容誤差または相対許容誤差の指定が必要な場合があります。

参考

| | |

この情報は役に立ちましたか?