import math def intersection(function, x0, x1): """ function is the f we want to find its root x0 and x1 are two random starting points """ x_n = x0 x_n1 = x1 while True: x_n2 = x_n1 - ( function(x_n1) / ((function(x_n1) - function(x_n)) / (x_n1 - x_n)) ) if abs(x_n2 - x_n1) < 10 ** -5: return x_n2 x_n = x_n1 x_n1 = x_n2 def f(x): return math.pow(x, 3) - (2 * x) - 5 if __name__ == "__main__": print(intersection(f, 3, 3.5))