Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. import math
  2.  
  3.  
  4. def func(x):
  5. return x - 2 * math.exp(-x)
  6.  
  7.  
  8. def derivative(x):
  9. return 1 + 2 * math.exp(-x)
  10.  
  11.  
  12. def bisection(left, right, n):
  13. if n == 3:
  14. print(func((left + right) / 2))
  15. print((left + right) / 2)
  16. print()
  17. return (left + right) / 2
  18. middle = func((left + right) / 2)
  19. n += 1
  20. if middle * func(left) < 0:
  21. return bisection(left, (right + left) / 2, n)
  22. else:
  23. return bisection((left + right) / 2, right, n)
  24.  
  25.  
  26. def steffensen(x0, n):
  27. g = lambda x : func(x + func(x)) / func(x)
  28. for i in range(n):
  29. x0 -= func(x0) / g(x0)
  30. print(func(x0))
  31. print(x0)
  32.  
  33.  
  34. def newton(x0, n):
  35. for i in range(n):
  36. x0 -= func(x0) / derivative(x0)
  37. print(func(x0))
  38. print(x0)
  39. print()
  40.  
  41.  
  42. bisection(0, 1, 1)
  43. steffensen(0, 30)
  44. newton(0, 3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement