牛顿迭代法求方程的根实例浅析

摘要:牛顿迭代法是方程求根中的一种较快捷的迭代方法,但遇到较复杂的方程时计算量较大。文章采用了MATLAB编程来实现牛顿迭代法,并给出了具体的计算例子。在Visual C++6.0环境下的数值运算结果表明,近似效果良好。

关键词:牛顿法;近似根;迭代公式;计算数学

中图分类号:G648 文献标识码:B 文章编号:1672-1578(2014)05-0011-02

近些年来,科学技术和计算机的快速发展有力地推动着非线性问题的发展。有些经典的方法经过严格的实践检验后,显露出若干缺陷。例如,收敛阶高,但计算效率低下,或者收敛阶低,可计算效率高等,尤其是在大规模计算中,计算效率显得至关重要,为此人们通常根据具体的问题选择相应的迭代算法,以尽量提高计算效率[1]。在工程实践中,有许多问题往往归结为求一元非线性方程的实根、求函数的定积分、求线性方程组的解等。而即使对于求一元方程实根这类问题,也只有在少数简单的情况下,才可以用传统的方法得到根的数学表达式。多数情况下是得不到一般数学方法所需的函数表达式,或难以找到原函数。线性方程组的求解更是让人望而生畏,往往因为计算机工作量太大而无法实施。对这些问题,都可以利用数值方法来求解,在计算机中实现的数值方法也称为数值算法。牛顿迭代法是数值分析中一个重要的计算方法和思想。

1.算法理论

牛顿迭代法也称为牛顿切线法,是解非线性方程的一种方法[2]。牛顿迭代法是取x0之后,在这个基础上,找到比x0更接近的方程的根,一步一步迭代,从而找到更接近方程根的近似根。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x) = 0的根。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。另外该方法广泛用于计算机编程中。

1.1 牛顿迭代法原理。设已知方程f(x)=0的近似根x0,则在x0附近f(x)可用一阶泰勒多项式p(x)=f(x0)+f"(x0)(x-x0)近似代替。因此, 方程f(x)=0可近似地表示为p(x)=0。用x1表示p(x)=0的根,它与f(x)=0的根差异不大。

设,

由于满足解得

重复这一过程,得到迭代格式

这就是著名的牛顿迭代公式,它相应的不动点方程为

1.2 牛顿迭代法的几何解析。在x0处作曲线的切线,切线方程为。令y=0,可得切线与x轴的交点坐标这就是牛顿法的迭代公式。因此,牛顿法又称"切线法"。

1.3 牛顿迭代法的收敛性。定义设迭代过程收敛于方程的根x*,如果迭代误差当时成立下列关系式

则迭代过程是p阶收敛的。特别的,p=1时称为线性收敛,p>1时称为超线性收敛,p=2时称为平方收敛

定理1 对于迭代过程如果在所求根x*的临近连续,并且则该迭代过程在点 邻近是 阶收敛的。

定理2 如果x*是方程f(x)的一个单根,并且f(x)在x*及其附近具有连续的二阶导数,则只要初始近似根x0充分靠近x*,牛顿法在根x*的临近平法收敛。

定理3 设函数f(x)在[a,b]上存在二阶连续导数,且满足条件:

(1);(2)当时,;(3)当时,不变号;(4)则对于任意初始值,由牛顿迭代格式确定的序列收敛于在区间[a,b]内唯一的根x*。

定理4 设函数f(x)在区间[a,b]内有二阶导数,如果满足:

(1);(2);则以x0为初始值,由牛顿迭代法所确定的序列收敛于方程f(x)=0的根x*。

2.算法实现

例1.用牛顿法求方程f(x)=x(x+1)2-1=0在0.4附近的根,并精确到6位有效数字。

3.结论

通过以上方程的算法实现,表明牛顿迭代法在计算方程时可以比较快速方便的计算出结果,并且不影响计算出来结果的精确度。

参考文献

[1] 李洋洋.非线性方程的迭代解法研究[D],硕士学位论文集,2012(4)。

[2] 柳辉.解非线性方程的牛顿迭代法及其应用[J],重庆工学院学报2007(8)。

作者简介:

苏正君(1980-),男,汉族,辽宁辽阳市人,助教,主要从事高等数学与应用数学方面的研究。