Not so fast
James Gregory's series for
is not so fast. It converges very slowly and so does not provide an efficient way to compute . After summing half a million terms, we only get five correct decimal places. We can verify this with the following bc code.
s = 0 scale = 50 for(k = 1; k <= 500000; k++) { s += (-1)^(k-1)/(2*k-1) } 4*s
which returns
3.141590...
which differs from in the sixth decimal place. So does that mean there's nothing interesting about Gregory's formula? Not so fast!
When anyone speaks of a number of correct decimals, they nearly always mean number of consecutive correct digits following the decimal point. But for this post only I'll take the term literally to mean the number of decimals that match the decimals in the correct answer.
The number of correct decimals (in this non-standard use of the term) in the series above is not so bad. Here's the result, with the digits that differ from those of underlined:
3.1415906535897932404626433832695028841972...
So even though the sixth decimal value is wrong, the next 10 after that are correct, and then after a couple errors we get another string of correct digits.
In [1] the authors explain what makes this example tick, and show how to create similar sequences. For example, we see a similar pattern whenever the limit of the sum is half of a power of 10, but not so much for other limits. For example, let's increase 500,000 to 600,000. We get
3.141590986923126572953384124016
which is completely wrong after the sixth digit. So even though the result is slightly more accurate, it has fewer correct decimals.
Related posts[1] Jonathan Borwein, Peter Borwein, Karl Dilcher. Pi, Euler Numbers, and Asymptotic Expansions. American Mathematical Monthly. vol 96, p. 681-687.
The post Not so fast first appeared on John D. Cook.