ガウス-エルミート求積法とは
ガウス-エルミート求積法は、マイナス無限大からプラス無限大まで、実数軸全体にわたる積分を求める数値積分の手法です。ガウス型の重み関数 \(e^{-x^{2}}\) を中心に構成されており、(重みを除いた意味で)\(2n-1\) 次までの任意の多項式に対して厳密な値を与えます。純粋な数学に基づく公式であるため、国や単位系が違っても結果は同一です。物理学、統計学(正規分布のもとでの期待値計算など)、工学の幅広い分野で利用されています。
この計算機の使い方
まず被積分関数の入力形式を選びます。\((-\infty,\infty)\) で積分したい関数そのものをそのまま入力する場合は g(x) を、すでに重み \(e^{-x^{2}}\) を分離して取り出した形で入力する場合は f(x) を選んでください。次に変数 \(x\) を用いた式を入力します(exp、log、sqrt、sin、cos、tan、sinh、cosh、abs、pi、e、^ などの関数や通常の演算子が使えます)。最後に分点数 \(n\) を指定します。なめらかでガウス分布に近い被積分関数ほど、分点数を増やすと精度が高まります。一般には 8〜30 程度がよく使われる値です。
計算式の解説
この手法では、物理学者の定義によるエルミート多項式 \(H_n(x)\) の \(n\) 個の根 \(x_i\) において被積分関数を評価し、重み $$w_i = \frac{2^{n-1}\, n!\, \sqrt{\pi}}{n^{2}\,[H_{n-1}(x_i)]^{2}}$$ を掛け合わせて足し合わせます。f モードでは推定値は $$\int_{-\infty}^{\infty} f(x)\,dx \;\approx\; \sum_{i=1}^{n} w_i\, e^{x_i^{2}}\,f(x_i)$$ \(w_i f(x_i)\) の総和になります。g モードでは修正重み \(W_i = w_i e^{x_i^{2}}\) を用いて重みを割り戻し、 $$\int_{-\infty}^{\infty} e^{-x^{2}}\,g(x)\,dx \;\approx\; \sum_{i=1}^{n} w_i\,g(x_i)$$ \(w_i e^{x_i^{2}} g(x_i)\) の総和を計算します。ここで用いる分点と重みは、数値的に安定なゴルブ-ウェルシュ(Golub-Welsch)アルゴリズムによって求められます。これは対称三重対角のヤコビ行列の固有値・固有ベクトルとして分点と重みを算出する方法です。
計算例
f モードで \(f(x) = 1\)、\(n = 2\) とします。2 つの分点は \(x = \pm\frac{1}{\sqrt{2}}\) で、重みはどちらも等しく $$w = \frac{\sqrt{\pi}}{2} = 0.8862269255$$ です。総和は $$0.8862269255 + 0.8862269255 = 1.7724538509$$ となり、これは \(\sqrt{\pi}\) にちょうど一致します。実数軸全体にわたる \(e^{-x^{2}}\) の積分の真の値です。同じことを g モードで行うと、\(g(x) = e^{-x^{2}}\)、\(n = 2\) のとき修正重みによって同じ答え \(1.7724538509\) が得られます。
よくある質問(FAQ)
収束が遅くなるのはどんなときですか? 被積分関数が「\(e^{-x^{2}} \times\) 多項式」の形でうまく近似できない場合です。例えば多項式的な減衰が遅い関数、裾の重い(ファットテールの)関数、実軸上に特異点をもつ関数などです。このようなときは \(n\) を増やすか、別の手法を検討してください。
g モードの \(e^{x_i^{2}}\) という因子は何をしているのですか? 組み込まれているガウス型の重みを打ち消し、被積分関数全体をそのまま入力できるようにする役割があります。外側の分点ではこの値が非常に大きくなることがあるため、良い結果を得るには \(g(x)\) が少なくとも \(e^{-x^{2}}\) と同じ速さで減衰する必要があります。
多項式に対して厳密な値になりますか? はい。f モードでは \(2n-1\) 次までの任意の多項式を厳密に積分できます。