牛顿迭代法收敛定理-UESTC
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于牛顿迭代法的课程设计实验指导
非线性方程(或方程组)问题可以描述为求 x 使得f (x ) = 0。在求解非线性方程的方法中,牛顿迭代法是求非线性方程(非线性方程组)数值解的一种重要的方法。牛顿是微积分创立者之一,微积分理论本质上是立足于对世界的这种认识:很多物理规律在微观上是线性的。近几百年来,这种局部线性化方法取得了辉煌成功,大到行星轨道计算,小到机械部件设计。牛顿迭代法正是将局部线性化的方法用于求解方程。
一、牛顿迭代法及其收敛速度
牛顿迭代法又称为牛顿-拉夫逊方法(Newton-Raphson method ),是一种在实数域和复数域上通过迭代计算求出非线性方程的数值解方法。方法的基本思路是利用一个根的猜测值x 0做初始近似值,使用函数f (x )在x 0处的泰勒级数展式的前两项做为函数f (x )的近似表达式。由于该表达式是一个线性函数,通过线性表达式替代方程中的求得近似解x 1。即将方程f (x ) = 0在x 0处局部线性化计算出近似解x 1,重复这一过程,将方程f (x ) = 0在x 1处局部线性化计算出x 2,求得近似解x 2,……。详细叙述如下:假设方程的解x *在x 0附近(x 0是方程解x *的近似),函数f (x )在点x 0处的局部线化表达式为
)()()()(000x f x x x f x f '-+≈
由此得一次方程 0)()()(000='-+x f x x x f
求解,得 )
()(0001x f x f x x '-= 如图1所示,x 1比x 0更接近于x *。该方法的几何意义是:用曲线上某点(x 0,y 0)的切线代替曲线,以该切线与x 轴的交点(x 1,0)作为曲线与x 轴的交点(x *,0)的近似(所以牛顿迭代法又称为切线法)。设x n 是方程解x *的近似,迭代格式
)
()(1n n n n x f x f x x '-=+ ( n = 0,1,2,……) 就是著名的牛顿迭代公式,通过迭代计算实现逐次逼近方程的解。牛顿迭代法的最大优点是收敛速度快,具有二阶收敛。以著名的平方根算法为例,说明二阶收敛速度的意义。
例1.已知4.12≈,求2等价于求方程f (x ) = x 2 – 2 = 0的解。由于x x f 2)(='。应用牛顿迭代法,得迭代计算格式
)/2(2
11n n n x x x +=+,(n = 0,1,2,……) 取x 0= 1.4为初值,迭代计算3次的数据列表如下
图1 牛顿迭代法示意图
其中,第三栏15位有效数是利用MA TLAB 的命令sqrt(2)计算结果。观察表中数据,第一次迭代数据准确到小数点后四位,第二次迭代数据准确到小数点后八位,……。二阶收敛速度可解释为,每迭代一次,近似值的有效数位以二倍速度递增。对于计算任意正数C 的平方根,牛顿迭代法计算同样具有快速逼近的性质。
二、牛顿迭代法的收敛性
牛顿迭代法在使用受条件限制,这个限制就是通常所说的牛顿迭代法的局部收敛性。 定理 假设f (x )在x *的某邻域内具有连续的二阶导数,且设f (x *)=0,0)(*
≠'x f ,则对充分靠近x *的初始值x 0,牛顿迭代法产生的序列{x n }收敛于x *。
下面例子是牛顿迭代法不收敛的反例。反例说明,牛顿迭代法局部收敛性要求初始点要取得合适,否则导致错误结果。
例2用牛顿迭代法解方程 f (x ) = x 3 – x – 3 = 0。
分析:利用MA TLAB 求多项式零点命令roots(p),计算得三次方程的三个根如下表
1为了使用牛顿迭代法计算,对于 f (x ) = x 3 – x – 3 ,首先求导数,得13)(-='x x f 。取x 0 = 0和x 0 = 1取分别用牛顿迭代法计算,得
对于迭代初值取x 0=0,0附近,算法将陷入死循环。
图2 牛顿迭代法初值不收敛示意图而迭代初值取x 0=1,可以使牛顿迭代法得到收敛。 三、特殊代数方程的牛顿迭代法收敛区域
将牛顿迭代法用于求解高阶代数方程时,首先回顾一个代数基本定理,即“一个n 阶多项式在复数域内有n 个根”。根据牛顿迭代法的局部收敛性质,任意取一个数据做为牛顿迭代的初值,可能导致迭代不收敛,即使这一个初值可以使迭代法收敛,下一个有趣的问题是
“迭代序列将收敛于哪一个根”,其规律如何?
例3牛顿迭代法的收敛区域问题:Newton 迭代法可以用于求解复数方程 z 3 – 1 = 0,该方程在复平面上三个根分别是
11=z ,i z 23212--=,i z 2
3213+-= 选择中心位于坐标原点,边长为4的正方形内的任意点作初始值,进行迭代,将不收敛的点定义为第一类,给它们标一种颜色;再把收敛到三个根的初值分为三类,并分别标上不同颜色。对充分多的初始点进行实验,绘出牛顿迭代法对该方程的收敛域彩色图。
图3 牛顿迭代法收敛区域色图
问题分析:记f (z ) = z 3 – 1,则2
3)(z z f =',所以牛顿迭代公式为 3/)/1(21n n n n z z z z --=+
由于牛顿迭代法的二阶收敛速度,对于一个取定的初值z 0,如果z 0是一个可以导致迭代收敛的初值,则迭代10次已经达到足够精度,故可以取迭代次数为10。考虑以坐标原点为中心的正方形区域
}22,22|),{(≤≤-≤≤-=y x y x Ω
取步长h =0.02,在区域内取离散网格点
⎩⎨⎧⨯+-=⨯+-=h k y h j x k
j 22,( j ,k =0,1,…,200) 由此可以构造出规则的复数
z jk = x j + i y k ,( j ,k =0,1, (200)
对于这些点,逐一用牛顿迭代法取初值进行迭代实验,判断是否收敛?如果收敛,到底以该点为初值的迭代序列收敛到哪方程的一个根?
为了记录实验结果,构造四个阶数均为201×201矩阵:Z 0、Z 1、Z 2、Z 3,开始时这四个矩阵都设为全零矩阵。如果以z jk 为初值的迭代实验结果是不收敛,则将Z 0的第j 行第k