這個計算器的功能
本工具透過數種歷史上著名的「馬青類(Machin-like)」雙項反正切公式來計算數學常數 π。每一條公式都把 π/4 表示成兩個小有理數反正切值的加權和,而每個反正切再以經典的格雷戈里/萊布尼茲冪級數展開。由於這些反正切的引數都很小,級數收斂得相當快,只需少數幾項就能達到雙精度浮點數的完整準確度。
使用方式
從下拉選單中挑選一條知名公式——馬青(Machin,1706)、赫爾曼(Hermann,1706)、歐拉(Euler,1738)、歐拉與維加(Euler & Vega,1755),或赫頓(Hutton,1776)。接著設定你想要的有效位數,以及級數項數上限(最大迭代次數)。計算器會回傳算得的 π 值、在下一項小於容許誤差前所累加的項數,以及與 π 真值相比的絕對誤差。
注意:本重製版本採用 IEEE 雙精度浮點運算,準確度約可達 15~16 位有效數字。超過此範圍的設定會被限制在 15 位;若要達到原工具 22~50 位的範圍,則需使用任意精度(大數)運算。
公式說明
通用恆等式為 $$\pi = 4\left(c_1\,\arctan\frac{p_1}{q_1} + c_2\,\arctan\frac{p_2}{q_2}\right)$$ 格雷戈里級數 $$\arctan(x) = x - \frac{x^3}{3} + \frac{x^5}{5} - \frac{x^7}{7} + \cdots$$ 會逐項相加,直到某一項小於容許誤差 \(0.5\times10^{-(\text{位數}+2)}\) 為止。引數越小,收斂越快:馬青使用的 \(1/5\) 與 \(1/239\),所需項數遠少於歐拉的 \(1/2\) 與 \(1/3\),卻能達到相同的高準確度。
實例演算(馬青 1706)
取 \(\text{arg}_1 = 1/5\)、\(c_1 = 4\),則 \(\arctan(0.2) \approx 0.19739555985\);取 \(\text{arg}_2 = 1/239\)、\(c_2 = -1\),則 \(\arctan(1/239) \approx 0.00418407600\)。於是 $$\frac{\pi}{4} = 4\cdot 0.19739555985 - 0.00418407600 = 0.78539816339$$ 因此 $$\pi = 4\cdot 0.78539816339 = 3.14159265359$$ 與真值相符。
常見問題
為什麼沒有萊布尼茲級數(arctan 1)這個選項?因為 \(\arctan(1) = \pi/4\) 收斂得極為緩慢——累加數千項也只能得到寥寥幾位正確數字——所以它僅在歷史脈絡中提及,並未列為快速公式供選用。
為什麼馬青公式所需的項數比歐拉少?因為馬青的引數(\(1/5\)、\(1/239\))較小,而格雷戈里級數在 \(|x|\) 越小時收斂越快。
在這裡能算出 40 位的 π 嗎?用雙精度做不到;結果大約只能可靠到 15 位。要更高的精度,必須使用大數(big-decimal)運算。