数値積分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動

数値積分(すうちせきぶん、: numerical integration)とは、狭義には与えられる関数の定積分の値を、解析的にではなく数値的に求める求積法のことであり、広義には与えられる導関数から原関数を求めること、また微分方程式を数値的に解くことを含む。数値解析の一つである。

以下では、狭義の数値積分(関数の定積分の値を求める方法)について述べる。

乱数を使わない積分[編集]

1変数の定積分の数値積分としては乱数を使わない方法として、

などがある。

ニュートン・コーツの公式の場合、誤差項は中点則と台形公式は同じ2階導関数、シンプソンの公式とシンプソンの3/8公式は同じ4階導関数なので、同じ誤差のグループ同士は滑らかな関数の場合は大きな差はなく、基本的にはシンプソンの公式の方が誤差が小さいが、場合によってはそうならない場合もある。

二重指数関数型数値積分公式、IMT積分などの変数変換を用いた公式を適用すれば、被積分関数の端点に特異性がある場合でも、積分値を計算することが可能な場合もある。

多重積分[編集]

2変数以上の多重積分の場合は、外側から積分し、外の変数を定数として内側の積分を数値積分すれば良い。ただし、一般に、変数が増えると、モンテカルロ積分や準モンテカルロ法の方が計算効率が良くなる。

精度保証付き数値積分[編集]

定積分の精度保証付き数値計算は、被積分関数の多項式近似と多項式の値を精度保証付き数値計算する技術の組み合わせで実現される。多項式の値を計算する際はホーナー法が使われ、多項式近似にはテイラー展開多項式補間が使われる[1]

特殊関数の零点を活用する近似公式[編集]

ガウス求積直交多項式の零点を活用する積分公式である。ベッセル関数の零点を活用する積分公式も開発されており、被積分関数がベッセル関数を含む場合に有効とされている[2][3]

超関数を使った積分[編集]

特異点を持つ積分の場合、佐藤超函数を経由して複素数値積分に持ち込むことで特異点を避け、誤差を抑えられる手法が提案されている[4]

乱数を使った積分[編集]

被積分関数の定義域が高次元であったりして近似公式がうまく計算できないような場合、モンテカルロ法が上手く行く場合もある。

  • 単純なモンテカルロ積分
  • 加重サンプリングを行う VEGAS 法
  • 層化抽出法を行うよう改良を加えた MISER 法

などがあり、このような数値積分法はモンテカルロ積分とよばれる。

一様乱数の代わりに超一様分布列英語版を使うと準モンテカルロ法英語版になり、より速く収束する場合がある。

確率論やランダム行列理論などを用いて上記の近似公式とモンテカルロ積分を融合させたアルゴリズムも提案されている[5]

積分範囲が無限区間の場合[編集]

積分範囲が無限区間の場合は、下記の方法で置換積分で変換して数値積分する方法がある。ただし関数によっては違う方法を利用した方が良い場合もある。無限大に近づくときに急激に0に収束することが解析的に分かっている場合は、積分範囲を有界で区切ってしまえば良い場合もある。

数値積分が困難な場合[編集]

数値積分のアルゴリズムは、滑らかである、連続である、特異点の数や場所が限られている、など、それぞれアルゴリズムが何らかの前提条件を関数にかけていて、それに沿った物が正常に積分できる。例えば、無数に不連続点がある関数は、基本的に数値積分が困難である。更に、広義積分可能であることも通常は前提条件に入っていて、コーシーの主値積分としては積分可能であっても、広義積分不可能な関数は、前提が崩れるためおかしな結果になる場合がある。例えば はコーシーの主値積分では 0 であるが、広義積分不可能であり[6]、これを数値積分すると(そもそも正しい結果が無いが)おかしな結果が返ってくることがある。定積分が広義積分可能であるかどうかは簡単には判断が付かない場合もあるため注意が必要である。

実装[編集]

出典[編集]

  1. ^ 大石進一:「精度保証付き数値計算」、コロナ社、(1999年)
  2. ^ 緒方秀教, 杉原正顯, Bessel 関数を含む振動積分に対する数値積分公式, 数理解析研究所講究録915 巻 1995 年 171-181.
  3. ^ 緒方秀教, 杉原正顯, Bessel関数の零点を標本点に持つ補間および数値積分公式, 日本応用数理学会論文誌, 6 巻 (1996) 1 号.
  4. ^ 緒方秀教. (2017). 佐藤超函数論に基づく数値積分 (現象解明に向けた数値解析学の新展開 (2)). 数理解析研究所講究録, (2037), 57-60.
  5. ^ Nakatsukasa, Y. (2018). Approximate and integrate: Variance reduction in Monte Carlo integration via function approximation. arXiv preprint arXiv:1806.05492.
  6. ^ integrate from -1 to 1 1/x dx - Wolfram|Alpha
  7. ^ QUADPACK (nines)
  8. ^ quadpack
  9. ^ int_fcn_sing - IMSL C Math Library
  10. ^ Chapter 11. Quadrature and Differentiation - 1.69.0

関連項目[編集]

関連文献[編集]

外部リンク[編集]