import numpy as np def f(x): return (x**2)*(np.sin(x - 2)) - 4*x def dfdx(x, h): return (f(x + h) - f(x - h))/(2*h) val = 0.00001 x_n = 8 h = 0.0001 while abs(f(x_n)) > val: x_s = x_n print('x_s = ', x_s) x_np1 = x_n - f(x_n)/dfdx(x_n, h) x_n = x_np1