ロンバーグ積分

ロンバーグ積分（ロンバーグせきぶん、Romberg integration）またはロンベルク積分は、関数の数値積分アルゴリズムのひとつである。この方法では台形公式とリチャードソンの補外を組み合わせ離散化幅 formula_1 をゼロとする極限として数値積分を評価する。他の数値積分法に比べ、少ない回数の被積分関数の評価によって高精度の結果が得られる。
1955年にによって考案された。
概要.
ロンバーグ積分は区間 formula_2 で定義された関数 formula_3 の定積分
を数値的に求めるアルゴリズムである。積分区間 formula_2 を幅 formula_5 の formula_6 個の小区間 formula_7 (formula_8, formula_9) に分割するとき,
数値積分アルゴリズムのひとつである台形公式は求める定積分を
により近似する。台形公式による値 formula_10 と真の定積分の値の差は formula_11 であるが、オイラー・マクローリンの和公式（オイラーの和公式）によりそれをより詳しく評価することができる。すなわち、formula_3 が formula_13-級関数であるならば
が成立する。ここに formula_14 はベルヌーイ数 であり、formula_15 は formula_16 を満足するある数である。それ故に台形公式を formula_1 に関する漸近級数と見るとき、誤差項としては formula_1 の偶数次の項だけが現れる。そこで複数の formula_1 について台形公式を適用し、それらの結果について誤差項を打ち消すようにリチャードソンの補外を行うことで、より精度の高い定積分の評価が得られる。これがロンバーグ積分である。
アルゴリズム.
ロンバーグ積分のアルゴリズムは以下のように記述される。
幅 formula_28 としては、ロンバーグは
を用いていたが、は次数が急激に増加し計算コストが増大することを抑えるために
を提案している。
補外ステップにおいてリチャードソン補外テーブルの各項の差分に基づいて積分の収束性を判定することで、計算をどこまで進めればよいか判定することも可能である。
特徴.
ロンバーグ積分 formula_26 の誤差は、評価に用いたステップ formula_30 から formula_31 と見積もられる。特に formula_32 をロンバーグの提案に従って選ぶときには誤差の厳密な評価
が得られている。
formula_33 に選ぶとき、リチャードソン補外において現れる formula_34 や formula_35 はシンプソンの公式によって問題の定積分を評価した値に一致する。その意味で、より多くの積分幅 formula_1 での評価を行うことはニュートン・コーツの公式において積分公式を拡張することに、漸化式を解き補外を行うことは積分の次数を上げることに対応していると解釈できる。
Press らは著書「Numerical Recipes in C」においてロンバーグ積分が異なる次数の数値積分法を組み合わせた一般的な方法であることから数値積分においてこの方法を用いることを強く推奨している。特に、被積分関数が積分区間において十分に滑らかであれば、ロンバーグ積分はニュートン・コーツ型の積分公式に比べて極めて少ない回数の被積分関数の評価だけで十分な精度の結果を与える。
なお、ネヴィルのアルゴリズムはラグランジュ多項式による補外であるが、有理関数補外を行うこともでき、この場合ロンバーグ積分における漸化式は
へと変更される。
具体例.
次の定積分をロンバーグ積分により求めることを考える。
積分ステップとして formula_37, formula_38, formula_39 を取り補外を行う。その結果、次の表に示すようにロンバーグ積分によって正確な積分値を得ることができる。
ライブラリ.
C言語により実装されているオープンソースの科学技術計算ライブラリGNU Scientific Library (GSL) にはロンバーグ積分を行う関数が含まれている。また、Pythonの数値解析ライブラリSciPyにはロンバーグ積分により数値積分を行う codice_1 および codice_2 というふたつの関数がある.