什麼是高斯-埃爾米特求積?
高斯-埃爾米特求積(Gauss-Hermite quadrature)是一種數值方法,用來近似計算整條實數線上、帶有高斯權函數 \(e^{-x^2}\) 的積分。所謂 \(n\) 點公式,就是把積分近似成被積函數在 \(n\) 個精挑細選的點上的加權總和:從負無限大到正無限大對 \(e^{-x^2}f(x)\,dx\) 的積分,約等於各項 \(w_i f(x_i)\) 的總和。其中節點 \(x_i\) 是物理學家慣例下埃爾米特多項式 \(H_n\) 的根,而權重 \(w_i\) 則由這些多項式的正交性所決定。
$$\int_{-\infty}^{\infty} e^{-x^2} f(x)\,dx \approx \sum_{i=1}^{\text{Order }n} w_i\, f(x_i)$$
計算器使用方法
先選定階數 \(n\)(也就是節點數,可從 2 到 100),再設定顯示位數,接著就能直接讀取節點與權重的表格。由於底層計算採用標準雙精度浮點數,顯示精度大約上限為 15 位有效數字——若想要更多有意義的位數,就必須改用任意精度運算。\(n\) 點公式可以對所有次數不超過 \(2n-1\) 的多項式做到完全精確的積分。
公式說明
節點即為 \(H_n(x)\) 的 \(n\) 個實零點,而 \(H_n(x)\) 由遞迴關係定義:\(H_0=1\)、\(H_1=2x\)、\(H_{k+1}=2x\,H_k - 2k\,H_{k-1}\)。權重為 $$w_i = \frac{2^{n-1}\, n!\, \sqrt{\pi}}{n^2\, [H_{n-1}(x_i)]^2}$$ 本計算器採用數值穩定的 Golub-Welsch 方法:先建構對稱三對角的 Jacobi 矩陣(對角線為零,次對角線為 \(\sqrt{k/2}\)),求出其特徵值(即節點)與特徵向量,再把每個權重設為 \(\sqrt{\pi}\) 乘以對應正規化特徵向量第一分量的平方。這個做法可避免大階乘造成的數值溢位。
$$\begin{gathered} \int_{-\infty}^{\infty} e^{-x^2} f(x)\,dx \approx \sum_{i=1}^{\text{Order }n} w_i\, f(x_i) \\[1.5em] \text{where}\quad \left\{ \begin{aligned} J\,v_i &= x_i\,v_i, \quad J_{kk}=0,\; J_{k,k+1}=J_{k+1,k}=\sqrt{\tfrac{k}{2}} \\ w_i &= \sqrt{\pi}\,\big(v_{i,1}\big)^2 \end{aligned} \right. \end{gathered}$$實例演算(n = 2)
\(H_2(x) = 4x^2 - 2\) 的根為 \(x = \pm \frac{1}{\sqrt{2}} = \pm 0.7071067811865475\)。每個權重為 \(\frac{2^1 \cdot 2! \cdot \sqrt{\pi}}{2^2 \cdot [H_1(x_i)]^2}\)。因為 \(H_1(x)=2x\),所以 \([H_1]^2 = 2\),於是每個權重 $$= \frac{2 \cdot 2 \cdot 1.7724538509055160}{4 \cdot 2} = 0.8862269254527580$$ 兩者相加恰為 \(\sqrt{\pi} = 1.7724538509055160\),是個很方便的自我檢驗。
常見問題
為什麼權重的總和永遠等於 \(\sqrt{\pi}\)?當 \(f(x)=1\) 時,積分就變成 \(e^{-x^2}\) 在整條實數線上的積分,其值正好是 \(\sqrt{\pi}\);而求積公式對此能完全精確地重現。
這是哪一種埃爾米特慣例?是物理學家慣例,權函數為 \(e^{-x^2}\)。若採用機率學家慣例(權函數為 \(e^{-x^2/2}\)),則節點與權重會差一個縮放因子。
如果我的函數沒有 \(e^{-x^2}\) 這個因子,還能用嗎?可以——只要令 \(g(x) = e^{x^2}f(x)\),那麼 \(g\) 的積分就約等於各項 \(w_i\,e^{x_i^2}g(x_i)\) 的總和。