Newton迭代法的改进——弦截法
个人学习笔记!
一、弦截法原理
Newton法要计算函数的导数,当导数不方便计算时,可以利用导数的定义,由相近点处函数值的差来近似,这就得到
弦截法公式:

求解时需要给出 x0,x1两个初始值。
收敛性:超线性收敛,且收敛阶

注意:一般非线性方程有多个根,而弦截法只能得到所给初始值附近的一个根。在应用弦截法时应注意这点
二、python程序实现
例题:求函数在x=1附近的根。
import numpy as np
def f(x):
return x**3-7.7*x*x+19.2*x-15.3
x0 = 1
x1 = 1.655889
f0 = f(x0)
f1 = f(x1)
while(np.abs(x1-x0)>1e-5):
x2 = x1 - f1*(x1-x0)/(f1-f0)
x0,x1 = x1,x2
f0,f1 = f1,f(x1)
print('root:{:.4f}'.format(x2))
经过5次迭代,
输出结果:1.7000,达到精度1e-5,迭代曲线如下:
