高斯-勒让德算法

来自testwiki
跳转到导航 跳转到搜索

Template:NoteTA

高斯-勒让德算法是一种用于计算圆周率(π)的算法。它以迅速收敛著称,只需25次迭代即可产生π的4500万位正确数字。不过,它的缺点是内存密集,因此有时它不如梅钦类公式使用广泛。

该方法基于德國數學家卡尔·弗里德里希·高斯Template:Lang,1777–1855)和法國數學家阿德里安-马里·勒让德Template:Lang,1752–1833)的个人成果与乘法和平方根运算之现代算法的结合。该算法反复替换两个数值的算术平均数几何平均数,以接近它们的算术-几何平均数

下文的版本也被称为高斯-欧拉,布伦特-萨拉明(或萨拉明-布伦特)算法[1];它于1975年被理查德·布伦特尤金·萨拉明独立发现。日本筑波大学于2009年8月17日宣布利用此算法计算出π小数点后2,576,980,370,000位数字,计算结果用波温算法检验。[2]

知名的电脑性能测试程序Super PI也使用此算法。

算法

  1. 设置初始值:
    a0=1b0=12t0=14p0=1.
  2. 反复执行以下步骤直到anbn之间的误差到达所需精度:
    an+1=an+bn2,bn+1=anbn,tn+1=tnpn(anan+1)2,pn+1=2pn.
  3. 则π的近似值为:
    π(an+1+bn+1)24tn+1.

下面给出前三个迭代结果(近似值精确到第一个错误的位数):

3.140
3.14159264
3.1415926535897932382

该算法具有二阶收敛性,本质上说就是算法每执行一步正确位数就会加倍。

数学背景

算术-几何平均数的极限

a0和b0两个数的算术-几何平均数,是通过计算它们的序列极限得到的:

an+1=an+bn2,bn+1=anbn,

两者汇聚于同一极限。
a0=1b0=cosφ,则极限为π2K(sinφ),其中K(k)第一类完全椭圆积分

K(k)=0π2dθ1k2sin2θ.

c0=sinφci+1=aiai+1,则

i=02i1ci2=1E(sinφ)K(sinφ)

其中E(k)第二类完全椭圆积分

E(k)=0π21k2sin2θdθ.

高斯知道以上这两个结果。[3] [4] [5]

勒让德恒等式

对于满足φ+θ=12πφθ,勒让德证明了以下恒等式:

K(sinφ)E(sinθ)+K(sinθ)E(sinφ)K(sinφ)K(sinθ)=12π.[3]

高斯-欧拉法

φ=θ=π4的值可以代入勒让德恒等式,且K、E的近似值可通过a0=1b0=sinπ4=12的算术-几何平均数的序列项得到。[6]

参考文献

Template:Reflist

  1. Brent, Richard, Old and New Algorithms for pi, Letters to the Editor, Notices of the AMS 60(1), p. 7
  2. [[[:Template:Cite web]] Template:Lang]
  3. 3.0 3.1 Template:Citation
  4. Salamin, Eugene, Computation of pi, Charles Stark Draper Laboratory ISS memo 74–19, 30 January, 1974, Cambridge, Massachusetts
  5. Template:Citation
  6. Adlaj, Semjon, An eloquent formula for the perimeter of an ellipse, Notices of the AMS 59(8), p. 1096