In [ ]:

```
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from scipy.integrate import quad
from scipy.interpolate import interp1d
from scipy.optimize import curve_fit, fsolve
```

- Consider the solution to the simple fourth order polynomial: $x^4−1=0$.
- There are four roots at $x=1,−1,i,−i$.
- Newton's method starts at a given guess $x_0$, then updates that guess.
- If we guess some point in the complex plane, Newton's method will converge to one of the four roots.
- Which is converged to depends on the location of the initial guess.

- The following plot is colored as follows:
- Each point in the plane is a starting point for Newton's method applied to $x^4−1=0$.
- The color for each point depends on which solution the method converges to.

In [ ]:

```
n = 4000 # number of points across plane
nit = 20 # number of Newton iterations
x = np.linspace(-2,2,n) # x points
y = np.linspace(-2,2,n) # y points
X,Y = np.meshgrid(x,y) # make 2-D array of x,y pts for plotting
Z = X + 1j*Y # 2D array of initial guesses
for it in range(nit) : # do Newton iterations (on the whole array at once)
Z = Z - (Z**4 - 1)/(4*Z**3)
plt.figure(figsize=(10,10))
phi = np.angle(Z)
plt.contourf(X,Y,phi,cmap='jet');
```

In [ ]:

```
```