# coding: utf-8 # # Newton's Method # In[85]: import numpy as np import matplotlib.pyplot as pt # Here's a function: # In[86]: def f(x): return x**3 - x +1 def df(x): return 3*x**2 - 1 xmesh = np.linspace(-2, 2, 100) pt.ylim([-3, 10]) pt.plot(xmesh, f(xmesh)) # In[87]: guesses = [2] # Evaluate this cell many times in-place (using Ctrl-Enter) # In[84]: x = guesses[-1] # grab last guess slope = df(x) # plot approximate function pt.plot(xmesh, f(xmesh)) pt.plot(xmesh, f(x) + slope*(xmesh-x)) pt.plot(x, f(x), "o") pt.ylim([-3, 10]) pt.axhline(0, color="black") # Compute approximate root xnew = x - f(x) / slope guesses.append(xnew) print(xnew)