Advertisement
Guest User

MO 2.6.AP1.

a guest
Nov 25th, 2014
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.74 KB | None | 0 0
  1. import sys
  2.  
  3. def f(x):
  4.   return x**2 + x - 10
  5.  
  6. def f_prime(x):
  7.   return 2*x + 1
  8.  
  9. def newt(x,n):
  10.   for i in range(n):
  11.     if f_prime(x) == 0:
  12.       return x
  13.     x = x - f(x)/f_prime(x)
  14.   return x
  15.  
  16. def bisection(a,b,tol):
  17.   c = (a+b)/2.0
  18.   while (b-a)/2.0 > tol:
  19.     if f(c) == 0:
  20.       return c
  21.     elif f(a)*f(c) < 0:
  22.       b = c
  23.     else :
  24.       a = c
  25.     c = (a+b)/2.0
  26.    
  27.   return c
  28.  
  29. def main(argv):
  30.   if (len(sys.argv) != 6):
  31.     sys.exit('Usage: newton.py <x> <n> <a> <b> <tol>')
  32.  
  33.   print 'Newton method: ',
  34.   print newt(float(sys.argv[1]),int(sys.argv[2]))
  35.   print 'Bisection method: ',
  36.   print bisection(int(sys.argv[3]),int(sys.argv[4]),float(sys.argv[5]))
  37.  
  38. if __name__ == "__main__":
  39.   main(sys.argv[1:])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement