def Newton(f, x, dfdx, epsilon=1.0E-7, max_n=100, store=False): f_value = f(x) n = 0 if store: info = [(x, f_value)] while abs(f_value) > epsilon and n <= max_n: x = x - f_value/dfdx(x) n += 1 f_value = f(x) if store: info.append((x, f_value)) if store: return x, info else: return x, n, f_value