# -*- coding: utf-8 -*-
"""
Created on Fri Sep 22 16:11:11 2017
@author: www
"""
#root代表根,f(x0)对应y值。
import numpy as np
import matplotlib.pyplot as plt
def dx(f, x):
return abs(0-f(x))
def newtons_method(f, df, x0, e):
x=np.linspace(0,2,50)
y=f(x)
a=[]
b=[]
plt.plot(x,y)
delta = dx(f, x0)
while delta > e:
a.append(x0)
b.append(delta)
x0 = x0 - f(x0)/df(x0)
delta = dx(f, x0)
print ('Root is at: ', x0)
print ('f(x) at root is: ', f(x0))
plt.plot(a,b)
def f(x):
#return 6*x**5-5*x**4-4*x**3+3*x**2
return x*x-2*x+1
def df(x):
#return 30*x**4-20*x**3-12*x**2+6*x
return 2*x-2
x0s = [0, .5, 1]
for x0 in x0s:
newtons_method(f, df, x0, 1e-5)