Gauss–Legendre algorithm

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

The Gauss–Legendre algorithm is an algorithm to compute the digits of π. It is notable for being rapidly convergent, with only 25 iterations producing 45 million correct digits of π. However, it has some drawbacks (for example, it is computer memory-intensive) and therefore all record-breaking calculations for many years have used other methods, almost always the Chudnovsky algorithm. For details, see Chronology of computation of π.

The method is based on the individual work of Carl Friedrich Gauss (1777–1855) and Adrien-Marie Legendre (1752–1833) combined with modern algorithms for multiplication and square roots. It repeatedly replaces two numbers by their arithmetic and geometric mean, in order to approximate their arithmetic-geometric mean.

The version presented below is also known as the Gauss–Euler, Brent–Salamin (or Salamin–Brent) algorithm;[1] it was independently discovered in 1975 by Richard Brent and Eugene Salamin. It was used to compute the first 206,158,430,000 decimal digits of π on September 18 to 20, 1999, and the results were checked with Borwein's algorithm.

Algorithm

[edit | edit source]
  1. Initial value setting: a0=1b0=12p0=1t0=14.
  2. Repeat the following instructions until the difference between an+1 and bn+1 is within the desired accuracy: an+1=an+bn2,bn+1=anbn,pn+1=2pn,tn+1=tnpn(an+1an)2.
  3. π is then approximated as: π(an+1+bn+1)24tn+1.

The first five iterations give (approximations given up to and including the first incorrect digit):

3.140
3.14159264
3.1415926535897932382
3.14159265358979323846264338327950288419711
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998625

The algorithm has quadratic convergence, which essentially means that the number of correct digits doubles with each iteration of the algorithm.

Mathematical background

[edit | edit source]

Limits of the arithmetic–geometric mean

[edit | edit source]

The arithmetic–geometric mean of two numbers, a0 and b0, is found by calculating the limit of the sequences

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

which both converge to the same limit.
If a0=1 and b0=cosφ then the limit is π2K(sinφ) where K(k) is the complete elliptic integral of the first kind

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

If c0=sinφ, ci+1=aiai+1, then

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

where E(k) is the complete elliptic integral of the second kind:

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

Gauss knew of these two results.[2] [3] [4]

Legendre’s identity

[edit | edit source]

Legendre proved the following identity:

K(cosθ)E(sinθ)+K(sinθ)E(cosθ)K(cosθ)K(sinθ)=π2,

for all θ.[2]

Elementary proof with integral calculus

[edit | edit source]

The Gauss-Legendre algorithm can be proven to give results converging to π using only integral calculus. This is done here[5] and here.[6]

See also

[edit | edit source]

References

[edit | edit source]
  1. ^ Brent, Richard, Old and New Algorithms for pi, Letters to the Editor, Notices of the AMS 60(1), p. 7
  2. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ Salamin, Eugene, Computation of pi, Charles Stark Draper Laboratory ISS memo 74–19, 30 January 1974, Cambridge, Massachusetts
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).