Monte Carlo estimation of Pi
For ISO Modula-2
By Frank Schoonjans (firstname.lastname@example.org)
Monte Carlo methods are methods that use random numbers and probability statistics to solve problems. A common illustration is the estimation (rather than calculation) of Pi.
Let's look at the following figure. It shows a square with one quadrant of a circle.
As we all know, the area of the square is given by r2. The area of a circle is given by r2Pi, so the quadrant's area is r2Pi/4. The ratio of the area of the square and the quadrant therefore is Pi/4.
Now suppose we pick at random a large number of points inside the square, then the ratio of total points (inside the square) divided by the number of points inside the quadrant, will give us an estimate of Pi/4.
As a random number generator, we use a module from the Numerical Analysis library of Peter Moylan.
For convenience, we choose r = 1.
We pick random coordinates x,y in the range [0..1]. If x2 + y2 is less than or equal to 1, then the point given by x,y is inside the quadrant.
Our estimate of Pi is then 4 times the number of points in the quadrant divided by the total number of random points.
The code as shown yields the following output:
The download EstimatePi.zip contains the program's source files, and Peter Moylan's slightly modified Rand module, taken from his freeware Numerical Analysis library (ISO version). We have tested these files with ADW Modula-2, Stony Brook Modula-2 and XDS modula-2.
ADW Modula-2 and Stony Brook Modula-2
This article is largely based on The Basics of Monte Carlo Simulations.