Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > 数学とアルゴリズム > 微積分 > NIntegrate >

NIntegrate

Updated In 8 Graphic
NIntegrate
積分 の数値近似を与える.
NIntegrate
多重積分 の数値近似を与える.
  • 多重積分には標準的な反復子表記の変形が使われる.与えられる最初の変数は最も外側の積分に対応し,最後に行われる.
  • NIntegrateはデフォルトで,積分範囲の境界とExclusionsオプションの設定値で指定された範囲の境界で特異点の判定をする.
  • NIntegrateは,一次積分では中間点 のそれぞれで特異点の判定をする.特異点が存在しない場合,結果は から の範囲の積分と同値である.複素数 を使って,複素平面上の積分路を指定することができる.
  • 指定可能なオプション:
AccuracyGoalInfinity目標とする絶対確度の桁数
EvaluationMonitorNoneexpr が評価されたときに常に評価される式
ExclusionsNone積分範囲で除外すべき部分
MaxPointsAutomaticサンプル点の最大数
MaxRecursionAutomatic再帰的な部分分割数の最大値
MethodAutomatic使用されるアルゴリズム
MinRecursion0再帰的な部分分割数の最小値
PrecisionGoalAutomatic目標とする精度の桁数
WorkingPrecisionMachinePrecision内部計算で使用する精度
  • NIntegrateは,通常,適応的アルゴリズムを使い,必要に応じて積分の領域を再帰的に部分分割する.は反復的に部分分割する回数の最小値を指定する.MaxRecursionその最大値を指定する.
  • 十分に病的であるといえる関数には,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と設定すると,戦略メソッドが自動的に選択される.
  • 追加的なメソッドのサブオプションは,Methodの形で与えることができる.
  • NIntegrateは振動その他の被積分関数変換の入力を記号的に分析し,区分関数を部分分割し,最適アルゴリズムを選択する.
  • メソッドのサブオプションは,被積分関数の記号的分析を試みる最大秒数を指定する.
  • N[Integrate[...]]は,記号的に行うことのできない積分に対してNIntegrateを呼び出す.
  • NIntegrateは,まずすべての変数の値を局所化し,次に記号的となった変数で を評価し,繰り返して結果を数値的に評価する.
数値積分を計算する:
多次元積分(始点に特異点)を計算する:
陰的に定義された領域の面積と体積を計算する:
振動関数およびその他の複雑な関数を積分する:
数値積分を計算する:
In[1]:=
Click for copyable input
Out[1]=
 
多次元積分(始点に特異点)を計算する:
In[1]:=
Click for copyable input
Out[1]=
 
陰的に定義された領域の面積と体積を計算する:
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
 
