Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- def func(x):
- return x - 2 * math.exp(-x)
- def derivative(x):
- return 1 + 2 * math.exp(-x)
- def bisection(left, right, n):
- if n == 3:
- print(func((left + right) / 2))
- print((left + right) / 2)
- print()
- return (left + right) / 2
- middle = func((left + right) / 2)
- n += 1
- if middle * func(left) < 0:
- return bisection(left, (right + left) / 2, n)
- else:
- return bisection((left + right) / 2, right, n)
- def steffensen(x0, n):
- g = lambda x : func(x + func(x)) / func(x)
- for i in range(n):
- x0 -= func(x0) / g(x0)
- print(func(x0))
- print(x0)
- def newton(x0, n):
- for i in range(n):
- x0 -= func(x0) / derivative(x0)
- print(func(x0))
- print(x0)
- print()
- bisection(0, 1, 1)
- steffensen(0, 30)
- newton(0, 3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement