コンテンツにスキップ

「数値積分」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
編集の要約なし
Cewbot (会話 | 投稿記録)
m Cewbot: ウィキ文法修正 16: Unicodeの制御文字
 
(13人の利用者による、間の30版が非表示)
1行目: 1行目:
'''数値積分'''(すうちせきぶん、{{lang-en-short|numerical integration}})とは、狭義には与えられる関数の[[定積分]]の値を、[[解析的]]にではなく数値的に求める[[求積法]]のことであり、広義には与えられる[[導関数]]から原関数を求める手法、また[[微分方程式]]を数値的に解く手法 ([[常微分方程式の数値解法]]、[[偏微分方程式の数値解法]]) を含む<ref name="Yamamoto1">{{Cite book |和書 |author=山本哲朗 |title=数値解析入門 |edition=増訂版 |date=2003-06 |publisher=[[サイエンス社]] |series=サイエンスライブラリ 現代数学への入門 14 |ISBN=4-7819-1038-6}}</ref>。[[数値解析]]の一分野である。
{{Pathnav|[[数学]]|[[数値解析]]|frame=1}}
'''数値積分'''(すうちせきぶん、{{lang-en-short|numerical integration}})とは、狭義には与えられる関数の[[定積分]]の値を、解析的にではなく数値的に求める[[求積法]]のことであり、広義には与えられる[[導関数]]から原関数を求める手法、また[[微分方程式]]を数値的に解く手法 ([[常微分方程式の数値解法]]、[[偏微分方程式の数値解法]]) を含む<ref name="Yamamoto1">{{Cite book |和書 |author=山本哲朗 |title=数値解析入門 |edition=増訂版 |date=2003-06 |publisher=[[サイエンス社]] |series=サイエンスライブラリ 現代数学への入門 14 |ISBN=4-7819-1038-6}}</ref>。[[数値解析]]の一分野である。


狭義の数値積分(関数の定積分の値を求める方法)は[[有限要素法]]などで応用されている<ref name="Yamamoto1"/>。
狭義の数値積分(関数の定積分の値を求める方法)は[[有限要素法]]などで応用されている<ref name="Yamamoto1"/>。
11行目: 10行目:
** それについでシンプルな[[台形公式]]
** それについでシンプルな[[台形公式]]
** 簡便な割に高精度な[[シンプソンの公式]]
** 簡便な割に高精度な[[シンプソンの公式]]
* {{ill2|ロンバーグ積分|en|Romberg's method}} ([[台形公式]]と[[数列の加速法]]を組み合わせた公式)
* [[ロンバーグ積分]] ([[台形公式]]と[[数列の加速法]]を組み合わせた公式)
* 積分点を適応的に取る[[ガウス求積]]、[[ガウス=クロンロッド求積法]]、{{ill2|クレンショー・カーティス法|en|Clenshaw–Curtis quadrature}}
* 積分点を適応的に取る[[ガウス求積]]、[[ガウス=クロンロッド求積法]]、{{ill2|クレンショー・カーティス法|en|Clenshaw–Curtis quadrature}}
などがある。
などがある。
17行目: 16行目:
ニュートン・コーツの公式の場合、誤差項は中点則と台形公式は同じ2階導関数、シンプソンの公式とシンプソンの3/8公式は同じ4階導関数なので、同じ誤差のグループ同士は滑らかな関数の場合は大きな差はなく、基本的にはシンプソンの公式の方が誤差が小さいが、場合によってはそうならない場合もある。
ニュートン・コーツの公式の場合、誤差項は中点則と台形公式は同じ2階導関数、シンプソンの公式とシンプソンの3/8公式は同じ4階導関数なので、同じ誤差のグループ同士は滑らかな関数の場合は大きな差はなく、基本的にはシンプソンの公式の方が誤差が小さいが、場合によってはそうならない場合もある。


[[二重指数関数型数値積分公式]]、IMT積分<ref>伊理正夫, 森口繁一, & 高澤嘉光. (1970). ある数値積分公式について (科学計算基本ライブラリーのアルゴリズムの研究会報告集).</ref>などの変数変換を用いた公式を適用すれば、被積分関数の端点に特異性がある場合でも、積分値を計算することが可能な場合もある。
[[二重指数関数型数値積分公式]]、IMT積分<ref>{{Cite journal|和書|author=伊理正夫, 森口繁一, 高澤嘉光 |date=1970-08 |url=https://hdl.handle.net/2433/108132 |title=ある数値積分公式について (科学計算基本ライブラリーのアルゴリズムの研究会報告集) |journal=数理解析研究所講究録 |ISSN=1880-2818 |publisher=京都大学数理解析研究所 |volume=91 |pages=82-118 |hdl=2433/108132 |CRID=1050001201939101568}}</ref>などの変数変換を用いた公式を適用すれば、被積分関数の端点に特異性がある場合でも、積分値を計算することが可能な場合もある。


=== 多重積分 ===
=== 多重積分 ===
2変数以上の[[多重積分]]の場合は、外側から積分し、外の変数を定数として内側の積分を数値積分すれば良い。ただし一般に、変数が増えると、[[モンテカルロ法]]や準モンテカルロ法の方が計算効率が良くなる。
2変数以上の[[多重積分]]の場合は、外側から積分し、外の変数を定数として内側の積分を数値積分すれば良い。ただし一般に、変数が増えると、[[モンテカルロ法]]や準モンテカルロ法の方が計算効率が良くなる。
なお、1983年当時における[[多重積分]]の理論、アルゴリズムの状況は次元に応じて次のように分類されている<ref>Davis,P. J.,and Rabinowitz,P.,Methods of Nunlerical Integration,2nd Edition,
なお、1983年当時における[[多重積分]]の理論、アルゴリズムの状況は次元に応じて次のように分類されている<ref>Davis,P. J.,and Rabinowitz,P.,Methods of Numerical Integration,2nd Edition,
Academic Press,San Diego,1984.</ref><ref name="JSIAM">[https://www.jstage.jst.go.jp/article/bjsiam/8/4/8_KJ00005769113/_pdf 手塚集. (1998). 数値多重積分に関する話題 (<特集> 数値計算). 応用数理, 8(4), 267-276.] [[日本応用数理学会]]より発行</ref>。
Academic Press,San Diego,1984.</ref><ref name="JSIAM">{{Cite journal|和書|author=手塚集 |year=1998 |url=https://doi.org/10.11540/bjsiam.8.4_267 |title=数値多重積分に関する話題(<特集>数値計算) |journal=応用数理 |volume=8 |issue=4 |pages=267-276 |doi=10.11540/bjsiam.8.4_267 |CRID=1390282680742275200 |ISSN=09172270 |publisher=日本応用数理学会}}</ref>。
{{Quotation|
{{Quote
|text=
* Range O(2次元):満足できる状況.
* Range O(2次元):満足できる状況.
* Range I(3−7次元):プロダクトルールがその変形でなんとかなる.
* Range I(3−7次元):プロダクトルールがその変形でなんとかなる.
30行目: 28行目:
* Range III(15次元以上):[[モンテカルロ法]], 準モンテカルロ法が必要になる.
* Range III(15次元以上):[[モンテカルロ法]], 準モンテカルロ法が必要になる.
}}
}}
次元の数値積分は[[金融工学]]などで必要とされているため、活発に研究されている<ref name="JSIAM"/><ref>[https://www.unisys.co.jp/tec_info/tr90/9003.pdf 量子コンピュータを用いた数値積分計算について, UNISYS TECHNOLOGY REVIEW 第90号, AUG. 2006.]</ref>。
次元空間での数値積分は[[金融工学]]などで必要とされているため、活発に研究されている<ref name="JSIAM"/><ref>{{Cite journal|和書|author=加藤公一 |date=2006-08 |url=https://www.biprogy.com/pdf/tec_info/9003.pdf |format=PDF |title=量子コンピュータを用いた数値積分計算について |journal=Unisys技報 : Unisys technology review |ISSN=09149996 |publisher=日本ユニシス |volume=26 |issue=2 |pages=150-167 |CRID=1521980704882269440}}</ref>。


===精度保証付き数値積分===
===精度保証付き数値積分===
定積分の[[精度保証付き数値計算]]は、被積分関数の多項式近似と多項式の値を精度保証付き数値計算する技術の組み合わせで実現される。多項式の値を計算する際は[[ホーナー法]]が使われ、多項式近似には[[テイラー展開]]や[[多項式補間]]が使われる<ref>[[大石進一]]:「精度保証付き数値計算」、コロナ社、(1999年)</ref>。
定積分の[[精度保証付き数値計算]]は、被積分関数の多項式近似と多項式の値を精度保証付き数値計算する技術の組み合わせで実現される。多項式の値を計算する際は[[ホーナー法]]が使われ、多項式近似には[[テイラー展開]]や[[多項式補間]]が使われる<ref>{{cite book|和書|author=大石進一 |author-linj=大石進一 |title=精度保証付き数値計算 |publisher=コロナ社 |year=2000 |series=現代非線形科学シリーズ |ISBN=9784339026054 |url=https://ndlsearch.ndl.go.jp/books/R100000002-I000002845431}}</ref>。


===特殊関数の零点を活用する近似公式===
===特殊関数の零点を活用する近似公式===
[[ガウス求積]]は[[直交多項式]]の零点を活用する積分公式である<ref name="Yamamoto1"/>。[[ベッセル関数]]の零点を活用する積分公式も開発されており、被積分関数が[[ベッセル関数]]を含む場合に有効とされている<ref>緒方秀教, [[杉原正顯]], Bessel 関数を含む振動積分に対する数値積分公式, [[京都大学数理解析研究所]]講究録915 1995 171-181.</ref><ref>緒方秀教, [[杉原正顯]], Bessel関数の零点を標本点に持つ補間および数値積分公式, [[日本応用数理学会]]論文誌, 6 巻 (1996) 1 .</ref>。
[[ガウス求積]]は[[直交多項式]]の零点を活用する積分公式である<ref name="Yamamoto1"/>。[[ベッセル関数]]の零点を活用する積分公式も開発されており、被積分関数が[[ベッセル関数]]を含む場合に有効とされている<ref>{{Cite journal|和書|author=緒方秀教, [[杉原正顯]] |date=1995-06 |url=https://hdl.handle.net/2433/59609 |title=Bessel関数を含む振動積分に対する数値積分公式(数値計算アルゴリズムの現状と展望II) |journal=数理解析研究所講究録 |ISSN=1880-2818 |publisher=京都大学数理解析研究所 |volume=915 |pages=171-181 |hdl=2433/59609 |CRID=1050001202174401664}}</ref><ref>{{Cite journal|和書 |author=緒方秀教, 杉原正顯 |year=1996 |url=https://doi.org/10.11540/jsiamt.6.1_39 |title=Bessel関数の零点を標本点に持つ補間および数値積分公式 |journal=日本応用数理学会論文誌 |volume=6 |issue=1 |pages=39-66 |doi=10.11540/jsiamt.6.1_39 |publisher= 日本応用数理学会}}</ref>。


===超関数を使った積分===
===超関数を使った積分===
[[特異点 (数学)|特異点]]を持つ積分の場合、[[佐藤超函数]]を経由して複素数値積分に持ち込むことで[[特異点 (数学)|特異点]]を避け、誤差を抑えられる手法が提案されている<ref>緒方秀教. (2018). 佐藤超函数論に基づく数値解析. 応用数理, 27(4), 8-15.</ref><ref>緒方秀教. (2017). 佐藤超函数論に基づく数値積分 (現象解明に向けた数値解析学の新展開 (2)). [[京都大学数理解析研究所]]講究録, (2037), 57-60.</ref><ref>緒方秀教, & 平山弘. (2016). 数値積分に対する超函数法. [[日本応用数理学会]]論文誌, 26(1), 33-43.</ref><ref>Ogata, H. (2019). A numerical method of computing oscillatory integral related to hyperfunction theory. arXiv preprint arXiv:1909.04911.</ref>。
[[特異点 (数学)|特異点]]を持つ積分の場合、[[佐藤超函数]]を経由して複素数値積分に持ち込むことで[[特異点 (数学)|特異点]]を避け、誤差を抑えられる手法が提案されている<ref>{{Cite journal|和書|author=緒方秀教 |date=2017-12 |url=https://doi.org/10.11540/bjsiam.27.4_8 |title=佐藤超函数論に基づく数値解析 |journal=応用数理 |volume=27 |issue=4 |pages=8-15 |doi=10.11540/bjsiam.27.4_8 |CRID=1390001205765195776 |ISSN=2432-1982 |publisher=日本応用数理学会}}</ref><ref>{{Cite journal|和書|author=緒方秀教 |date=2017-07 |url=https://hdl.handle.net/2433/236858 |title=佐藤超函数論に基づく数値積分 (現象解明に向けた数値解析学の新展開 II) |journal=数理解析研究所講究録 |ISSN=1880-2818 |publisher=京都大学数理解析研究所 |volume=2037 |pages=57-60 |hdl=2433/236858 |CRID=1050564288162787200}}</ref><ref>{{Cite journal|和書|author=緒方秀教, 平山弘 |year=2016 |url=https://doi.org/10.11540/jsiamt.26.1_33 |title=数値積分に対する超函数法 |journal=日本応用数理学会論文誌 |ISSN=2424-0982 |publisher=日本応用数理学会 |volume=26 |issue=1 |pages=33-43 |doi=10.11540/jsiamt.26.1_33 |CRID=1390001205769013120}}</ref><ref>{{Cite journal |author=Ogata, Hidenori |year=2019 |url=https://doi.org/10.48550/arXiv.1909.04911 |title=A numerical method of computing oscillatory integral related to hyperfunction theory |journal=arXiv preprint arXiv:1909.04911 |doi=10.48550/arXiv.1909.04911}}</ref>。


===部分積分を使った数値積分===
===部分積分を使った数値積分===
振動積分に対しては[[部分積分]]を組み合わせた数値積分が提案されている<ref>平山弘. (1997). 部分積分法による半無限区間振動型積分の数値計算法. [[日本応用数理学会]]論文誌, 7(2), 131-138.</ref><ref>平山弘, 館野裕文, & 平野照比古. (2004). 部分積分法による数値積分法. [[京都大学数理解析研究所]]講究録 1395: 190-195.</ref>。
振動積分に対しては[[部分積分]]を組み合わせた数値積分が提案されている<ref>{{Cite journal|和書|author=平山弘 |year=1997 |url=https://doi.org/10.11540/jsiamt.7.2_131 |title=部分積分法による半無限区間振動型積分の数値計算法 |journal=日本応用数理学会論文誌 |ISSN=09172246 |publisher=日本応用数理学会 |volume=7 |issue=2 |pages=131-138 |doi=10.11540/jsiamt.7.2_131 |CRID=1390001205768016384}}</ref><ref>{{Cite journal|和書|author=平山弘, 館野裕文, 平野照比古 |date=2004-10 |url=https://hdl.handle.net/2433/25947 |title=部分積分法による数値積分法 |journal=数理解析研究所講究録 |ISSN=1880-2818 |publisher=京都大学数理解析研究所 |volume=1395 |pages=190-195 |hdl=2433/25947 |CRID=1050001202108546176}}</ref>。


== 乱数を使った積分 ==
== 乱数を使った積分 ==
54行目: 52行目:
一様乱数の代わりに{{ill2|超一様分布列|en|low-discrepancy sequence}}を使うと{{ill2|準モンテカルロ法|en|quasi-Monte Carlo method}}になり、より速く収束する場合がある。
一様乱数の代わりに{{ill2|超一様分布列|en|low-discrepancy sequence}}を使うと{{ill2|準モンテカルロ法|en|quasi-Monte Carlo method}}になり、より速く収束する場合がある。


[[確率論]]や[[ランダム行列]]理論などを用いて上記の近似公式とモンテカルロ積分を融合させたアルゴリズムも提案されている<ref>Nakatsukasa, Y. (2018). Approximate and integrate: Variance reduction in Monte Carlo integration via function approximation. arXiv preprint {{arxiv|id=1806.05492}}.</ref>。
[[確率論]]や[[ランダム行列]]理論などを用いて上記の近似公式とモンテカルロ積分を融合させたアルゴリズムも提案されている<ref>Nakatsukasa, Y. (2018). "[https://doi.org/10.48550/arXiv.1806.05492 Approximate and integrate: Variance reduction in Monte Carlo integration via function approximation]". arXiv preprint {{arxiv|id=1806.05492}}.</ref>。


== 積分範囲が無限区間の場合 ==
== 積分範囲が無限区間の場合 ==
64行目: 62行目:


== 数値積分が困難な場合 ==
== 数値積分が困難な場合 ==
数値積分のアルゴリズムは、滑らかである、連続である、特異点の数や場所が限られている、など、それぞれアルゴリズムが何らかの前提条件を関数にかけていて、それに沿った物が正常に積分できる。例えば、無数に不連続点がある関数は、基本的に数値積分が困難である。更に、[[広義積分]]可能であることも通常は前提条件に入っていて、[[コーシーの主値]]積分としては積分可能であっても、広義積分不可能な関数は、前提が崩れるためおかしな結果になる場合がある。例えば <math> \int_{-1}^1 \frac{1}{x}\, dx </math> はコーシーの主値積分では 0 であるが、広義積分不可能であり<ref>[https://www.wolframalpha.com/input/?i=integrate+from+-1+to+1+1%2Fx+dx integrate from -1 to 1 1/x dx - Wolfram|Alpha]</ref>、これを数値積分すると(そもそも正しい結果が無いが)おかしな結果が返ってくることがある。定積分が広義積分可能であるかどうかは簡単には判断が付かない場合もあるため注意が必要である。
数値積分のアルゴリズムは、滑らかである、連続である、特異点の数や場所が限られている、など、それぞれアルゴリズムが何らかの前提条件を関数にかけていて、それに沿った物が正常に積分できる。例えば、無数に不連続点がある関数は、基本的に数値積分が困難である。更に、[[広義積分]]可能であることも通常は前提条件に入っていて、[[コーシーの主値]]積分としては積分可能であっても、広義積分不可能な関数は、前提が崩れるためおかしな結果になる場合がある。
例えば <math> \int_{-1}^1 \frac{1}{x}\, dx </math> はコーシーの主値積分では 0 であるが、広義積分不可能であり<ref>[https://www.wolframalpha.com/input/?i=integrate+from+-1+to+1+1%2Fx+dx integrate from -1 to 1 1/x dx - Wolfram|Alpha]</ref>、これを数値積分すると(そもそも正しい結果が無いが)おかしな結果が返ってくることがある。定積分が広義積分可能であるかどうかは簡単には判断が付かない場合もあるため注意が必要である。


== 実装 ==
== 実装 ==
71行目: 71行目:
** [[GNU Scientific Library]] ではこれを[[C言語]]に移植している。モンテカルロ積分や超一様分布列も実装されている。
** [[GNU Scientific Library]] ではこれを[[C言語]]に移植している。モンテカルロ積分や超一様分布列も実装されている。
** [[SciPy]]、[[R言語]]、[[GNU Octave]]、[[NAG数値計算ライブラリ]]、[[IMSL]]<ref>[https://docs.roguewave.com/imsl/c/2016.1/html/cnlmath/index.html#page/CNLMath/cmch4.07.03.html int_fcn_sing - IMSL C Math Library]</ref> などが QUADPACK を使用している。
** [[SciPy]]、[[R言語]]、[[GNU Octave]]、[[NAG数値計算ライブラリ]]、[[IMSL]]<ref>[https://docs.roguewave.com/imsl/c/2016.1/html/cnlmath/index.html#page/CNLMath/cmch4.07.03.html int_fcn_sing - IMSL C Math Library]</ref> などが QUADPACK を使用している。
* [[Boost]] Math Toolkit<ref>[https://www.boost.org/doc/libs/1_69_0/libs/math/doc/html/quadrature.html Chapter 11. Quadrature and Differentiation - 1.69.0]</ref>
* [[Boost]] Math Toolkit<ref>[https://www.boost.org/doc/libs/1_69_0/libs/math/doc/html/quadrature.html Chapter 11. Quadrature and Differentiation - 1.69.0]</ref>
* [[Apache Commons Math]] では [[Java]] で実装されている。
* [[Apache Commons Math]] では [[Java]] で実装されている。
* [http://www.feynarts.de/cuba/ Cuba] - 主にモンテカルロ積分が実装されている
* [http://www.feynarts.de/cuba/ Cuba] - 主にモンテカルロ積分が実装されている
78行目: 78行目:
* [[INTLAB]] - 精度保証を伴う数値積分が可能な[[区間演算]]ライブラリ<ref>S.M. Rump: INTLAB - INTerval LABoratory. In Tibor Csendes, editor, Developments in Reliable Computing, pages 77-104. Kluwer Academic Publishers, Dordrecht, 1999.</ref>
* [[INTLAB]] - 精度保証を伴う数値積分が可能な[[区間演算]]ライブラリ<ref>S.M. Rump: INTLAB - INTerval LABoratory. In Tibor Csendes, editor, Developments in Reliable Computing, pages 77-104. Kluwer Academic Publishers, Dordrecht, 1999.</ref>
* {{GitHub|mskashi/kv}} - 精度保証を伴う数値積分が可能な[[区間演算]]ライブラリ
* {{GitHub|mskashi/kv}} - 精度保証を伴う数値積分が可能な[[区間演算]]ライブラリ
* {{GitHub|fredrik-johansson/arb}} - 精度保証を伴う数値積分が可能な[[区間演算]]ライブラリ<ref>Johansson, F. (2017). Arb: efficient arbitrary-precision midpoint-radius interval arithmetic. IEEE Transactions on Computers, 66(8), 1281-1292.</ref><ref>Johansson, F. (2018, July). Numerical integration in arbitrary-precision ball arithmetic. In International Congress on Mathematical Software (pp. 255-263). Springer, Cham.</ref><ref>Johansson, F., & Mezzarobba, M. (2018). Fast and Rigorous Arbitrary-Precision Computation of Gauss--Legendre Quadrature Nodes and Weights. [[:en:SIAM Journal on Scientific Computing]], 40(6), C726-C747.</ref>
* {{GitHub|fredrik-johansson/arb}} - 精度保証を伴う数値積分が可能な[[区間演算]]ライブラリ<ref>Johansson, F. (2017). Arb: "[https://doi.org/10.1109/TC.2017.2690633 efficient arbitrary-precision midpoint-radius interval arithmetic]". IEEE Transactions on Computers, 66(8), 1281-1292, {{doi|10.1109/TC.2017.2690633}}.</ref><ref>Johansson, F. (2018, July). Numerical integration in arbitrary-precision ball arithmetic. In International Congress on Mathematical Software (pp. 255-263). Springer, Cham.</ref><ref>Johansson, F., & Mezzarobba, M. (2018). Fast and Rigorous Arbitrary-Precision Computation of Gauss--Legendre Quadrature Nodes and Weights. [[:en:SIAM Journal on Scientific Computing]], 40(6), C726-C747.</ref>


==出典==
==出典==
{{Reflist}}
{{Reflist|30em}}


==関連項目==
==関連項目==
*[[二重指数関数型数値積分公式]]
* [[二重指数関数型数値積分公式]]
*[[台形公式]]
* [[台形公式]]
*[[シンプソンの公式]]
* [[シンプソンの公式]]
*[[ガウスの求積法]]
* [[ガウスの求積法]]
*[[ガウス=クロンロッド求積法]]
* [[ガウス=クロンロッド求積法]]
*{{ill2|ロンバーグ積分|en|Romberg's method}}
* [[ロンバーグ積分法]]


==関連文献==
==関連文献==
* 日高孝次:「数値積分法」、[[岩波書店]](1948年)。
* 日高孝次:「数値積分と数値計算」、岩波書店(1949年)。
* 日高孝次:「数値積分法」、現代工学社(1974年)。※ 岩波書店から出ていた上下巻の合本復刻。
* P.J. Davis and P.Rabinowitz、[[森正武]](訳):「計算機による数値積分法」、日本コンピュータ協会(1981年2月15日)。
* [[森正武]]:「数値解析」(第2版)、[[共立出版]](共立数学講座)、ISBN 978-4320017016(2002年2月1日)。
* [[森正武]]:「数値解析」(第2版)、[[共立出版]](共立数学講座)、ISBN 978-4320017016(2002年2月1日)。
* [[杉原正顯]]、室田一雄:「数値計算法の数理」、[[岩波書店]](2003年5月23日)。
* [[杉原正顯]]、室田一雄:「数値計算法の数理」、岩波書店(2003年5月23日)。
* 日本機械学会(編):「数値積分法の基礎と応用」、コロナ社、ISBN 4-339-04491-1 (2003年7月3日).※この本の数値積分法は微分方程式の求積法を指す。
* 田中健一郎、岡山友昭:「変数変換型数値計算法」、岩波数学叢書、ISBN 978-4-000298605(2023年5月17日).

* Prem K. Kythe and Michael R. Schäferkotter: ''Handbook of Computational Methods for Integration'', Chapman and Hall/CRC, ISBN 978-1584884286 (2004年5月15日).
* Philip J. Davis and Philip Rabinowitz : ''Methods of Numerical Integration'' (2nd Ed), Dover Publications, ISBN 978-0486453392 (2007年10月25日).

* G. Hämmerlin (Ed.): ''Numerical Integration'', (Proceedings of the Conference Held at the Mathematisches Forschungsinstitut Oberwolfach, October 4–10, 1981), Birkhäuser, ISBN 978-3-0348-6308-7 (1982).
* H. Braß, G. Hämmerlin (Eds.): ''Numerical Integration III'', (Proceedings of the Conference held at the Mathematisches Forschungsinstitut, Oberwolfach, Nov. 8 – 14, 1987), Birkhäuser, ISBN 978-3-0348-6398-8 (1988).
* H. Brass and G. Hämmerlin (Eds.) : ''Numerical Integration IV'', (Proceedings of the Conference at the Mathematical Research Institute, Oberwolfach, November 8–14, 1992), Birkhäuser, ISBN 978-3-0348-6338-4 (1993).

* V.I.Krylov: ''Approximate Calculation of Integrals'', Dover publications, ISBN 978-0-486-44579-3 (1962).
* I.H.Sloan and S.Joe: ''Lattice Methods for Multiple Integration'', Oxford Univ. Press, ISBN 978-0-19-853472-3 (1994).
* Arnold R. Krommer and Christoph W. Ueberhuber: ''Computational Integration'', SIAM, 978-0-89871-374-9 (1998).
* Gene H. Golub and Gérard Meurant: ''Matrices, Moments and Quadrature with Applications'', Princeton Press, ISBN 978-0-691-14341-5 (2010).


==外部リンク==
==外部リンク==
{{Commonscat|Numerical integration}}
* [http://mathworld.wolfram.com/LobattoQuadrature.html Lobatto Quadrature] Wolfram Mathworld の記事
* [https://mathworld.wolfram.com/LobattoQuadrature.html Lobatto Quadrature] Wolfram Mathworld の記事
* [https://www.encyclopediaofmath.org/index.php/Lobatto_quadrature_formula Lobatto quadrature formula] Encyclopedia of Mathematics の記事
* [https://www.encyclopediaofmath.org/index.php/Lobatto_quadrature_formula Lobatto quadrature formula] Encyclopedia of Mathematics の記事
* [http://nalab.mind.meiji.ac.jp/~mk/lecture/applied-complex-function-2019/numerical-integration-2019.pdf  桂田祐史:「数値積分解説」(2019年6月30日)]
* [http://www.ams.org/journal-getitem?pii=S0025-5718-2023-03878-9 Menghan Wu; Haiyong Wang: "Gaussian quadrature rules for composite highly oscillatory integrals"], Math. Comp. (2023年7月21日){{doi|10.1090/mcom/3878}}


{{Mathanalysis-stub}}
{{Mathanalysis-stub}}
{{integral}}
{{integral}}
{{authority control}}

{{DEFAULTSORT:すうちせきふん}}
{{DEFAULTSORT:すうちせきふん}}
[[Category:数値積分|*]]
[[Category:数値積分|*]]

2024年11月11日 (月) 01:16時点における最新版

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

狭義の数値積分(関数の定積分の値を求める方法)は有限要素法などで応用されている[1]。 以下では、狭義の数値積分について述べる。

乱数を使わない積分

[編集]

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

などがある。

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

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

多重積分

[編集]

2変数以上の多重積分の場合は、外側から積分し、外の変数を定数として内側の積分を数値積分すれば良い。ただし一般に、変数が増えると、モンテカルロ法や準モンテカルロ法の方が計算効率が良くなる。 なお、1983年当時における多重積分の理論、アルゴリズムの状況は次元に応じて次のように分類されている[3][4]

  • Range O(2次元):満足できる状況.
  • Range I(3−7次元):プロダクトルールがその変形でなんとかなる.
  • Range II(7−15次元):Ranges I と IIIの 境界領域.
  • Range III(15次元以上):モンテカルロ法, 準モンテカルロ法が必要になる.

高次元空間での数値積分は金融工学などで必要とされているため、活発に研究されている[4][5]

精度保証付き数値積分

[編集]

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

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

[編集]

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

超関数を使った積分

[編集]

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

部分積分を使った数値積分

[編集]

振動積分に対しては部分積分を組み合わせた数値積分が提案されている[13][14]

乱数を使った積分

[編集]

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

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

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

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

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

積分範囲が無限区間の場合

[編集]

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

数値積分が困難な場合

[編集]

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

例えば はコーシーの主値積分では 0 であるが、広義積分不可能であり[16]、これを数値積分すると(そもそも正しい結果が無いが)おかしな結果が返ってくることがある。定積分が広義積分可能であるかどうかは簡単には判断が付かない場合もあるため注意が必要である。

実装

[編集]

近似計算

[編集]

精度保証付き

[編集]

出典

[編集]
  1. ^ a b c 山本哲朗『数値解析入門』(増訂版)サイエンス社〈サイエンスライブラリ 現代数学への入門 14〉、2003年6月。ISBN 4-7819-1038-6 
  2. ^ 伊理正夫, 森口繁一, 高澤嘉光「ある数値積分公式について (科学計算基本ライブラリーのアルゴリズムの研究会報告集)」『数理解析研究所講究録』第91巻、京都大学数理解析研究所、1970年8月、82-118頁、CRID 1050001201939101568hdl:2433/108132ISSN 1880-2818 
  3. ^ Davis,P. J.,and Rabinowitz,P.,Methods of Numerical Integration,2nd Edition, Academic Press,San Diego,1984.
  4. ^ a b 手塚集「数値多重積分に関する話題(<特集>数値計算)」『応用数理』第8巻第4号、日本応用数理学会、1998年、267-276頁、CRID 1390282680742275200doi:10.11540/bjsiam.8.4_267ISSN 09172270 
  5. ^ 加藤公一「量子コンピュータを用いた数値積分計算について」(PDF)『Unisys技報 : Unisys technology review』第26巻第2号、日本ユニシス、2006年8月、150-167頁、CRID 1521980704882269440ISSN 09149996 
  6. ^ 大石進一『精度保証付き数値計算』コロナ社〈現代非線形科学シリーズ〉、2000年。ISBN 9784339026054https://ndlsearch.ndl.go.jp/books/R100000002-I000002845431 
  7. ^ 緒方秀教, 杉原正顯Bessel関数を含む振動積分に対する数値積分公式(数値計算アルゴリズムの現状と展望II)」『数理解析研究所講究録』第915巻、京都大学数理解析研究所、1995年6月、171-181頁、CRID 1050001202174401664hdl:2433/59609ISSN 1880-2818 
  8. ^ 緒方秀教, 杉原正顯「Bessel関数の零点を標本点に持つ補間および数値積分公式」『日本応用数理学会論文誌』第6巻第1号、日本応用数理学会、1996年、39-66頁、doi:10.11540/jsiamt.6.1_39 
  9. ^ 緒方秀教「佐藤超函数論に基づく数値解析」『応用数理』第27巻第4号、日本応用数理学会、2017年12月、8-15頁、CRID 1390001205765195776doi:10.11540/bjsiam.27.4_8ISSN 2432-1982 
  10. ^ 緒方秀教「佐藤超函数論に基づく数値積分 (現象解明に向けた数値解析学の新展開 II)」『数理解析研究所講究録』第2037巻、京都大学数理解析研究所、2017年7月、57-60頁、CRID 1050564288162787200hdl:2433/236858ISSN 1880-2818 
  11. ^ 緒方秀教, 平山弘「数値積分に対する超函数法」『日本応用数理学会論文誌』第26巻第1号、日本応用数理学会、2016年、33-43頁、CRID 1390001205769013120doi:10.11540/jsiamt.26.1_33ISSN 2424-0982 
  12. ^ Ogata, Hidenori (2019). “A numerical method of computing oscillatory integral related to hyperfunction theory”. arXiv preprint arXiv:1909.04911. doi:10.48550/arXiv.1909.04911. https://doi.org/10.48550/arXiv.1909.04911. 
  13. ^ 平山弘「部分積分法による半無限区間振動型積分の数値計算法」『日本応用数理学会論文誌』第7巻第2号、日本応用数理学会、1997年、131-138頁、CRID 1390001205768016384doi:10.11540/jsiamt.7.2_131ISSN 09172246 
  14. ^ 平山弘, 館野裕文, 平野照比古「部分積分法による数値積分法」『数理解析研究所講究録』第1395巻、京都大学数理解析研究所、2004年10月、190-195頁、CRID 1050001202108546176hdl:2433/25947ISSN 1880-2818 
  15. ^ Nakatsukasa, Y. (2018). "Approximate and integrate: Variance reduction in Monte Carlo integration via function approximation". arXiv preprint arXiv:1806.05492.
  16. ^ integrate from -1 to 1 1/x dx - Wolfram|Alpha
  17. ^ QUADPACK (nines)
  18. ^ quadpack
  19. ^ int_fcn_sing - IMSL C Math Library
  20. ^ Chapter 11. Quadrature and Differentiation - 1.69.0
  21. ^ S.M. Rump: INTLAB - INTerval LABoratory. In Tibor Csendes, editor, Developments in Reliable Computing, pages 77-104. Kluwer Academic Publishers, Dordrecht, 1999.
  22. ^ Johansson, F. (2017). Arb: "efficient arbitrary-precision midpoint-radius interval arithmetic". IEEE Transactions on Computers, 66(8), 1281-1292, doi:10.1109/TC.2017.2690633.
  23. ^ Johansson, F. (2018, July). Numerical integration in arbitrary-precision ball arithmetic. In International Congress on Mathematical Software (pp. 255-263). Springer, Cham.
  24. ^ Johansson, F., & Mezzarobba, M. (2018). Fast and Rigorous Arbitrary-Precision Computation of Gauss--Legendre Quadrature Nodes and Weights. en:SIAM Journal on Scientific Computing, 40(6), C726-C747.

関連項目

[編集]

関連文献

[編集]
  • 日高孝次:「数値積分法」、岩波書店(1948年)。
  • 日高孝次:「数値積分と数値計算」、岩波書店(1949年)。
  • 日高孝次:「数値積分法」、現代工学社(1974年)。※ 岩波書店から出ていた上下巻の合本復刻。
  • P.J. Davis and P.Rabinowitz、森正武(訳):「計算機による数値積分法」、日本コンピュータ協会(1981年2月15日)。
  • 森正武:「数値解析」(第2版)、共立出版(共立数学講座)、ISBN 978-4320017016(2002年2月1日)。
  • 杉原正顯、室田一雄:「数値計算法の数理」、岩波書店(2003年5月23日)。
  • 日本機械学会(編):「数値積分法の基礎と応用」、コロナ社、ISBN 4-339-04491-1 (2003年7月3日).※この本の数値積分法は微分方程式の求積法を指す。
  • 田中健一郎、岡山友昭:「変数変換型数値計算法」、岩波数学叢書、ISBN 978-4-000298605(2023年5月17日).
  • Prem K. Kythe and Michael R. Schäferkotter: Handbook of Computational Methods for Integration, Chapman and Hall/CRC, ISBN 978-1584884286 (2004年5月15日).
  • Philip J. Davis and Philip Rabinowitz : Methods of Numerical Integration (2nd Ed), Dover Publications, ISBN 978-0486453392 (2007年10月25日).
  • G. Hämmerlin (Ed.): Numerical Integration, (Proceedings of the Conference Held at the Mathematisches Forschungsinstitut Oberwolfach, October 4–10, 1981), Birkhäuser, ISBN 978-3-0348-6308-7 (1982).
  • H. Braß, G. Hämmerlin (Eds.): Numerical Integration III, (Proceedings of the Conference held at the Mathematisches Forschungsinstitut, Oberwolfach, Nov. 8 – 14, 1987), Birkhäuser, ISBN 978-3-0348-6398-8 (1988).
  • H. Brass and G. Hämmerlin (Eds.) : Numerical Integration IV, (Proceedings of the Conference at the Mathematical Research Institute, Oberwolfach, November 8–14, 1992), Birkhäuser, ISBN 978-3-0348-6338-4 (1993).
  • V.I.Krylov: Approximate Calculation of Integrals, Dover publications, ISBN 978-0-486-44579-3 (1962).
  • I.H.Sloan and S.Joe: Lattice Methods for Multiple Integration, Oxford Univ. Press, ISBN 978-0-19-853472-3 (1994).
  • Arnold R. Krommer and Christoph W. Ueberhuber: Computational Integration, SIAM, 978-0-89871-374-9 (1998).
  • Gene H. Golub and Gérard Meurant: Matrices, Moments and Quadrature with Applications, Princeton Press, ISBN 978-0-691-14341-5 (2010).

外部リンク

[編集]