NIntegrate
NIntegrate[f,{x,xmin,xmax}]
積分 の数値近似を与える.
NIntegrate[f,{x,xmin,xmax},{y,ymin,ymax},…]
多重積分 の数値近似を与える.
NIntegrate[f,{x,y,…}∈reg]
幾何学領域 reg で積分する.
詳細とオプション
- 多重積分には標準的な反復子表記の変形が使われる.与えられる最初の変数は最も外側の積分に対応し,最後に行われる.
- NIntegrateはデフォルトで,積分範囲の境界とExclusionsオプションの設定値で指定された範囲の境界で特異点の判定をする.
- NIntegrate[f,{x,x0,x1,…,xk}]は,一次積分では中間点 xiのそれぞれで特異点の判定をする.特異点が存在しない場合,結果は x0から xkの範囲の積分と同値である.複素数 xiを使って,複素平面上の積分路を指定することができる.
- 指定可能なオプション
-
AccuracyGoal Infinity 目標とする絶対確度の桁数 EvaluationMonitor None expr が評価されたときに常に評価される式 Exclusions None 積分範囲で除外すべき部分 MaxPoints Automatic サンプル点の最大数 MaxRecursion Automatic 再帰的な部分分割数の最大値 Method Automatic 使用されるアルゴリズム MinRecursion 0 再帰的な部分分割数の最小値 PrecisionGoal Automatic 目標とする精度の桁数 WorkingPrecision MachinePrecision 内部計算で使用する精度 - NIntegrateは,通常,適応的アルゴリズムを使い,必要に応じて積分の領域を再帰的に部分分割する.MinRecursionは反復的に部分分割する回数の最小値を指定する.MaxRecursionその最大値を指定する.
- NIntegrateは,通常,誤差推定値が最終的な結果として,指定されたAccuracyGoalあるいはPrecisionGoalに達するまで,部分分割を続ける.
- 低次の積分の場合,PrecisionGoalの設定値はWorkingPrecisionに関連する.高次の積分の場合には,PrecisionGoalの設定値として一般に固定値(通常2)が使われる.
- 十分に病的であるといえる関数には,NIntegrateに使用されているアルゴリズムが誤った解答を与えることがあり得るということを十分理解しておいてほしい.ほとんどの場合,NIntegrateのオプションの設定に対する敏感さを見ることでこの解答を調べることができる.
- Methodオプションが取り得る明示的な設定値には次のようなものがある.
-
"GlobalAdaptive" 大域的な適応的積分方法 "LocalAdaptive" 局所的な適応的積分方法 "DoubleExponential" 二重指数求積法 "MonteCarlo" モンテカルロ(Monte Carlo)積分 "AdaptiveMonteCarlo" 適応的モンテカルロ積分 "QuasiMonteCarlo" 擬似モンテカルロ積分 "AdaptiveQuasiMonteCarlo" 適応的擬似モンテカルロ積分 - Method->{"strategy",Method->"rule"}あるいは Method->{"strategy",Method->{rule1,rule2,…}}のときの使用可能なメソッドには次のようなものがある.
-
"GlobalAdaptive" 大域的誤差推定に基づいて下位区分をする "LocalAdaptive" 局所的誤差推定のみに基づいて下位区分を行う - 規則として使われるメソッドには次のようなものがある.
-
"CartesianRule" 規則の多次元積 "ClenshawCurtisRule" クレンショウ・カーチス(Clenshaw–Curtis)規則 "GaussKronrodRule" クロンロッド(Kronrod)領域を伴うガウス(Gauss)点 "LevinRule" レビン(Levin)型の振動規則 "LobattoKronrodRule" クロンロッド領域を伴うガウス・ロバット(Gauss–Lobatto)点 "MultidimensionalRule" 多次元対称規則 "MultipanelRule" 1D規則の組合せ "NewtonCotesRule" ニュートン・コーツ(Newton–Cotes)規則 "RiemannRule" リーマン(Riemann)和の規則 "TrapezoidalRule" 一次元における一様な点 - Method->"rule"と設定すると,戦略メソッドが自動的に選択される.
- 追加的なメソッドのサブオプションは,Method->{…,opts}の形で与えることができる.
- NIntegrateは振動その他の被積分関数変換の入力を記号的に分析し,区分関数を部分分割し,最適アルゴリズムを選択する.
- メソッドのサブオプション"SymbolicProcessing"は,被積分関数の記号的分析を試みる最大秒数を指定する.
- N[Integrate[…]]は,記号的に行うことのできない積分に対してNIntegrateを呼び出す.
- NIntegrateは,まずすべての変数の値を局所化し,次に記号的となった変数で f を評価し,繰り返して結果を数値的に評価する.
- NIntegrateは属性HoldAllを持ち,Blockを用いて実質的に変数を局所化する.
例題
すべて開くすべて閉じるスコープ (56)
基本的な用法 (12)
特異積分 (9)
Exclusionsを使って積分範囲の内側で特異点を調べる:
区分積分 (9)
Exclusionsを使って鋭角や不連続性を明示的に指定する:
振動積分 (15)
領域積分 (11)
塗り潰された平行四辺形を含む,任意の基本的な領域上で積分する:
任意のImplicitRegion上で積分する:
任意のParametricRegion上で積分する:
任意のMeshRegion上で積分する:
任意のBoundaryMeshRegion上で積分する:
オプション (30)
AccuracyGoal (1)
AccuracyGoalオプションを使って,デフォルトの絶対許容度を変えることができる:
MaxRecursion (1)
Method (21)
積分規則 (10)
積分戦略 (6)
MinRecursion (1)
PrecisionGoal (1)
必要なサンプル数は,一般にPrecisionGoalについて指数的に増大する:
WorkingPrecision (1)
NIntegrateはより高い作業精度で積分を計算することができる:
使用されるPrecisionGoalはWorkingPrecisionより10小さい:
アプリケーション (26)
基本アプリケーション (2)
確率と期待値 (3)
線,面,体積の積分 (3)
積分変換 (4)
特殊関数の積分表現 (3)
関数のノルムと内積 (2)
特性と関係 (9)
NIntegrateは,低次元の領域については面積分を計算する:
パラメトリック曲面 についての面(曲線等)積分 は,通常の積分 で与えられる.ただし,はグラム行列式である:
閉形の解が得られる場合は,NIntegrateの代りにIntegrateを使うことができる:
NIntegrateの結果は厳密値に近い:
NIntegrateの代りにNDSolveを使うことができる:
NIntegrateは大域的誤差制御を使うので,一般により精密な結果を返す:
オイラー・マクローリン(Euler–Maclaurin)の公式を使って総和を近似する:
オイラー・マクローリンの公式による近似は厳密な結果に非常に近い:
NSumのオイラー・マクローリン法はIntegrateまたはNIntegrateを使う:
CDFも同じ結果を返す:
極における関数の剰余(Residue)は等高線積分に等しい:
考えられる問題 (6)
複雑な変動を含む被積分関数の場合,多くのレベルの適応的再帰が必要なことがある:
より高次の再帰部分分割レベルを指定すると収束結果が返される:
デフォルトは相対許容度を使うので,零である積分の計算には時間がかかることがある:
AccuracyGoalで絶対許容度を指定すると作業量が減る:
高次元の立体求積法に基づいたデフォルト精度の積分は時間がかかることがある:
PrecisionGoalを下げると計算速度が上がる:
同じ低目標精度(PrecisionGoal )で擬似モンテカルロ法を使うとより速くなる:
NIntegrateは15次以上の次元には自動的にモンテカルロ積分を使う:
この関数を記号パラメータに適用するとNIntegrateからのメッセージが生成される:
この関数をNMinimizeのような他の数値関数と一緒に使っても同じように警告が出される:
このメッセージを避けるために,引数が数値のときだけ評価する関数を定義する:
これで,この関数をNMinimizeのような他の数値関数と一緒に使えるようになった:
テキスト
Wolfram Research (1988), NIntegrate, Wolfram言語関数, https://reference.wolfram.com/language/ref/NIntegrate.html (2014年に更新).
CMS
Wolfram Language. 1988. "NIntegrate." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2014. https://reference.wolfram.com/language/ref/NIntegrate.html.
APA
Wolfram Language. (1988). NIntegrate. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NIntegrate.html