python - calculate cos(x) by summing a series -
i'm new in computer programming , started on learning python. in assignment need calculate cos(x) summing series 1 - x^2/2! + x^4/4! - x^6/6! . . .
how do without using numpy or m.factorial? think i'm supposed use while loop. here code far
print("investigation of complex infinite series") print("") print("part a: exp, cos , sin series real value 1") print("using convergence criterion of 1e-20") print("") print("count exp terms sign cos terms sin terms") print("----------------------------------------------------------------------") count = 0.0 # number of terms added far total = 0.0 # total of terms far termsign = 1 term = 1.0 # initial term xx = 1 while abs(term) > 1e-20: count += 1 print("%2d %22.16g %2d" % (count, term, termsign)) termsign = (-1)**(count//2) total = total + term term = term/count
the output of code should this:
count exp terms sign cos terms ---------------------------------------------------------- 1 1 1 1.00000000000000000 2 1 1 3 0.5 -1 -0.50000000000000000 4 0.1666666666666667 -1 5 0.04166666666666666 1 0.04166666666666666 6 0.008333333333333333 1 7 0.001388888888888889 -1 -0.00138888888888889 8 0.0001984126984126984 -1 9 2.48015873015873e-05 1 0.00002480158730159 10 2.755731922398589e-06 1 11 2.755731922398589e-07 -1 -0.00000027557319224 12 2.505210838544172e-08 -1 13 2.08767569878681e-09 1 0.00000000208767570 14 1.605904383682162e-10 1 15 1.147074559772973e-11 -1 -0.00000000001147075 16 7.647163731819817e-13 -1 17 4.779477332387386e-14 1 0.00000000000004779 18 2.811457254345521e-15 1 19 1.561920696858623e-16 -1 -0.00000000000000016 20 8.220635246624331e-18 -1 21 4.110317623312165e-19 1 0.00000000000000000 22 1.957294106339126e-20 1 -----------------------------------------------------------
you're close ... left out couple of computation steps.
x = 3.1415926535 / 4 sum_up = 1 term = 1 converge = 1e-20 = 1 while abs(term) > converge: term = -term * x * x / (i * (i+1)) sum_up += term += 2 print sum_up
output:
0.707106781202
Comments
Post a Comment