這個計算器的功能
這個工具會針對一連串的引數 \(a\),建立倒數伽瑪函數 \(1/\Gamma(a)\) 的數值表與折線圖。你可以指定數列的起始位置、每次遞增的幅度,以及想要產生的點數(列數)。結果是一份清楚的兩欄表格,列出 \(a\) 與對應的 \(1/\Gamma(a)\),並附上繪製好的曲線。這屬於純數學運算,在任何地方的結果都完全相同。
使用方式
輸入 a 的起始值(第一個引數)、每一列 \(a\) 所要遞增的幅度(步長),以及疊代次數(要產生幾列)。舉例來說,起始值=-3、步長=0.1、列數=101,就會得到 \(a = -3、-2.9、-2.8、\ldots\) 一直到 \(a = 7.0\) 的數列。
公式說明
伽瑪函數是階乘的推廣:\(\Gamma(n+1) = n!\),且 \(\Gamma(1/2) = \sqrt{\pi}\)。當 \(\operatorname{Re}(a) > 0\) 時,它由積分定義 $$\Gamma(a) = \int_{0}^{\infty} t^{a-1} e^{-t} \, dt,$$ 並透過遞迴式 \(\Gamma(a) = \Gamma(a+1)/a\) 與反射公式 \(\Gamma(a)\Gamma(1-a) = \pi/\sin(\pi a)\) 延拓到其他數值。我們使用 Lanczos 近似(\(g = 7\))來計算 \(\Gamma(a)\),並在 \(a < 0.5\) 時改用反射公式。輸出結果就是 \(1/\Gamma(a)\)。與 \(\Gamma(a)\) 本身不同,倒數 \(1/\Gamma(a)\) 是一個沒有極點的整函數:在 \(\Gamma\) 發散的位置(\(a = 0、-1、-2、\ldots\)),倒數恰好等於 \(0\)。本工具的核心公式為 $$f(a_k) = \frac{1}{\Gamma(a_k)}, \quad a_k = \text{Start } a + k \cdot \text{Step}, \quad k = 0,1,\dots,\text{Rows}-1$$
實例演算
使用預設值時,部分列的結果如下:\(a = -3\) 時 \(1/\Gamma(-3) = 0\)(非正整數,為 \(\Gamma\) 的極點);\(a = -2.5\) 時約為 \(-1.0579\);\(a = 0.5\) 時為 \(1/\sqrt{\pi} \approx 0.5642\);\(a = 1\) 與 \(a = 2\) 都等於 \(1\);\(a = 5\) 時為 \(1/24 \approx 0.04167\);\(a = 7\) 時為 \(1/720 \approx 0.001389\)。曲線在 \(a \approx 1.46\) 附近達到最高點,此處 \(\Gamma(a)\) 取得最小值(\(\approx 0.8856\)),因此 \(1/\Gamma\) 的最大值 \(\approx 1.129\)。
常見問題
為什麼 \(1/\Gamma(a)\) 在 0 與負整數處等於零?因為 \(\Gamma(a)\) 在這些位置有單純極點,所以其倒數會消失為零。我們會偵測非正整數並直接回傳 \(0\)。
a 非常大時會怎樣?\(\Gamma(a)\) 增長得極快,會發生數值溢位;此時我們回傳 \(1/\Gamma = 0\),而不是 NaN。
準確度如何?Lanczos \(g=7\) 近似在整個實數軸上大約能準確到 15 位有效數字,對於製表與繪圖來說綽綽有餘。