ガウス求積とは
ガウス求積(Gaussian quadrature)は、
数値解析における
数値積分法の一つで、
カール・フリードリヒ・ガウスによって考案されました。この方法は、ある閉区間(通常は[-1, 1]に標準化)で定義された
実数値関数の定積分値を、比較的少ない計算量で高精度に求めることができます。
基本原理
nを正の
整数とし、f(x)を任意の多項式関数とします。区間[-1, 1]におけるf(x)の定積分値Iを、以下の形で近似することを考えます。
I ≈ ∑[i=1 to n] wᵢ
f(xᵢ)
ここで、xᵢは積分点(ガウス点またはガウスノード)、wᵢは重みと呼ばれる実数です。ガウス求積の鍵となるのは、これらの積分点と重みを適切に選ぶことで、高精度の近似を実現できる点です。
ルジャンドル多項式との関係
特に、n次のルジャンドル多項式のn個の零点(すべて[-1, 1]内に存在)を積分点として選び、適切な重みwᵢを用いると、f(x)が2n-1次以下の多項式であれば、上記の式が厳密に成立します。この方法をn次のガウス・ルジャンドル公式と呼びます。通常、ガウス求積と言えば、この方法を指すことが多いです。
f(x)が2n-1次を超える多項式や、多項式関数でない場合でも、f(x)が2n-1次以下の多項式で精度良く近似できる場合には、ガウス求積を適用することで、その定積分値を精度良く得ることが期待できます。しかし、特異点を持つ関数など、直接適用できない場合もあります。
重み関数を用いた拡張
被積分関数をf(x) = W(x)g(x)と表すことができ、g(x)が多項式で近似でき、W(x)が既知の関数(重み関数)である場合、それに対応する適切な重みwᵢを用いて、以下のように表すことができます。
I ≈ ∑[i=1 to n] wᵢ g(xᵢ)
典型的な重み関数としては、ガウス・チェビシェフやガウス・エルミートなどがあります。
ガウス–チェビシェフ: W(x) = (1 - x²)⁻¹/²
ガウス–エルミート: W(x) = exp(-x²)
この場合、積分点xᵢはルジャンドル多項式と同様に、ある直交多項式のクラスに属するn次多項式の根となります。
ガウス・ルジャンドル公式による求積
n次のガウス・ルジャンドル公式では、n次のルジャンドル多項式Pₙ(x)が対応します。Pₙ(1) = 1となるように正規化され、i番目のガウスノードxᵢはi番目のPₙの根となります。重みwᵢは、以下の式で与えられます。
wᵢ = 2 / ((1 - xᵢ²)
(P'ₙ(xᵢ))²)
区間の変更
一般的な積分区間[a, b]に対してガウス求積を適用するには、区間を標準区間[-1, 1]に変換する必要があります。これは、以下の線形変換で行うことができます。
t = ((b - a) x + a + b) / 2
この変換により、以下の積分近似が得られます。
∫[a to b] f(t) dt ≈ ((b - a) / 2)
∑[i=1 to n] wᵢ f(((b - a)
xᵢ + a + b) / 2)
その他の形式
重み関数ωを導入することで、より汎用的な積分問題が表現できます。区間[-1, 1]以外にも適用可能であり、以下のような形式で表されます。
∫[a to b] ω(x) f(x) dx ≈ ∑[i=1 to n] wᵢ
f(xᵢ)
基礎となる定理
pₙをn次の多項式で、n個の零点をノードとして選ぶと、次数が2n-1以下の任意の多項式について正確な積分値を与えるn個の重みwᵢを選ぶことができます。これらのノードは重複がなく、すべて開区間(a, b)にあります。
計算方法
ガウス求積法のノードxᵢと重みwᵢを計算するための基本的なツールは、直交多項式群と対応する重み関数が満たす3項漸化式です。例えば、モニックなn次直交多項式pₙの場合、以下の漸化式で関係を表すことができます。
pₙ₊₁(x) = (x - bₙ)pₙ(x) - aₙpₙ₋₁(x)
この漸化式から、対応する行列の固有値と固有ベクトルを用いて、ノードと重みを計算することができます。このアルゴリズムは一般にGolub–Welschアルゴリズムと呼ばれます。
誤差の見積もり
ガウス求積法の誤差は、被積分関数が連続な2n次の導関数を持つ場合、以下のように定式化できます。
∫[a to b] f(x) dx - ∑[i=1 to n] wᵢ f(xᵢ) |
---|
= (f^(2n)(ξ) * (pₙ(x))²) / ((2n)!)
ただし、ξは区間(a, b)内にあり、pₙはn次の直交多項式です。実際には、この誤差見積もりは2n次の導関数を見積もるのが難しいため、実用的にはあまり用いられません。別の手法として、次数の異なるガウス求積法を使い、結果の差分から誤差を見積もる方法があります。ガウス=クロンロッド求積法がこの目的に便利です。
ガウス=クロンロッド求積法
ガウス=クロンロッド求積法は、ガウス求積法のn個の点にn+1個の点を追加し、求積法の次数を2n+1にする方法です。これにより、低次の近似で使う関数値を高次の近似の計算に再利用できます。通常のガウス求積法とクロンロッド拡張による近似の差分は、誤差の見積もりに活用されます。
ガウス求積は、数値積分において高い精度と効率性を両立させる強力な手法です。様々な分野で広く活用されており、その理論的な基盤は、数学と計算科学の重要な領域を形成しています。