ガウス求積法シミュレーター 戻る
数値解析シミュレーター

ガウス求積法シミュレーター — ガウス・ルジャンドル積分の収束

ガウス・ルジャンドル求積の標本点と重みを可視化。点数・積分区間・関数を変えて、なぜ少ない点数で高精度が得られるのかを学べます。

パラメータ設定
被積分関数 f(x)
標本点数 n
積分区間の下限 a
積分区間の上限 b

「厳密値」は十分に細かい複合シンプソン則による参照値です。

計算結果
ガウス求積の近似値
厳密値(参照積分)
絶対誤差
厳密に積分できる次数
被積分関数と標本点

水色=被積分関数 f(x)/塗りつぶし=積分する面積/橙の縦線=標本点 xᵢ(円の大きさ=重み wᵢ)

点数に対する誤差の収束

横軸=標本点数 n/縦軸=log₁₀|絶対誤差|(黄点=現在の n、下に行くほど高精度)

理論・主要公式

ガウス・ルジャンドル求積は、積分を標本点での関数値と重みの和で近似します。標本点の位置と重みの両方を最適化する点が、等間隔の台形則やシンプソン則と異なります。

n 点のガウス求積公式。xᵢ は標本点、wᵢ は重み:

$$\int_a^b f(x)\,dx \approx \sum_{i=1}^{n} w_i\,f(x_i)$$

標準区間 [−1, 1] の標本点 ξᵢ・重み から任意区間 [a, b] への線形変換:

$$x_i = \frac{b-a}{2}\,\xi_i + \frac{a+b}{2}, \qquad w_i = \frac{b-a}{2}\,\hat{w}_i$$

標本点 ξᵢ は n 次ルジャンドル多項式 Pₙ(ξ) の零点であり、n 点公式は 2n−1 次までの多項式を厳密に積分します。

2n 個の自由パラメータ(位置 n 個+重み n 個)を使うため、2n 本の厳密条件を満たせます。これが等間隔法を上回る精度の理由です。

ガウス求積法シミュレーターとは

🙋
数値積分って、区間を細かく区切って短冊の面積を足すやつですよね。ガウス求積法はそれと何が違うんですか?
🎓
短冊を足す台形則やシンプソン則は、標本点を等間隔に置くよね。ガウス求積法は「標本点をどこに置くか」も自由に選ぶんだ。位置と重みの両方を最適化する。上のシミュレーターの橙の縦線が標本点だけど、よく見ると端っこに寄っていて等間隔じゃないでしょう。これがミソなんだ。
🙋
位置も選べると、何がうれしいんですか?
🎓
自由に動かせるパラメータが倍になる。n 点なら、位置が n 個、重みが n 個で、合わせて 2n 個。だから「2n 本の条件」を満たせて、n 点で 2n−1 次までの多項式を厳密に積分できる。「厳密に積分できる次数」のカードを見て。n を1増やすたびに2ずつ増えるよ。シンプソン則は同じ点数なら次数がずっと低い。
🙋
標本点の位置って、どうやって決まるんですか?適当に最適化するんですか?
🎓
実は美しい答えがあって、標本点はルジャンドル多項式の零点なんだ。区間 [−1,1] で直交する多項式を使うと、余りの項が直交性でスッと消えて、2n−1 次までの厳密性が自動的に保証される。シミュレーターは標準区間の零点を、選んだ区間 [a,b] に線形変換して使っている。だから区間を変えても標本点の「相対的な配置」は同じなんだ。
🙋
関数を「ルンゲ関数」に変えると、点を増やしても誤差のグラフがなかなか下がらないですね。
🎓
いいところに気づいた。$e^{x/2}$ みたいに滑らかな関数だと、誤差は点数とともに指数関数的に落ちる——収束グラフがほぼ直線で急降下する。でもルンゲ関数 $1/(1+25x^2)$ は複素平面上に特異点が近くにあって、収束がうんと遅い。「点を増やせば必ず精度が上がる」とは限らないんだ。そういうときは区間を分割する複合求積を使う。万能の方法はない、というのが数値解析の大事な教訓だよ。

よくある質問

古くは数表として与えられ、現在は数値計算ライブラリが標準で持っています。n 次ルジャンドル多項式の零点はニュートン法などで高精度に求められ、対応する重みは零点における導関数値から計算できます。本シミュレーターは n=1〜8 の標準区間 [−1,1] の値を内蔵し、選んだ区間へ線形変換しています。
滑らかな関数を少ない評価回数で積分するならガウス求積法が圧倒的に有利です。一方、被積分関数の値がすでに等間隔の表として与えられている場合や、標本点を後から追加したい場合は、点を再利用できる台形則やガウス・クロンロッド則の方が実用的です。標本点を自由に選べる前提が崩れると、ガウス求積法の強みは生きません。
有限要素法では、各要素の剛性行列を求めるために形状関数の積を要素内で積分します。これらは多項式(またはそれに近い関数)なので、ガウス求積法なら少ない積分点で厳密または高精度に評価できます。2次元・3次元要素へはテンソル積で拡張します。積分点数の選び方は精度と計算コスト、さらに「アワーグラスモード」などの数値不安定性にも関わる重要な設計事項です。
直交多項式を変えることで対応できます。重み関数 1/√(1−x²) にはガウス・チェビシェフ、半無限区間に重み e^(−x) を持つ積分にはガウス・ラゲール、全無限区間に e^(−x²) を持つ積分にはガウス・エルミートが対応します。本シミュレーターが扱うのは重み関数 1・有限区間のガウス・ルジャンドルですが、考え方はそのまま他の族にも一般化されます。

実世界での応用

有限要素法(FEM)の数値積分:構造解析・熱解析・電磁界解析など、あらゆるFEMソルバーの内部で、要素剛性行列や質量行列の計算にガウス求積法が使われています。形状関数が多項式であるため、少数の積分点で高精度な結果が得られます。積分点数を意図的に減らす「低減積分」は、計算を速くする一方でアワーグラスモードを招くため、安定化と組み合わせて使われます。

計算物理・計算化学:量子化学の電子積分、放射輸送、統計力学の分配関数など、解析的に解けない積分が大量に現れる分野で、ガウス求積法は標準的な道具です。多次元積分ではテンソル積やスパースグリッドと組み合わせ、次元の呪いに対抗します。

金融工学・確率計算:オプション価格の評価では、期待値(=確率密度に対する積分)を高速に計算する必要があります。ガウス・エルミート求積は正規分布に対する期待値計算と相性がよく、モンテカルロ法より少ない評価点で滑らかな積分を精度よく求められます。

信号処理・制御工学:システムの応答エネルギーや評価関数の積分、フィルタ設計における周波数領域の積分など、設計指標を数値積分で評価する場面は多くあります。被積分関数が滑らかであれば、ガウス求積法は少ない計算量で信頼できる値を返します。

よくある誤解と注意点

最も多い誤解は、「標本点を増やせば、どんな関数でも誤差は下がり続ける」と考えてしまうことです。これが成り立つのは被積分関数が十分に滑らかな場合だけです。シミュレーターで関数をルンゲ関数 $1/(1+25x^2)$ に切り替え、点数を増やしてみてください。収束グラフは滑らかな $e^{x/2}$ のようには下がりません。不連続点・尖点・複素平面上の近い特異点があると、ガウス求積法でも収束は遅くなります。そういう関数は区間を分割する複合求積や、特異性に合わせた変数変換で扱います。

次に多いのが、「ガウス求積法は台形則より常に優れている」と思い込むことです。ガウス求積法の強みは「標本点を自由な位置に置けること」を前提にしています。被積分関数の値が等間隔のセンサーデータとして与えられている場合や、計算済みの点を捨てずに精度を上げたい(適応積分)場合には、標本点を再利用できる台形則やガウス・クロンロッド則の方が実用的です。アルゴリズムの優劣は、データの入手形態という文脈で決まります。

最後に、n 点公式の「2n−1 次まで厳密」を、誤差の大きさそのものと混同しないことに注意してください。「厳密」が意味するのは、被積分関数がちょうどその次数までの多項式なら誤差がゼロになる、ということだけです。実際の被積分関数は多項式ではないので、厳密次数を超えた成分が必ず残り、それが誤差になります。シミュレーターで多項式 $x^4-2x^2+1$ を選び n=3 にすると、2n−1=5 ≥ 4 なので絶対誤差がほぼゼロ(丸め誤差のみ)になるのが確認できます。厳密次数は「どこまでタダで正しいか」の指標であり、それ以外の関数に対する精度は別途、収束の様子で判断します。