Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Are there any simple methods for calculating the digits of $\pi$? Computers are able to calculate billions of digits, so there must be an algorithm for computing them. Is there a simple algorithm that can be computed by hand in order to compute the first few digits?

share|improve this question
I've removed the tag [constant]. –  user126 Jul 21 '10 at 8:44
I added the tag "pi." It seems like the sort of thing we should expect lots of questions about here... –  Noah Snyder Jul 21 '10 at 16:50
My first downvote! How exciting :) –  e.James Jul 22 '10 at 13:24
Since it hasn't been mentioned yet, I would recommend the interested to look at Borwein and Borwein's "Pi and the AGM": amazon.com/dp/047131515X –  J. M. Sep 4 '10 at 0:39
If it's only the first few digits, try wolframalpha.com/input/?i=pi+to+1000+digits –  lhf Sep 4 '10 at 3:42

6 Answers 6

up vote 12 down vote accepted

One of the simplest is the series for arctangent:

$$\tan^{-1}x = x - \frac{x^3}{3} + \frac{x^5}{5} - \frac{x^7}{7} \ldots$$

$\pi/4 = \tan^{-1} 1$, but that converges slowly.

You can use the addition formula for the tangent $(\tan (a+b) = (\tan a + \tan b) / (1 - \tan a \tan b))$ to break down $\pi/4$ to the sum of two angles and repeat; this can be used to come up with values for the arctangent that are smaller than 1 and therefore converge faster.

exercise for the reader: show that $\pi/4 = 2 \tan^{-1} 2/11 + 3 \tan^{-1} 1/7$

This then means that $\pi; = 8 \tan^{-1} 2/11 + 12 \tan^{-1} 1/7$

Use the arctangent formula with only a few terms and you will have pi to quite a few decimal places. ($3$ terms yields $3.14160$, $4$ terms yields $3.1415924$, $5$ terms yields $3.1415926592$)

share|improve this answer
For casual readers: Jason here employed a variant of Machin's formulae: en.wikipedia.org/wiki/Machin-like_formula –  J. M. Sep 4 '10 at 0:36

Some of the easiest algorithms to use are the spigot algorithms. They allow you to jump rapidly to the nth digit without computing the n-1 digits before. The catch is that they only really work in binary. Here are some implementations in Python. You can see how short they are.

share|improve this answer
+1 for spigot algorithms link. –  Jason S Aug 2 '10 at 13:35

Check out the questions tagged 'pi' at Stack Overflow. Many of them discuss simple numerical methods for calculating any number of digits of pi.

share|improve this answer

There is also the option of approximating $\pi$ using Monte Carlo integration.

The idea is this: If we agree that the area of a circle is $\pi r^2$, for simplicity we build a circle of area $\pi$ by setting $r=1$. Placing this circle wholly inside of another region of known area, preferably by inscribing it in a square of side length 2, then we have a ratio of the circle's area to the total area of the square (in this example that ratio is $\frac{\pi}{4}$).

The Monte Carlo method works by approximating areas based on the ratio of the number of sample points lying within our region of interest and the total number of sample points we choose to try. If we spread a uniformly distributed sequence of $N$ points over our square of area 4, and call the number of points that land inside of the inscribed circle $p$, then we can say $\frac{\pi}{4} = \frac{p}{N}$.

My implementation of this in Matlab requires tens of thousands of test points to achieve 3.14159xxxx, but I have not tried it for low-discrepancy sequences, or any other uniformly distributed point sets.

share|improve this answer

Check out the wiki page on approximations to pi, http://en.wikipedia.org/wiki/Numerical_approximations_of_%CF%80#20th_century

I really love Ramanujan's method, which I recall converges extremely rapidly.

share|improve this answer

Since the AGM hasn't been mentioned yet (apart from my plug to read the Borwein and Borwein book), here's how to use the AGM to compute $\pi$:

until |c| is small enough

which exploits the Legendre relation.

share|improve this answer

protected by t.b. Jul 29 '11 at 11:30

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.