ガウス=ルジャンドルのアルゴリズム
提供: miniwiki
ガウス=ルジャンドルのアルゴリズムは円周率を計算する際に用いられる数学の反復計算アルゴリズムである。円周率を計算するものの中では非常に収束が速く、2009年にこの式を用いて2,576,980,370,000桁(約2兆6000億桁)の計算がされた。
このアルゴリズムはカール・フリードリヒ・ガウスとアドリアン=マリ・ルジャンドルがそれぞれ別個に研究したものである。これは2つの数値の算術幾何平均を求めるために、それぞれの数値を算術平均(相加平均)と幾何平均(相乗平均)で置き換えていくものである。
Contents
アルゴリズム
これによる円周率の計算方法は以下の通りである。
初期値の設定
- [math]a_0 =1\qquad b_0 =\frac{1}{\sqrt{2}} \qquad t_0 =\frac{1}{4} \qquad p_0 =1[/math]
反復式
a, b が希望する精度(桁数)になるまで以下の計算を繰り返す。小数第n位まで求めるとき log2 n 回程度の反復でよい。
- [math]\begin{align} a_{n+1} &=\frac{a_n +b_n}{2} \\ b_{n+1} &=\sqrt{a_n b_n} \\ t_{n+1} &=t_n -p_n(a_n - a_{n+1})^2 \\ p_{n+1} &= 2p_n \end{align}[/math]
π の算出
円周率 π は、a, b, t を用いて以下のように近似される。
- [math]\pi \approx \frac{(a+b)^2}{4t}[/math]
最初の3回の反復で得られる数値(最後の桁は真値とは異なる)は以下の通りである。
- [math]3.140\dots[/math]
- [math]3.14159264\dots[/math]
- [math]3.1415926535897932382\dots[/math]
この反復プロセスは自然収束し、反復1回について前に正常だった桁の2倍の桁の数値までが収束する。ガウス自身、この式で4回まで反復を行い12桁まで正しいことを確認したことが知られている。