什麼是韋達公式?
1593 年,法國數學家韋達(François Viète)發表了史上第一個以無窮乘積形式表達圓周率 π 的解析公式。整個式子完全由「二分之一」的巢狀平方根層層堆疊而成。本計算器會依你指定的項數計算這個乘積,並呈現數值收斂至 3.14159265358979 的速度有多快。這是純粹的數學,無論在世界哪個角落計算,得到的答案都完全相同。
$$\frac{2}{\pi} = \sqrt{\tfrac12} \cdot \sqrt{\tfrac12 + \tfrac12\sqrt{\tfrac12}} \cdot \sqrt{\tfrac12 + \tfrac12\sqrt{\tfrac12 + \tfrac12\sqrt{\tfrac12}}} \cdots$$
如何使用
輸入疊代次數(要計算的乘積項數,預設為 100),再選擇你想顯示的位數。每增加一項,相當於把內接正多邊形的邊數翻倍——從正 4 邊形一路推進到正 \(2^{n+1}\) 邊形。由於本次重建採用標準的 IEEE 754 雙精度浮點運算,π 可解析至約 15 位有效數字;而顯示位數的選項,只是把輸出結果四捨五入到對應的位數而已。
公式拆解
先令 \(s = 0\)、\(y = 1\)。在每一步 \(k\),將 \(s\) 更新為 \((1 + s) / 2\) 的平方根,再把這個值乘進累積乘積 \(y\)。每一個因子都等於 \(\cos(\pi / 2^{k+1})\),而這些餘弦值的乘積會趨近於 \(2/\pi\)。因此,π 可由 2 除以累積乘積 \(y\) 來逼近。估計值會由下方逐漸上升趨近 π,每多算一項大約能多取得一個正確的二進位數字。
$$s_k=\sqrt{\tfrac{1+s_{k-1}}{2}},\quad y_k=\prod_{i=1}^{k}s_i,\quad \pi=\frac{2}{y_k}$$
實例演算
k=1:\(s = \sqrt{0.5} = 0.70710678\),\(y = 0.70710678\),\(\pi \approx 2.82842712\)。k=2:\(s = 0.92387953\),\(y = 0.65328148\),\(\pi \approx 3.06146746\)。k=3:\(\pi \approx 3.12144515\)。k=4:\(\pi \approx 3.13654849\)。到了 k=20,數值已與 π 吻合到小數點後 14 位;而只要疊代次數約達 30 次以上,在雙精度運算下便會穩定鎖定在 3.14159265358979。
常見問題
為什麼把顯示位數調到超過 15 位也沒幫助?標準雙精度浮點數只能保留約 15 至 16 位有效數字,因此無論選項調到多少,底層運算本身都無法解析出更多位數。
為什麼疊代次數太少,估計值會這麼不準?這個乘積以幾何級數收斂;當項數只有寥寥幾個時,相當於還在逼近邊數很少的多邊形,所以數值會明顯低於 π。
結果有沒有可能超過 π?不會。每個因子都是小於 1 的餘弦值,因此 \(2/y\) 永遠是由下方逼近 π,屬於偏低的低估值。