這個計算機能做什麼
本工具用來計算下不完全 Beta 函數,其定義為定積分 \(B_x(a,b) = \int_{0}^{x} t^{a-1}(1-t)^{b-1}\,dt\)。被積函數 \(t^{a-1}(1-t)^{b-1}\) 正是 Beta 分布與 Beta-二項分布的核函數。當積分上限 \(x = 1\)(下限為 0)時,計算結果即等於完全 Beta 函數 \(B(a,b) = \Gamma(a)\Gamma(b)/\Gamma(a+b)\)。
使用方法
輸入兩個形狀參數:a(變數 a)與 b,兩者皆須為正值。設定積分區間的下限,以及上限 x(通常介於 0 與 1 之間)。再選擇分割數 n,也就是高斯-勒讓德節點的數量。n 越大精度越高;對於平滑的被積函數而言,n = 20 已綽綽有餘。若想求完全 Beta 函數,只要將區間維持在 [0, 1] 即可。
公式說明
本積分採用高斯-勒讓德求積法計算。首先在 [-1, 1] 上以牛頓法求出勒讓德多項式 \(P_n\) 的根,得到標準節點 \(x_i\) 與權重 \(w_i\),接著線性映射到所選區間 [c, d]:
$$t_i = \frac{d-c}{2}\cdot x_i + \frac{d+c}{2}$$隨後以 \(\frac{d-c}{2}\cdot \sum w_i\, f(t_i)\) 近似積分值。由於高斯-勒讓德能精確積分次數最高達 \(2n-1\) 的多項式,因此對平滑的被積函數收斂得極快。
$$\begin{gathered} B_x(a,b) = \int_{\text{c}}^{\text{x}} t^{\,\text{a}-1}\,(1-t)^{\,\text{b}-1}\,dt \;\approx\; \frac{d-c}{2}\sum_{i=1}^{n} w_i\, f\!\left(t_i\right) \\[1.5em] \text{where}\quad \left\{ \begin{aligned} f(t) &= t^{\,\text{a}-1}\,(1-t)^{\,\text{b}-1} \\ t_i &= \frac{d-c}{2}\,z_i + \frac{d+c}{2} \\ c &= \text{lower},\quad d = \text{x} \\ n &= \text{divisions} \end{aligned} \right. \end{gathered}$$
實例演算
取 \(a = 3\)、\(b = 5\),區間 [0, 1] 且 \(n = 20\),結果即為完全 Beta 函數 $$B(3,5) = \frac{2! \cdot 4!}{7!} = \frac{48}{5040} = 0.0095238095\ldots = \frac{1}{105}.$$本求積法可將此值重現至雙精度浮點數的完整精度。
常見問題
若 \(0 < a < 1\) 或 \(0 < b < 1\) 會怎樣?此時被積函數在端點處出現可積奇異點。由於高斯-勒讓德的節點都落在區間內部,結果仍保持有限值,但精度會下降,可調高 n 來改善。
如何取得正規化不完全 Beta 函數 \(I_x(a,b)\)?將此結果除以完全 Beta 函數即可(把區間設為 [0, 1] 即可算出完全 Beta 函數)。
為什麼結果有時會是負值?若積分上限小於下限,帶符號的積分值就會是負數,這在數學上是正確的。