发布时间 : 星期二 文章数值分析第七章非线性方程求根习题答案更新完毕开始阅读
第七章非线性方程求根
(一)问题简介 求单变量函数方程
f(x)?0 (7.1)
的根是指求x*(实数或复数),使得f(x*)?0.称x*为方程(7.1)的根,也称x*为函数f(x)?的零点.若f(x)可以分解为 f(x)?(xx*)g( xm其中m为正整数,g(x)满足g(x)?0,则x*是方程(7.1)的根.当m=1时,称x*为单根;当m>1时,称x*为m重根.若g(x)充分光滑,x*是方程(7.1)的m重根,则有 f(x*)?f'(x*)?...?f(m?1)(x*)?0,f(m)(x*)?0
若f(x)在[a,b]上连续且f(a)f(b)?0,则方程(7.1)在(a,b)内至少有一个实根,称[a,b]为方程(7.1)的有根区间.有根区间可通过函数作图法或逐次搜索法求得. (二)方程求根的几种常用方法 1.二分法
设f(x)在[a,b]上连续,f(a)f(b)?0,则f(x)?0在(a,b)内有根x*.再设f(x)?0在(a,b)内
x0?12(a0?b0)仅有一个根.令算;若
a0?a,b0?b,计算和
f(x0).若
f(x0)?0则x*?x,结束计
,则令
f(a0)f(x0)?0,则令
a1?x0,b1?b,得新的有根区间
[a1,b1];若
f(a0)f(x0)?012a1?a0,b1?x0,得新的有根区间
[a1,b1].
[a0,b0]?[a1,b1],
b1?a1?(b0?a0).再令
x1?12(a1?b)1计算
f(x1),同上法得出新的有根区间
[a2,b2],如此反复进行,可得一有根区
间套
...?[an,bn]?[an?1,bn?1]?...?[a0,b0]12
12n且
an?x*?bn,n?0,1,2,...,bn?an?(bn?1?a?1)?...?(b0?a0).
故
lim(bn?an)?0,limxn?limn??n??12n??(an?bn)?x*
因此,
xn?12(an?bn)可作为f(x)?0的近似根,且有误差估计
12n?1 2.迭代法
|xn?x*|?(b?a) (7.2)
将方程式(7.1)等价变形为 x??(x) (7.3)
若要求x*满足f(x*)?0则x*??(x*);反之亦然.称x*为函数?(x)的一个不动点.求方程(7.1)的根等价于求?(x)的不动点由式(7.3)产生的不动点迭代关系式(也称简单迭代法)为
xk?1??(xk)k,?0,1,2... (7.4)
xk?1??(xk),k?0,1,2...函数?(x)称为迭代函数.如果对任意极限
limxk?x*k??,由式(7.4)产生的序列
?xk?有
则称不动点迭代法(7.4)收敛.
定理7.1(不动点存在性定理)设?(x)?C[a,b]满足以下两个条件: 1.对任意x?[a,b]有a??(x)?b;
2.存在正常数L?1,使对任意x,y?[a,b],都有|?(x)??(y)|?|x?y| (7.5) 则?(x)在[a,b]上存在惟一的不动点x*.
定理7.2(不动点迭代法的全局收敛性定理)设?(x)?C[a,b]满足定理7.1中的两个条件,则对任意
x0?[a,b],由(7.4)式得到的迭代序列
|xk?x*|?L?xk?收敛.到?(x)的不动点,并有误差估计式
|xk?xk?1|
1?LLk (7.6)
和
|xk?x*|?1?L|xk?xk?1| (7.7)
定理7.3(不动点迭代法的局部收敛性定理)设x*为?(x)的不动点,?'(x)在x*的某个邻域连续,且|?'(x)|?1,则迭代法(7.4)局部收敛.
收敛阶的概念 设迭代过程(7.4)收敛于方程x??(x)的根x*,如果迭代误差
ek?xk?x*当k??时成产下列渐近关系式
ek?1?C(常数C?0)
ek (7.8)
则称该迭代过程是p阶收敛的.特别地,p=1时称线性收敛,p>1时称超线性收敛,p=2时称平方收敛.
定理7.4(收敛阶定理)对于迭代过程(7.4),如果??'(x*)??''(x*)?...???(p)(p?1)(K)(x)在所求根x*的邻近连续,并且
(x*)?0(x*)?0 (7.9)
则该迭代过程在点x*的邻近是收敛的,并有
limek?1epk
k???1p!?(p)(x*) (7.10)
斯蒂芬森(Steffensen)迭代法 当不动点迭代法(7.4)只有线性收敛阶,甚至于不收敛时,可用斯蒂芬森迭代法进行加速.具体公式为
yk??(xk),zk??(yk)xk?1?xk?(yk?xk)2zk?2yk?xkk?0,1,2,... (7.11)
此法也可写成如下不动点迭代式
xk?1??(xk),k?0,1,2,...?(x)?x?(?(x)?x)2?(?(x))?2?(x)?x (7.12)
?(x)定理7.5(斯蒂芬森迭代收敛定理) 设x*为式(7.12)中的不动点,则x*是?(x)的不动点;?(x)设?''(x)存在,?'(x*)?1,则x*是的不动点,则斯蒂芬森迭代法(7.11)是2阶收敛的.
3.牛顿迭代法
牛顿迭代法是一种特殊的不动点迭代法,其计算公式为
xk?1?xk?f(xk)f'(xk),k?0,1,2,... 其迭代函数为
?(x)?x?f(x)f'(x) (7.13)
牛顿迭代法的收敛速度 当f(x*)?0,f'(x*)?0,f''(x*)?0时,容易证
明,f'(x*)?0,
?''(x*)?f''(x*)f'(x*)?0,由定理7.4知,牛顿迭代法是平方收敛的,且
f''(x*)limek?1ek2
k???2f'(x*) (7.14)
?(x)?x?f(x)f'(x)重根情形的牛顿迭代法 当x*是f(x)?0的m重根(m?2)时,迭代函数
?'(x*)?1?1m?0在x*处的导数
,且|?'(x*)|?1.所以牛顿迭代法求重根只是线性收敛.若
x*的重数m知道,则迭代式
xk?1??xk?mf(xk)f'(xk),k?0,1,2,... (7.15)
?(x)?f(x)f'(x)的单重零点,此时迭代式
求重根二阶收敛.当m未知时,x*一定是函数
xk?1?xk??(xk)?'(xk)?xk?f(xk)f'(xk)[f'(xk)]?f(xk)f''(xk) k?0,1,2,...也是二阶收敛的.
xk?1?xk?f(xk)f'(x0),k?0,1,2,... (7.16)
简化牛顿法 如下迭代法
称为简化牛顿法或平行弦法.
牛顿下山法 为防止迭代不收敛,可采用牛顿下山法.具体方法见教材. 4.弦截法
将牛顿迭代法(7.13)中的
xk?1?xk?f'(xk)xx用f(x)在k?1,k处的一阶差商来代替,即可得弦截法
(xk?xk?1)f(xk)f(xk)?f(xk?1) 定理7.6假设
f(x) (7.17)
在其零点x*的邻域?:|x?x*|??内具有二阶连续导数,且对任意x??x0,x1??有f'(x)?0,又初值
p?1?25?1.618,,则当邻域?充分小时,弦截法(7.17)将按阶
收敛到x*.这里p是方程????1?0的正根.
25.抛物线法