数值分析3.2.迭代加速、牛顿法及弦截法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

导数连续,则埃特金法为 2p–1 阶收敛.
3.3.2 斯蒂芬森(Steffensen)迭代法
埃特金方法不管原序列{xk}是怎样产生的,对{xk} 进行加速计算,得到序列{ ̄xk }. 如果把埃特金加速技 巧与不定点迭代结合,则可得到如下的迭代法:
yk ( xk ), zk ( yk ),
xk1
f ( xk ) f ( xk1 ) 取代的结果. xk xk1
(5.2)式有明显的几何意义:
设曲线y=f(x)上横坐标为xk-1和xk的点分别为Pk-1
和Pk, 则差商
f ( xk ) xk
f ( xk1 ) xk 1
表示弦
Pk1Pk 的斜率,
弦 Pk1Pk的方程为
y
f (xk )
f
(
xk ) xk
2
C C
.
据此反复递推有
xk xk
C C
x0 x0
2k
C C
.
(4.6)

q x0 C x0 C
整理(4.6)式,得
q2k xk C 2 C 1 q2k .
对任意初值x0>0,总有|q|<1,故由上式推知,当 k→∞时xk C ,即迭代过程恒收敛.
3.4.2 重根情形
当x*为 f(x)的 m(m>0)重根时,则 f(x) 可表为
(x)
x
(x) ( x)
x
[
f
f (x) ( x)]2
f f
( x) (x) f
( x)
.
从而构造出迭代方法为
xk1
xk
[
f
f (xk ( xk )]2
) f ( xk f (xk )
) f
( xk
)
(k 0,1,).
(4.14)
例3 用牛顿迭代法求函数 f(x)=(x-1)[sin(x-1)+3x]-x3+1=0 在0.95附近之根.
设 x0 是根 x*的某个近似值, 用迭代公式校正一次得
x1=(x0)
而由微分中值定理,有
x1 x ( x0 ) ( x ) ( )( x0 x ), 在x与x0之间.
假设 (x) 改变不大, 近似地取某个近似值 L, 则有
x1 x L( x0 x ).
(3.1)
若将校正值 x1=(x0) 再校正一次,又得
f (x)
x2 C,
(x)
x
f (x) f ( x)
1 x C . 2 x
xk1
1 2
xk
C xk
.
(4.5)
我们现在证明,这种迭代公式对于任意初值x0>0 都是收敛的.
事实上,对(4.5)式进行配方整理,易知
xk1
1 C
2xk
xk
2
C.
以上两式相除得
xk1 xk1
C C
xk xk
x2=(x1)
由于
x2-x*≈L(x1-x*).
将它与(3.1)式联立,消去未知的L,有
由此推知
x1 x x2 x
x0 x x1 x
x
x0 x2 x12 x2 2x1 x0
x0
( x1 x0 )2 x2 2x1 x0
.
在计算了 x1 及 x2 之后,可用上式右端作为 x* 的新近
似,记作 ̄x1,一般情形是由xk计算 xk+1, xk+2,记
xk1
xk
( xk1 xk )2 xk2 2xk1 xk
xk
(xk )2 2 xk
(k 0,1,).
(3.1)式称为埃特金(Aitken) △2加速方法.
(3.2)
可以证明
lim
k
xk1 x xk x
0.
它表明序列{̄xk}的收敛速度比{xk}的收敛速度快.
注:埃特金(Aitken)加速迭代法也可写成下面格式
x(1) k 1
( xk )
x(2) k 1
(
x(1) k 1
)
源自文库
xk1
x(2) k 1
(
x(2) k 1
x(1) k 1
)2
x(2) k 1
2
x(1) k 1
xk
也称为埃特金 ( Aitken ) 外推法. 可以证明:
若 xk1 ( xk ) 为线性收敛,则埃特金法为平方收敛; 若 xk1 ( xk ) 为 p ( p > 1)阶收敛, ( x) 的 p 阶
牛顿法的几何意义:设xk是根x*的某个近似值, 过曲线y=f(x)上横坐标为xk的点Pk引切线,并将该切 线与x轴交点的横坐标xk+1作为x*的新的近似值. 注意 到切线方程为
y f ( xk ) f ( xk )( x xk ).
y
Pk
这样求得的值xk+1必满足
Pk+1
(4.1), 从而就是牛顿公式
p1( x)
f (xk )
f
( xk ) xk
f ( xk1 ) xk 1
(
x
xk
).
因此有
xk1
xk
f
( xk
f (xk ) ) f ( xk1 )
( xk
xk1 ).
(5.1) (5.2)
这样导出的迭代公式(5.2)可以看做牛顿公式
xk1
xk
f (xk ) . f ( xk )
中的导数 f ( xk )用差商
初值 x0U,牛顿法产生的序列 {xk} 收敛到 x*,且满 足
lim
k
|
xk1 x (xk x)2
||
f (x) 2 f (x)
|
.
由此得到,当x*为单根时,牛顿迭代法在根x*的 邻近是二阶(平方)收敛的.
例1 用牛顿迭代法求方程x=e–x在x=0.5附近的根.
解 将原方程化为 x–e–x= 0,则
3.4 牛 顿 法
3.4.1 牛顿法及其收敛性
牛顿法实质上是一种线性化方法,其基本思想是 将非线性方程 f(x)=0 逐步归结为某种线性方程来求 解.
设已知方程f(x)=0有近似根x0,且在 x0附近f(x)可 用一阶泰勒多项式近似,表示为
f ( x) f ( x0 ) f ( x0 )( x x0 )
比较困难,为此可以利用已求函数值 f(xk),f(xk-1),来
回避导数值 f(xk)的计算. 这类方法是建立在插值原理
基础上的,下面介绍弦截法与抛物线法.
3.5.1 弦截(割线)法
设 xk, xk-1是 f(x)=0的近似根,我们利用 f(xk), f(xk-1) 构造一次插值多项式 p1(x),并用 p1(x)=0 的根作为方程 f(x)=0 的新的近似根 xk+1,由于
如果把(5.2)式中的xk-1改为x0,即迭代公式为
xk1
xk
f
(
f (x0 ) xk ) f (
x0
)
(
xk
x0 ).
每步只用一个新点xk的值,此方法称为单点割线法.
例4 用牛顿迭代法和割线法求方程 f(x)=x4+2x2–x–3=0,
在区间(1, 1.5)内之根(误差为10-9).
定理6 假设f(x)在根x*的邻域内△: |x-x*|≤δ具有 二阶连续导数,且对任意x△有f(x)≠0,所取的初
值x0, x1△,那么当邻域△充分小时,弦截法(5.2)将 按阶
p 1 5 1.618. 2
收敛到x*. 这里p是方程λ2-λ-1=0的正根. 定理证明可见P116.
因为(5.2)式用到前两点xk-1和xk的值,故此方法又 称为双点割线法.
f(x)=x–e–x, f(x)=1+e–x,
牛顿迭代公式为
xk 1
xk
xk exk 1 exk
取 x0=0.5,迭代得
x1=0.566311, x2=0.5671431, x3=0.5671433.
例2 对于给定的正数 C,应用牛顿法解二次方程
x2 C 0, 推导出求开方值 C 的计算公式.
xk1
x*
ek
ek g(xk ) mg( xk ) ek g( xk
)
从而有
lim
k
ek1 ek
lim
k
1
g(xk ) mg( xk ) ek g( xk
)
1
1 m
0.
可见用牛顿法求方程的重根时仅为线性收敛.
两种提高求重根的收敛速度的方法:
1) 取如下迭代函数
( x) x m f ( x) , 则 ( x ) 0.
xk
( yk xk )2 zk 2 yk xk
(k 0,1,).
称为斯蒂芬森(Steffensen)迭代法.
(3.3)
实际上(3.3)是将不定点迭代法(2.2)计算两步合并
成一步得到的,可将它写成另一种不动点迭代
其中
xk1 ( xk ) (k 0,1,),
(x) x
[( x) x]2
由重根数m=2, 用(4.13)式加速法,作
求得
xk1
xk
m
f ( xk ) f ( xk )
x0=0.95, x1=0.9988559,
x2=x3=1.
收敛速度大大加快于直接用牛顿迭代公式.
3.5 弦截法与抛物线法
用牛顿法求方程 f(x)=0的根,每步除计算 f(xk)外
还要算 f(xk),当函数 f(x) 比较复杂时,计算 f(x)往往
f(x)=(x-x*)mg(x).
其中 g(x*)≠0,此时用牛顿迭代法(4.2)求 x* 仍然收敛,
只是 收敛速度将大大减慢. 事实上,因为迭代公式
xk1
xk
f (xk ) f ( xk )
xk
mg
(
(xk xk ) (
x* xk
)g( xk x*)
) g(
xk
)
令ek=xk–x*,则
ek1
x*
x
(4.2)的计算结果.
y=f(x)
xk+2xk+1 xk
牛顿迭代法的收敛性
牛顿迭代法的迭代函数为
(x) x f (x)
f ( x)
设x*是 f(x) 的一个单根,即 f(x*)=0,f(x*)≠0, 有
( x )
f ( x ) f ( x ) [ f ( x* )]2 0,
( x )
.
(( x)) 2( x) x
(3.4) (3.5)
对不动点迭代(3.5)有以下局部收敛性定理.
定理5 若x*为(3.5)定义的迭代函数Ψ(x)的不动点,
则x*为(x)的不定点. 反之,若x*为(x)的不动点,设
(x)在 x* 连续 ,(x*)≠1,则x*是Ψ(x)的不动点,且
斯蒂芬森迭代法(3.3)是2阶收敛的.
f( x0
x0
)
(
x
xk
)
因此,按(5.2)式求得 xk+1实际上是两点弦 线 Pk1与Pkx轴交点的 横坐标(令y=0解出x 即可).这种算法因此 而形象地称为弦截 (割线)法.
y
Pk O x* xk+1 xk
Pk-1 xk-1 x
注:弦截法与切线法(牛顿法)都是线性化分法,但两 者有本质的区别. 切线法在计算 xk+1 时只用到前一步 的值 xk,而弦截法要用到前面两步的结果 xk-1, xk,因 此使用这种方法必须先给出两个开始值 x0, x1.
f ( x ) f ( x ) 0.
由定理4可得
lim |
k
xk1 x (xk x)2
|
lim |
k
1 2!
(
)(
xk
x)2
(xk x)2
|
1 | (x) ||
2!
f (x) 2 f (x)
|
0.
定理(局部收敛性) 设fC2[a, b], 若x*为 f(x)在[a,
b]上的根,且 f(x*)0,则存在 x* 的邻域 U, 使得任取
f (x)
得到迭代公式
xk1
xk
m
f (xk ) f ( xk )
(k 0,1,).
(4.13)
求m重根具有2阶收敛. 但要知道x*的重数m.
下面介绍一个求重数m的方法,令

由式 得
k
xk xk1 xk1 xk2
1 ek1
k
ek ek1 ek1 ek2
ek ek 1
1
ek ek2
lim ek1 1 1
当 f(x0)≠0 时,方程 f(x)=0 可用线性方程(切线) 近似
代替,即
f(x0)+f(x0)(x-x0)=0.
(4.1)
解此线性方程得 得迭代公式
x
x0
f ( x0 ) f ( x0 )
xk1
xk
f (xk ) f ( xk )
(k 0,1,),
此式称为牛顿(Newton)迭代公式.
(4.2)
ek 1
e k k
lim
k
k
1
1 m
m
m1. m
因此得估计m的式子为 m 1 .
1 k
2) 将求重根问题化为求单根问题.
对f(x)=(x-x*)mg(x), g(x*)≠0,令函数
(x)
f (x) f ( x)
(x x)g(x) mg( x) ( x x )g( x) .
则为求μ(x)=0的单根x*的问题,对它用牛顿法是二阶 (平方)收敛的. 其迭代函数为
第3章 非线性方程的数值解法
• 3.1 方程求根与二分法 • 3.2 迭代法及其收敛性 • 3.3 迭代收敛的加速方法 • 3.4 牛顿法 • 3.5 弦截法与抛物线法
3.3 迭代收敛的加速方法
3.3.1 埃特金加速收敛方法
对于收敛的迭代过程,只要迭代足够多次,就可 以使结果达到任意的精度,但是有时迭代过程收敛较 慢,从而使计算量变得很大.
解 取x0 = 0.95 用牛顿迭代法求 得的xk见右表. 可 见xk收敛很慢.
k
xk
k
0 0.95
1 0.9744279
2 0.9870583
3 0.9934878 0.5090
4 0.9967328 0.5047
5 0.9983576 0.5007
6 0.9991901 0.5125
m
2.0369 2.0190 2.0028 2.0511
相关文档
最新文档