透過 MCP 連接 →

輸入計算

數學公式

廣告

結果

Gauss-Hermite Quadrature (20-point)
n = 20
物理學家慣例權函數 e^(-x^2) 下的節點與權重
i 節點 x_i 權重 w_i
1 -5.38748089001123 2.22939364553414e-13
2 -4.60368244955075 4.39934099227314e-10
3 -3.94476404011563 1.08606937076927e-07
4 -3.34785456738322 7.80255647853208e-06
5 -2.78880605842813 0.000228338636016353
6 -2.25497400208928 0.00324377334223785
7 -1.73853771211659 0.0248105208874637
8 -1.23407621539532 0.109017206020023
9 -0.737473728545394 0.286675505362834
10 -0.245340708300901 0.462243669600610
11 0.245340708300901 0.462243669600610
12 0.737473728545395 0.286675505362835
13 1.23407621539532 0.109017206020023
14 1.73853771211659 0.0248105208874636
15 2.25497400208928 0.00324377334223785
16 2.78880605842813 0.000228338636016355
17 3.34785456738322 7.80255647853212e-06
18 3.94476404011563 1.08606937076928e-07
19 4.60368244955074 4.39934099227318e-10
20 5.38748089001123 2.22939364553414e-13

Self-check: sum of all weights = 1.7724538509055163, which should equal sqrt(pi) = 1.7724538509055159.

什麼是高斯-埃爾米特求積?

高斯-埃爾米特求積(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)$$
鐘形權重曲線,帶有取樣點和節點處的豎條
高斯-埃爾米特求積法用少數巧妙佈置的節點來近似以 \(e^{-x^2}\) 為權的積分。

計算器使用方法

先選定階數 \(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\),是個很方便的自我檢驗。

鐘形曲線下,軸上有兩個對稱節點,權重條等高
當 \(n = 2\) 時,兩個節點對稱地位於 \(\pm\sqrt{1/2}\),權重相等。

常見問題

為什麼權重的總和永遠等於 \(\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)\) 的總和。

最後更新: