ドキュメンテーション

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

構文

  • q = integral(fun,xmin,xmax)
  • q = integral(fun,xmin,xmax,Name,Value)

説明

q = integral(fun,xmin,xmax) は、グローバルな適応求積法と既定の許容誤差を使用して、xmin から xmax まで関数 fun を数値積分します。

q = integral(fun,xmin,xmax,Name,Value) は、1 つまたは複数の Name,Value 引数の組み合わせをもつ追加オプションを指定します。たとえば、'WayPoints' とそれに続く実数または複素数のベクトルを指定して、積分に使用する特定の点を指示します。

すべて折りたたむ

異常積分

関数 f(x) = e-x2(ln x)2 を作成します。

fun = @(x) exp(-x.^2).*log(x).^2;

x=0 から x=Inf までの積分を評価します。

q = integral(fun,0,Inf)
q =

    1.9475

パラメーター化された関数

1 つのパラメーター c をもつ関数 f(x) = 1/(x3 – 2x – c) を作成します。

fun = @(x,c) 1./(x.^3-2*x-c);

c=5x=0 から x=2 までの積分を評価します。

q = integral(@(x)fun(x,5),0,2)
q =

   -0.4605

下限の特異点

関数 f(x) = ln(x) を作成します。

fun = @(x)log(x);

既定の誤差許容量で x=0 から x=1 までの積分を評価します。

format long
q1 = integral(fun,0,1)
q1 =

  -1.000000010959678

小数点以下 12 桁の精度を指定して、積分を再び評価します。

q2 = integral(fun,0,1,'RelTol',0,'AbsTol',1e-12)
q2 =

  -1.000000000000010

中間点を使用した複雑な閉曲線積分

関数 f(z) = 1/(2z – 1) を作成します。

fun = @(z) 1./(2*z-1);

中間点を指定して、複素平面内の 01+1i1-1i0 の三角形の経路上で積分します。

q = integral(fun,0,0,'Waypoints',[1+1i,1-1i])
q =

        0 - 3.1416i

ベクトル値関数

ベクトル値関数 f(x) = [sin x, sin 2x, sin 3x, sin 4x, sin 5x] を作成し、x=0 から x=1 まで積分します。'ArrayValued',true を指定して、配列値またはベクトル値関数の積分を評価します。

fun = @(x)sin((1:5)*x);
q = integral(fun,0,1,'ArrayValued',true)
q =

    0.4597    0.7081    0.6633    0.4134    0.1433

振動関数の異常積分

関数 f(x) = x5 e-x sin x を作成します。

fun = @(x)x.^5.*exp(-x).*sin(x);

絶対および相対の許容誤差を調整し、x=0 から x=Inf までの積分を評価します。

format long
q = integral(fun,0,Inf,'RelTol',1e-8,'AbsTol',1e-13)
q =

 -14.999999999998364

入力引数

すべて折りたたむ

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

関数ハンドルとして指定する被積分関数であり、xmin から xmax まで積分される関数を定義します。

スカラー値問題の場合、関数 y = fun(x) はベクトル引数 x を受け入れてベクトル結果 y を返さなければなりません。これは通常、fun が行列演算子ではなく配列演算子を使用しなければならないことを意味します。たとえば、* (mtimes) ではなく .* (times) を使用します。'ArrayValued' オプションを true に設定した場合、fun はスカラーを受け入れて固定サイズの配列を返さなければなりません。

xmin — x の下限実数 | 複素数

x の下限。実数 (有限または無限) スカラー値または複素数 (有限) スカラー値として指定します。xmin または xmax のいずれかが複素数である場合、integral は直線経路上の xmin から xmax までの経路積分を近似します。

データ型: double | single
複素数のサポート: はい

xmax — x の上限実数 | 複素数

x の上限。実数 (有限または無限) または複素数 (有限) として指定します。xmin または xmax のいずれかが複素数である場合、integral は直線経路上の xmin から xmax までの経路積分を近似します。

データ型: double | single
複素数のサポート: はい

名前/値のペアの引数

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

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

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

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

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

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

データ型: single | double

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

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

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

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

データ型: single | double

'ArrayValued' — 配列値関数フラグfalse (既定値) | true | 0 | 1

'ArrayValued' と、falsetrue0 または 1 とで構成されるコンマ区切りの組み合わせとして指定される、配列値関数フラグ。このフラグを true に設定すると、fun がスカラー入力を受け入れ、ベクトル、行列または N 次元配列の出力を返す関数であることを示します。

既定値である 'false' は、fun がベクトル入力を受け入れベクトル出力を返す関数であることを示します。

例: 'ArrayValued',true は、被積分関数が配列値関数であることを示します。

'Waypoints' — 積分中間点ベクトル

'Waypoints' と、実数または複素数のベクトルとで構成され、コンマ区切りの組み合わせとして指定される、積分中間点。中間点を使用して、積分器に使用させる積分区間内の点を示します。中間点を使用して、被積分関数の不連続に対して効率的に積分できます。与えるベクトル内で不連続の場所を指定します。

複雑な閉曲線積分を実行するときに、中間点を指定できます。xminxmax または中間点ベクトルの要素が複素数の場合、積分は、複素平面内の一連の直線パスに対して実行されます。

例: 'Waypoints',[1+1i,1-1i] は、積分区間に沿った 2 つの複素数中間点を指定します。

データ型: single | double
複素数のサポート: はい

詳細

すべて折りたたむ

ヒント

  • 特異点を指定するために中間点を使用しないでください。その代わり、区間を分割し、終端点で特異点となる別の積分の結果を追加してください。

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

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

  • xminxmax または 中間点に対して複素数値を指定した場合は、制限および中間点のすべてが有限でなければなりません。

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

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