#
Computing Pi as an Area 3

##
Problem 1.

Below is a pseudoprogram for computing the area of the
upper-right quadrant of the unit circle. Pi is four times this
area. The idea behind the pseudoprogram is to approximate the
quarter-circle by a union of rectangular strips. If we use n
strips of equal width, then the width of each strip is 1/n. The
left endpoint of the ith strip is at x = 1/n. Using the
equation x^2 + y^2 = 1 for the circle we find the height of the
strip, and hence its area. The sum of all these areas is an
approximation to the area of the quarter-circle, which is what
we need to compute the area.
In your write-up include (a) statement of the problem, (b) a
picture which illustrates what is going on, (c) the text of
the C program, (d) its output for n = 10, 100, 1000, where n
is the number of subdivisions, per the discussion in class.
Use your result to give approximate values of pi. Contrast
and compare these with your previous method for computing
pi. Finally, discuss the precision of your results.

PSEUDOPROGRAM:
Given: n, the number of subdivisions and f, a function
Compute: the area under the graph of f between a and b
A <- 0 # initialize the area to zero
a <- 0 # left end point
b <- 1 # right end point
x <- a # starting value of x
dx <- (b-a)/n # the size of the subintervals
for i from 1 to n # the loop (heart of this program)
A <- A + f(x)dx # accumulate areas of strips in A
x <- x + dx # advance x

##
Problem 2

Modify your program to compute an approximate value of the
integral of the cube root of 1 - x^2 on the interval [0,1]. Can
you integrate this by standard analytical methods, e.g., the
ones you learned in first-year calculus?

##
Notes

You will need to use the `sqrt` function which is
contained in the library `<math.h>`. To compile a
program which uses the math library, imititate this example:
% gcc -o area area.c -lm

The option `-lm` stands for ``load math'' library.
Below is an example of a simple (and silly) C program which uses
`<math.lib>` and which must be compiled with the
`-lm` option.
#include <stdio.h>
#include <math.h>
main() {
float a = 2.0;
float b = sqrt(a);
printf(" result = %f\n", b );
b = exp(a);
printf(" result = %f\n", b );
b = log(a);
printf(" result = %f\n", b );
b = exp(log(a));
printf(" result = %f\n", b );
}

Back to syllabus

Back to Department of Mathematics, University of Utah

Last modified: Feb 21, 1995

Copyright © 1995 Department of Mathematics, University of
Utah