ヴィエトの公式とは
1593年、フランスの数学者フランソワ・ヴィエトは、円周率πを解析的な閉じた形で表す、史上初めて知られる無限積を発表しました。この式はすべて、2分の1の入れ子状の平方根だけで組み立てられています。本計算機は、指定した項数までこの無限積を計算し、値が3.14159265358979へどれほど速く収束していくかを表示します。純粋数学に基づくため、世界のどこで計算しても同じ答えが得られます。
$$\frac{2}{\pi} = \sqrt{\tfrac12} \cdot \sqrt{\tfrac12 + \tfrac12\sqrt{\tfrac12}} \cdot \sqrt{\tfrac12 + \tfrac12\sqrt{\tfrac12 + \tfrac12\sqrt{\tfrac12}}} \cdots$$
使い方
ループ回数(計算する積の項数。初期値は100)を入力し、表示する桁数を選びます。1項増えるごとに、内接する正多角形の辺の数が2倍になり、正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\) で割った値で近似されます。推定値は下側からπへと上昇していき、1項ごとに2進数で約1桁ずつ正確になっていきます。
$$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\) は常に下側からπへ近づく過小評価となります。