from math import sin,tan,pi def f(x): return sin(x) print 'Bisection method' a=3.0 b=4.0 m=(a+b)/2.0 for i in range(1,11): if f(m)==0: a=b=m if f(a)*f(m)<0: b=m else: a=m m=(a+b)/2.0 print i,m,(m-pi)/pi print 'Secant method' xpp=4.0 xp=3.0 for i in range(1,5): z=xp-f(xp)*(xp-xpp)/(f(xp)-f(xpp)) xpp=xp xp=z print i,xp,(xp-pi)/pi print 'Newton method' x=3.0 for i in range(1,5): x=x-tan(x) print i,x,(x-pi)/pi