In article <[EMAIL PROTECTED]>, "hossam" <[EMAIL PROTECTED]> wrote:
> I'm studying python newly and have an exercise that is difficult for me as a > beginner.Here it is : > "Write a program that approximates the value of pi by summing the terms of > this series: > 4/1-4/3+4/5-4/7+4/9-4/11+.... The program should prompt the user for n, the > number of terms to sum and then output the sum of the first n terms of this > series." > > any help would be appreciated. > > benni The series you're describing is basically expanding the Taylor series for 4 * atan(1), where i oo -1 atan(1) = SUM ------ i = 0 2i + 1 (or in LaTeX: \sum_{i=0}^{\infty}\frac{-1^i}{2i+1}) To enumerate the terms of this series, you can treat i as a counter, and compute the numerator and denominator either directly or from their previous values. The sum can be accumulated into a separate variable. So, for instance, . sum = 0. ; num = 1. ; den = 1. . for i in xrange(n): . sum += num / den . num = -num . den += 2 . . pi = 4 * sum # approximately... Keep in mind that this approximation for atan(1) converges very slowly, so you will need to do quite a lot of terms before it will converge (you need about a thousand terms to get 2 significant figures after the decimal point). You might have better results using Machin's formula, atan(1) = 4 * atan(1/5) - atan(1/239) Or, pi = 16 * atan(1/5) - 4 * atan(1/239). The Taylor series will converge more quickly for atan(1/5) and atan(1/239). (LaTeX: \mathrm{atan}(x) = \sum_{i=0}^\infty\frac{(-1^i)x^i}{2i+1}) Cheers, -M -- Michael J. Fromberger | Lecturer, Dept. of Computer Science http://www.dartmouth.edu/~sting/ | Dartmouth College, Hanover, NH, USA -- http://mail.python.org/mailman/listinfo/python-list