def lagrange(f, a, b, epsilon):
c=(a*f(b)-b*f(a))/(f(b)-f(a))
if abs(f(a)*f(c)) < epsilon:
return c
elif f(a)*f(c) < 0:
return lagrange(f, a, c, epsilon)
else:
return lagrange(f, c, b, epsilon)
def f(x):
return x**3-x-1
lagrange(f, 0, 2, 0.01)
Out: 1.32421875