import math import numpy as np import matplotlib.pyplot as plt def f(x): return math.pow(math.e, math.pow(x, 2)) + math.pow(x, -3) - 10 def f_diff(x): return 2 * x * math.pow(math.pow(math.e, x), 2) - 3 * math.pow(x, -4) def newtonStep(x0, function, function_diff): return x0 - (function(x0)) / (function_diff(x0)) def newton(x0, iterations, function, function_diff): x = [] x.append(x0) print("x" + str(0) + ":", str(x[0])) for i in range(iterations): x.append(newtonStep(x0=x[i], function=function, function_diff=function_diff)) print("x" + str(i + 1) + ":", str(x[i + 1])) if __name__ == '__main__': newton(x0=2, iterations=4, function=f, function_diff=f_diff)