CS 100

Logo

Scientific Computing

Activity 7 - Pi: Leibniz and Wallis approximations

Recall from your textbook that the Leibniz formula states that

The Wallis formula states that

  1. Create a file leibniz-wallis.py and save it to cs100/ch2. Copy the archimedes(sides) function definition from the previous activity to it.

  2. Add and implement the functions which approximate Pi using the Leibniz and Wallis formulas. I suggest you call your Leibniz function for 200 and 500 terms, and the Wallis function for 4, 20, and 100 pairs. Here is a sketch of your program.

    def leibniz(terms):
        # your code goes here
        approxPi =  0
        return approxPi
       
    def wallis(numPairs):
        # your code goes here
        approxPi = 1
        return approxPi
           
    print("Results for Leibniz formula:")
    print(leibniz(200))
    print(leibniz(500))
       
    print("Results for Wallis formula:")
    print(wallis(4))
    print(wallis(20))
    print(wallis(100))
    
  3. Compare the approaches to compute Pi using Archimedes, Leibniz, and Wallis approximations. Which one is better for a comparable number of sides / terms / pairs ?

  4. Type help('math') in the Shell area. Use it (or the corresponding website) to determine how to print the constant Pi from the math library.

  5. What other functions from the math library can you use? Try a few to experiment! đŸ§®

If you finish early

  1. An infinite number of mathematicians walk into a bar. The first one orders a pint. The second one orders half a pint. The third one orders a quarter of a pint. The next orders an eight of a pint… Seeing the pattern, the bartendar gives up and pours how many pints? We could represent this with the famous summation, Write a function called computeSummation(terms) that will compute the summation up to so many terms. Test it by invoking your function. What does the value approach for very large terms? (Make sure you get a decimal result).

How to submit

Submit your file to Moodle.