振動関数およびその他の複雑な関数を積分する:
In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
関数を有限の実数域で積分する:
有限の実数域:
高精度で結果を得る:
有限無限を区別せず,複素線に沿って積分する:
複素平面の区分線形等高線に沿って:
複素平面の円状等高線に沿って:
関数の実部と積分路をプロットする:
ベクトル値関数とテンソル値関数:
多変数関数:
積分変数の境界は以前の変数に依存することがある:
積分範囲で被積分関数をプロットする:
不等式で定義される範囲で積分する:
積分範囲をプロットする:
五次元の単位球の体積を求める:
モンテカルロ(Monte Carlo)法を使った多変数積分:
端点に代数特異点を持つ関数を積分する:
積分範囲でプロットする:
端点における対数特異性:
積分範囲でプロットする:
両端点の特異点:
積分範囲でプロットする:
Exclusionsを使って積分範囲の内側で特異点を調べる:
積分範囲でプロットする:
辺や角に特異点を持つ関数の多変数積分:
積分範囲でプロットする:
多次元の積分範囲の角の特異点:
積分範囲でプロットする:
内点に特異点がある多変数積分:
いくつかの内点特異点:
積分範囲でプロットする:
方程式を満たす角に特異点を持つ関数の多変数積分:
積分範囲でプロットする:
積分ができない特異点を持つ関数のコーシー(Cauchy)主値:
有限の多数のケースがある区分関数:
無限の多数のケースがある区分関数:
他の任意の関数との組合せ:
Exclusionsを使って鋭角や不連続性を明示的に指定する:
積分範囲でプロットする:
有限個の多数のケースがある多変数区分積分:
不連続性と鋭角を明示的に指定する:
範囲内で実部と虚部をプロットする:
二次元の範囲で積分する:
三次元の範囲で積分する:
次元の範囲で積分する:
高振動初等関数を有限範囲で積分する:
1/100の範囲でプロットする:
高振動特殊関数:
1/100の範囲でプロットする:
振動する関数を無限範囲で積分する:
振動する特殊関数を無限範囲で:
振動する関数の和:
1/100の範囲で積分する:
振動する関数の積:
1/100の範囲でプロットする:
振動する関数のベキ:
1/100の範囲でプロットする:
振動する関数と振動しない関数の組合せ:
積分範囲でプロットする:
振動する関数の和,積,ベキ,組合せ:
積分範囲の一部でプロットする:
激しく振動する初等関数を有限範囲で多変数積分する:
範囲の百万分の一でプロットする:
振動する特殊関数を有限範囲で多変数積分する:
多変数の振動する関数を有限範囲で:
特異振動関数:
1/10の範囲でプロットする:
振動関数と特異関数の組合せ:
積分範囲でプロットする:
区分振動関数:
振動率の1/100でプロットする:
特異点を持つ区分振動関数:
積分範囲でプロットする:
AccuracyGoalオプションを使って,デフォルトの絶対許容度を変えることができる:
積分プロセスは,目標確度の基準を超えたところで停止する:
デフォルトでは精度基準しか使われないので,デフォルト設定での結果は異なる:
数値積分に使われた評価点の数を求める:
数値積分に使われた評価点を示す:
被積分関数の分母が零である曲線を除いて積分する:
被積分関数が特異点である曲線:
指定点数を超えたところで積分を中止する:
十分な適応的再帰なしでは,次の例はあまりよい結果を返さない:
MaxRecursionの値を大きくすると,はるかによい結果が得られる:
特異点の位置を指摘するとより効果的である:
左および右リーマン和:
リーマン和は小区域の左端点あるいは右端点で一様にサンプルを取る:
外挿を含まない基本的な台形規則,区分線形近似に対応する:
Romberg外挿を含む台形規則:
基本的台形規則は一様にサンプリングする(適応性がオフの場合):
台形規則を伴うデフォルトの適応的メソッド:
サンプル点の区間が均等であるニュートン・コーツの規則:
閉形の式には端点が含まれるが,開形の式には含まれない:
多項式の補間に対応するニュートン・コーツ規則:
適応性のない近似は対応する多項式の補間に等しい:
次数 のメソッドは 次までの多項式について厳密解を与える:
方法を自動的に選択したクレンショウ・カーチスの求積法:
サンプル点は一様ではない:
これらの点はをスケールし直したものである:
誤差推定に関するクロンロドッドの拡張のあるガウスの求積法:
ガウス規則は非一様のサンプル点を使う:
個のガウス点を持つメソッドは次数の多項式について厳密解を与える:
次数 のメソッドは次数 の多項式について厳密解を与えるのに十分な数の点を使う:
ロバットの点におけるクロンロッドの拡張を伴うガウスの求積法:
ロバットの点は一様ではなく,積分範囲の終点を含んでいる:
マルチパネル規則(すなわち合成規則)は指定された規則を複数の複数の下位区分に適用する:
マルチパネル規則とともに他の任意の規則を使うことができる:
一次元規則の積を使う:
規則のリストは規則の積として自動的に解釈される:
x に一様サンプリングを,y には非一様サンプリングを使う:
多次元対称規則を使った多変数積分:
多次元規則はサンプル点の疎な対称格子を使う:
サンプル点の数を増やす:
発生装置の数を変えることでタイミングが改良されることがある:
レビン型のコロケーション規則を使った振動関数の積分:
多変数のレビン型規則:
大域的適応的積分戦略:
大域誤差が十分小さくなるまで最大誤差に基づいて範囲を再分割する:
局所的適応的積分戦略:
局所誤差が十分小さくなるまですべての範囲を再分割する:
密度を増しながら一様にサンプリングする台形規則:
範囲全体を再分割しより次元の低いメソッドを使う:
端点近くの密度をサンプリングする二重指数(「tanh-sinh」)戦略:
範囲全体を再分割し,次に変換する:
一様でランダムなサンプル点のモンテカルロ積分:
サンプル点の決定論的な連続で:
モンテカルロと擬似モンテカルロの大域的適応的バージョン:
さまざまな戦略で使われたサンプル点をプロットする:
デフォルトで,ある種の記号処理が行われる:
自動数値メソッドを使うが,記号処理は行わない:
記号処理に明示的な時間制限を設ける:
区分関数の自動的な下位区分を制御する:
区分関数を自動的に下位区分すると,通常は評価数が少なくなる:
奇関数および偶関数の被積分関数の自動簡約を制御する:
自動簡約を行うと,通常関数の評価数が少なくなる:
高振動関数の自動メソッド選択を制御する:
特化されたメソッドを使うと高振動関数の評価回数が少なくなる:
検出機能をオフに切り換えると,非振動関数にかかる時間が短縮できる:
補間関数のノードで自動的に行う下位区分を制御する:
補間関数の下位区分で評価回数が少なくなる:
平滑関数の正確な補間の場合,下位区分は不要かもしれない:
NIntegrateは被積分関数の鋭角のピークを見逃すことがある:
の値を大きくすることで,積分範囲をよりきめ細かく再分割するようにできる:
異なる相対許容度についての評価に使われたサンプル数:
必要なサンプル数は,一般にPrecisionGoalについて指数的に増大する:
NIntegrateはより高い作業精度で積分を計算することができる:
使用されるPrecisionGoalWorkingPrecisionより10小さい:
閉形式の解が存在しない積分を計算する:
Interpolationを使ってデータの離散集合を積分する:
Integrateは補間関数にも使うことができる:
データと補間をプロットする:
が標準正規分布に従う場合のの確率を計算する:
NProbabilityを直接使う:
が標準的なコーシー分布に従う場合のの期待値を計算する:
NExpectationを直接使う:
確率密度関数(PDF)から累積分布関数(CDF)を計算する:
方程式を解くことで分位値を計算する:
Quantileを直接使う:
2本の曲線間の面積を両者の差分の一次元積分として計算する:
両者の領域境界上の二次元積分として:
計算された領域をプロットする:
陰的に与えられた円を含む領域の面積を計算する:
円環帯:
楕円:
楕円環帯:
ディスクセグメント:
球を含む単純な領域:
球殻の半分:
楕円体:
楕円体殻の半分:
球の楔形切片:
閉じたパラメトリック曲線で定義された領域の面積をグリーン(Green)の定理を使って計算する:
楕円形:
周期的な境界曲線:
パラメトリック曲線の長さを計算する:
楕円形:
周期的境界曲線:
三次元の円:
三次元の楕円:
より一般的な曲線:
環状バネ曲線:
パラメータ的に定義された曲面の面積を計算する:
楕円体の曲面:
環状曲面:
一般的なパラメトリック曲面:
発散定理を使い,パラメトリック曲面で囲まれた体積を計算する:
楕円体の体積:
T環状の体積:
一般的なパラメトリック曲面の体積:
循環的な熱力学処理による:
圧・容積図でサイクルを可視化する:
一様密度の領域の質量と質量中心:
質量中心を可視化する:
三次元領域:
質量中心を可視化する:
ストークス(Stokes)の定理を使ってパラメータ曲面で囲まれた範囲の質量中心:
質量中心を可視化する:
フーリエ(Fourier)変換を含む積分変換を計算する:
ラプラス(Laplace)変換:
メリン(Mellin)変換:
ヒルベルト(Hilbert)変換:
ハートレー(Hartley)変換:
について周期関数のフーリエ(Fourier)係数を求める:
近似逆変換を示す:
二次分数フーリエ変換を計算する:
正方形開口による回析波の振幅のフラウンホーファー(Fraunhofer)積分:
光学軸近くの回析パターン:
数直線上の第一種ベッセル関数 の積分表現:
組込み関数BesselJと比較する:
複素右半平面上のガンマ関数
組込み関数Gamma[z]と比較する:
数直線上の第二種不完全楕円積分
組込み関数EllipticEと比較する:
関数の ノルム:
ノルムを の関数としてプロットする:
の関数として最小化する:
で定義された関数についての重み関数 に関しての の内積:
重み関数1でのルジャンドル(Legendre)多項式 の直交性:
重み関数でのチェビシェフ(Chebyshev)多項式 の直交性:
重み関数 でのエルミート(Hermite)多項式 の直交性:
における の残差を を取り囲む等高線上で計算する:
厳密値と比較する:
における関数の数値導関数を を取り囲む等高線上で計算する:
数値的に定義された関数を微分する:
閉形の解が得られる場合は,NIntegrateの代りにIntegrateを使うことができる:
NIntegrateの結果は厳密値に近い:
NIntegrateの代りにNDSolveを使うことができる:
NIntegrateは大域的誤差制御を使うので,一般により精密な結果を返す:
オイラー・マクローリン(Euler-Maclaurin)の公式を使って総和を近似する:
オイラー・マクローリンの公式による近似は厳密な結果に非常に近い:
NSumのオイラー・マクローリン法はIntegrateまたはNIntegrateを使う:
確率密度関数分布関数から累積分布関数を求める:
CDFも同じ結果を返す:
極における関数の剰余(Residue)は等高線積分に等しい:
-からまでの実軸を含む等高線上で数値的に積分する:
いくつかの特殊関数は積分として定義される:
高精度では,特殊関数の使用が好ましいことが多い:
複雑な変動を含む被積分関数の場合,多くのレベルの適応的再帰が必要なことがある:
より高次の再帰部分分割レベルを指定すると収束結果が返される:
特異点が積分範囲の内側にある一次元積分:
特異点に適切な変換処理を行うためにその場所を指定する:
デフォルトは相対許容度を使うので,零である積分の計算には時間がかかることがある:
AccuracyGoalで絶対許容度を指定すると作業量が減る:
高次元の立体求積法に基づいたデフォルト精度の積分は時間がかかることがある:
PrecisionGoalを下げると計算速度が上がる:
同じ低目標精度(PrecisionGoal )で擬似モンテカルロ法を使うとより速くなる:
NIntegrateは15次以上の次元には自動的にモンテカルロ積分を使う:
関数を記号的に計算しようとすると時間がかかることがある:
関数定義を制限して記号評価を避ける:
低次元のメソッドを使った三次元積分のサンプル点:
関数をいくつかの特異曲線で積分する:
バージョン 1 の新機能 | バージョン 8 での修正機能
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team
フォーマット:   HTML  |  CDF