1、取作为原方程的新近似根,即令: , k=0,1,2, (1-4)上式称为牛顿迭代格式。用牛顿迭代格式求方程的根的方法就称为牛顿迭代法,简称牛顿法。 牛顿法具有明显的几何意义。方程: (1-5)是曲线上点处的切线方程。迭代格式(1-4)就是用切线式(1-5)的零点来代替曲线的零点。正因为如此,牛顿法也称为切线法。 牛顿迭代法对单根至少是二阶局部收敛的,而对于重根是一阶局部收敛的。一般来说,牛顿法对初值的要求较高,初值足够靠近时才能保证收敛。若要保证初值在较大范围内收敛,则需对加一些条件。如果所加的条件不满足,而导致牛顿法不收敛时,则需对牛顿法作一些改时,即可以采用下面的迭代格式:, (1-6)上
2、式中,称为下山因子。因此,用这种方法求方程的根,也称为牛顿下山法。牛顿法对单根收敛速度快,但每迭代一次,除需计算之外,还要计算的值。如果比较复杂,计算的工作量就可能比较大。为了避免计算导数值,我们可用差商来代替导数。通常用如下几种方法:1. 割线法如果用 代替,则得到割线法的迭代格式为: (1-7)2. 拟牛顿法如果用代替,则得到拟牛顿法的迭代格式为: (1-8)3. Steffenson法 (1-9)二、 算法分析割线法的迭代公式为:,k=0,1,2,割线法是超线性收敛,其程序流程图为:牛顿拟迭代法迭代公式为:(1) 对单根条件下,牛顿拟迭代法平方收敛,牛顿拟迭代法程序框图如下所示:(2)
3、对重根条件下,此时迭代公式修改为:,m为根的重数此时,牛顿迭代法至少平方收敛。Steffenson迭代法程序流程图与牛顿拟迭代法类似。三、 牛顿法的程序 给定初值,用牛顿法格式,求解非线性方程。*function p1,err,k,y = newton(f1041,df1041,p0,delta,max1)% f1041是非线性函数。% df1041是f1041的微商。% p0是初始值。% delta是给定允许误差。% max1是迭代的最大次数。% p1是牛顿法求得的方程的近似解。% err是p0的误差估计。% k是迭代次数。% y = f(p1)p0, feval(f1041,p0)for k = 1:max1 p1 = p0 - feval(, p0)/feval(df1041, p0); err = abs(p1-p0); p0 = p1; p1, err, k, y = feval(, p1) if (err prog1041计算结果如下:p0 = ans = p1 = err = k = 1y = k = 2k = 3k = 4y = k = 5k = 6k = 7err = k = 8k = 9k = 10k = 11k = 12k = 13k = 14k = 15k = 16k = 17k = 18这说明,经过18次迭代得到满足精度要求的值。以下是程序运行截图: