第2章 非线性方程(组)的数值解法2
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
* 22 2
f ( x* ) 2 f ( x* )
证毕
数值分析——解非线性方程(组)
开 始
牛 顿 迭 代 法 算 法 实 现
输 入 x0,ε,N 1k n
f ( x 0 ) 0 ?
y k+1 k x1 x0
x0
然后,可用上式右端作为 x 的新近似值,记做 x1 这就是一次埃特金加速过程.
数值分析——解非线性方程(组)
埃特金加速算法:
对于更一般的情形 ,首先由 x k 计算
( xk 1 xk )2 xk xk 2 2 xk 1 xk
xk 1 , xk 2 然后作一次加速 .
定理7的 (1) 对于
证明:
f ( x) ,取 ( x) x f ( x) / f ( x)
则牛顿迭代过程为 xk 1 ( xk ) 注意到
( x) f ( x) f ( x) /[ f ( x)]2
.
( x) f ( x) f ( x) f ( x) f ( x) / f ( x) 2
将右端取为 x k 1 ,即x k 1是比x k 更接近于x * 的近似值
x k 1
f ( xk ) xk f ( x k )
(k 0,1,2 )
牛顿迭代法的几何解释
y f ( xk ) f ( xk )( x xk )
(1) (2)
y f ( x0 ) f ( x0 )( x x0 ) y f ( x1 ) f ( x1 )( x x1 )
xk 1
由此得到埃特金加速迭代公式:
xk 1 ( xk ) xk 2 ( xk 1 ) xk 1
可以证明,
( xk 1 xk ) xk , k 0,1, xk 2 2 xk 1 xk
2
xk 1 x* lim 0 k x x* k
例2-12 解
用斯蒂芬森迭代法求方程 f ( x) xe x 1 0 方程的精确解为 x 0.56714392
xk
在 x 0.5 附近的一个根.
.
在例7中,迭代过程 xk 1 e 且
(k 0,1,
)
.
取初值 x0 0.5 ,迭代计算到 x18 0.5671407
xk 1 ( xk ), k 0,1,
(2.19) (2.20)
其中
[ ( x) x]2 ( x) x ( ( x)) 2 ( x) x
对不动点迭代(2.19)有以下局部收敛性定理.
【定理6】
若 x * 为上式定义的迭代函数 ( x)的不动点,则
如果把埃特金加速技巧与不动点迭代结合, 则可得到如下的斯蒂芬森迭代法 yk ( xk ), zk ( yk )
xk 1 ( yk xk )2 xk , k 0,1, zk 2 yk xk
(2.18)
实际上公式(2.18)是将不动点迭代法计算两步合 并成一步得到的,可将它写成另一种不动点迭代
1.32895 1.32480 1.32472
1.49140
1.34710 1.32518
2.31728
1.44435 1.32714
计算表明它是收敛的,这说明即使原不动 点迭代法不收敛,用斯蒂芬森迭代法仍可 能收敛.至于原来已收敛的不动点迭代法, 由定理6可知它可达到2阶收敛.更进一步还 可知若原迭代法为 p 阶收敛,则斯蒂芬森 迭代法为 p 1 阶收敛.
第2章
非线性方程(组) 的数值解法
基础教学部数学教研室 彭 晓 华
2.4 迭代收敛的加速法
2.4.1埃特金加速法
加快收敛速度,减少计算量,是数值计算的重要课题
埃特金加速方法可用于加快一已知收敛序列 {xk } 的收敛速度, 其方法是通过收敛较慢的已知序列 {xk } 构造一个更快收敛
的序列 {xk }
xk 1 ( xk )
因此可以通过考察 ( x) 的性质,来讨论 迭代法的收敛性及收敛速度.
17
定理7
* * 设 x 是方程 f ( x) 0 的单根, 且f(x)在 x
的某邻域内有连续的二阶导数,
* 则牛顿法在 x 附近局部收敛, 且至少二阶收敛, 有
复习:
lim
k
ek 1 ek
21
(2) 将 ( x) 在 x * 处作泰勒展开并代入 x xk
,有
( xk ) ( x*) ( x*)( xk x*)
( x*)
2!
( xk x*) 2
1 ( x*) [ f ( x*) / f ( x*)]( xk x*) 2 . 2 注意到 xk 1 ( xk ), x* ( x* ) ,得到
f ( x) f ( x k ) f ( x k )( x x k )
1 f ( x k )( x x k ) 2 2
忽略高次项,用其线性部分作为函数f(x)的近似,
f ( x) f ( xk ) f ( xk )(x xk ) * 设 f ( x) 0 的根 x ,则有 f ( x * ) 0 ,即 f ( xk ) f ( xk )(x* xk ) 0 f ( xk ) * x xk f ( xk )
x18 x* 0.4 105
利用斯蒂芬森迭代计算,结果见表2-7.由表2-7可知,经 过2次迭代.
x18 0.56714331
加速效果较好.
x2 x* 0.2 107
数值分析——解非线性方程(组)
表2-7 例2-12迭代值
k
0
1 2
xk
0.5
0.56762388 0.56714331
xk 1 x ( f ( x ) / 2 f ( x )) ( xk x )2
因此有
xk 1 x f ( x ) / 2 f ( x ) xk x
2
lim
k
ek 1 ek
2
lim
k
x* xk 1 x xk
p 1 时称为超线性收敛。
3、定理5
* ( p) 设迭代过程 xk 1 ( xk ) , 若 ( x) 在所求根 x 的邻域连续且
( x* ) ( x* ) ( p1) ( x* ) 0, ( p) ( x* ) 0
* 则迭代过程在 x 邻域是 p 阶收敛的。
其中
介于 x0 与 x 之间.
由于在较小的有根区间内, ( x) 的变化不大,取 ( x) L 则有
x1 x L( x0 x )
第二次校正: 由于
对 x1 值再校正一次 x2 ( x1 )
x2 x L( x1 x )
.
x x x1 x 0 x2 x x1 x
2.5.1 牛顿迭代法
不动点迭代一般理论告诉我们,构造 好的迭代函数可使收敛速度提高.然而迭 代函数的构造方法又各不相同、方法多 样.能否找到一种迭代方法,既结构简单, 收敛速度快,又不存在发散的问题?牛顿 迭代法就是这样一种方法。
牛顿迭代法的原理:
方程 f ( x) 0 的根 x * ,几何意义是曲线 y f ( x) 与 x 轴的交点.求曲线与 x 轴的交点没有普遍的公式, 但直线与 x 轴的交点容易计算。 基本方法:用函数 y f ( x) 的切线近似曲线
2
lim
k
x* xk 1 x xk
* 2
f ( x* ) 2 f ( x* )
1、局部收敛:若在
x
的某个邻域
R: xx
内的每一点,迭代均收敛,称这种形式的收敛为局部收敛. 【定理4】 (局部收敛性)设 ( x) 在
x
的邻近连续,
且 ( x ) 1 则迭代过程 xk 1 ( xk )
yk
0.60653066
0.56687079
zk
0.54523921
0.56729786
运行结果表明迭代成功,达到精度要求.迭代终止条 件为:前后两次迭代结果之差是否满足精度,共迭代计 算3次;对比例2-8,利用不动点迭代计算了18次;显然 Steffensen方法收敛更快.
思考:在埃特金加速或斯蒂芬森加速法的基础上 是否能找到更好的收敛速度加速法?
y f ( x) ,从而用切线方程的根逐步代替 f ( x) 0
的根。 基本思想是:将非线性函数f(x)逐步线性化, 从而将非线性方程f(x)=0近似地转化为线性方程 求解。即把非线性方程逐步线性化.
线性化方法:
对于方程 f ( x) 0 ,设其近似根为 x k ,函数 f ( x) 可在 x k 附近作泰勒展开
将其与 上面的式子联立,消去 L 得
数值分析——解非线性方程(组)
解出 x ,得到
2 2 x x x ( x x ) 1 0 x 0 2 1 x0 x2 2 x1 x0 x2 2 x1 x0
一次埃特金加速:
对于初始近似值 x0 ,首先计算
x1 ( x0 ) 再计算 x2 ( x1 ) .
设 {xk }是一个线性收敛的序列,收敛于方程 x ( x) 的根 x . 第一次校正: 设 x0 是根 x 的某个预测值,
迭代公式可使 x0 校正为 x1 ( x0 ) 由微分中值定理,有
x1 x ( x0 ) ( x ) ( )( x0 x )
在
x
邻近具有局部收敛性.
2、迭代法的收敛速度
定义 (收敛阶):设迭代过程 xk 1 ( xk ) 收敛于 x ( x)的 根 x * ,记迭代误差 ek x* xk 若存在常数p(p≥1)和c(c>0),使
lim e k 1 ek
p k
c
则称序列 x k 是p 阶收敛的,c 称渐近误差常数。 特别地, p 1 时称为线性收敛, p 2 时称为平方收敛。
2 f ( x) f ( x) 2 / f ( x)3
由于 x * 是 f ( x) 0 的单根,即
f ( x ) 0,
所以有
f ( x ) 0
( x ) 0,( x ) f ( x ) / f ( x ) 0
由定理4知,迭代过程是局部收敛的.且由定理5知, 迭代过程在点 x * 邻近是2阶收敛的.
3 例2-7中已指出迭代 xk 1 xk 1 是发散的.
现在利用斯蒂芬森迭代计算,仍取 果见表2-6.
( x) x3 1 计算结
表2-6
例2-11迭代值
k
0 1
xk
1.5 1.41629
yk
2.37500 1.84092
zk
12.3966 5.23888
2
3 4 5
1.35565
则 x * 为 ( x) 的不动点.反之,若 x * 为 ( x) 的不动点,设 ( x )
( x* ) 1 则 x * 是 ( x) 的不动点,且该斯蒂芬森迭 存在, 代法是2阶收敛的.
例2-11 解
3 用斯蒂芬森迭代法求解方程 f (x) x x 1 0
它表明序列 {xk }的收敛速度比 {xk }的收敛速度快.,
【注】 当迭代过程收敛很慢时,一般可 用埃特金法加速,但有时埃特金法加速可 ( x ) x0 能失败,例如当 起伏很大、初值 x 与根 有较大的距离时,埃特金加速就 可能失败.
2.4.2 斯蒂芬森迭代法(Steffensen's Method):
y
xk 1
f ( xk ) xk f ( xk )
f ( x0 ) x1 x0 f ( x0 )
x*
x2
ቤተ መጻሕፍቲ ባይዱ
x
x1 x0
牛顿法也称为切线法
f ( x1 ) x2 x1 f ( x1 )
牛顿迭代法的收敛性:
如果取 ( x) x f ( x) / f ( x) ,则有 x ( x), 从而牛顿迭代就是不动点迭代
f ( x* ) 2 f ( x* )
证毕
数值分析——解非线性方程(组)
开 始
牛 顿 迭 代 法 算 法 实 现
输 入 x0,ε,N 1k n
f ( x 0 ) 0 ?
y k+1 k x1 x0
x0
然后,可用上式右端作为 x 的新近似值,记做 x1 这就是一次埃特金加速过程.
数值分析——解非线性方程(组)
埃特金加速算法:
对于更一般的情形 ,首先由 x k 计算
( xk 1 xk )2 xk xk 2 2 xk 1 xk
xk 1 , xk 2 然后作一次加速 .
定理7的 (1) 对于
证明:
f ( x) ,取 ( x) x f ( x) / f ( x)
则牛顿迭代过程为 xk 1 ( xk ) 注意到
( x) f ( x) f ( x) /[ f ( x)]2
.
( x) f ( x) f ( x) f ( x) f ( x) / f ( x) 2
将右端取为 x k 1 ,即x k 1是比x k 更接近于x * 的近似值
x k 1
f ( xk ) xk f ( x k )
(k 0,1,2 )
牛顿迭代法的几何解释
y f ( xk ) f ( xk )( x xk )
(1) (2)
y f ( x0 ) f ( x0 )( x x0 ) y f ( x1 ) f ( x1 )( x x1 )
xk 1
由此得到埃特金加速迭代公式:
xk 1 ( xk ) xk 2 ( xk 1 ) xk 1
可以证明,
( xk 1 xk ) xk , k 0,1, xk 2 2 xk 1 xk
2
xk 1 x* lim 0 k x x* k
例2-12 解
用斯蒂芬森迭代法求方程 f ( x) xe x 1 0 方程的精确解为 x 0.56714392
xk
在 x 0.5 附近的一个根.
.
在例7中,迭代过程 xk 1 e 且
(k 0,1,
)
.
取初值 x0 0.5 ,迭代计算到 x18 0.5671407
xk 1 ( xk ), k 0,1,
(2.19) (2.20)
其中
[ ( x) x]2 ( x) x ( ( x)) 2 ( x) x
对不动点迭代(2.19)有以下局部收敛性定理.
【定理6】
若 x * 为上式定义的迭代函数 ( x)的不动点,则
如果把埃特金加速技巧与不动点迭代结合, 则可得到如下的斯蒂芬森迭代法 yk ( xk ), zk ( yk )
xk 1 ( yk xk )2 xk , k 0,1, zk 2 yk xk
(2.18)
实际上公式(2.18)是将不动点迭代法计算两步合 并成一步得到的,可将它写成另一种不动点迭代
1.32895 1.32480 1.32472
1.49140
1.34710 1.32518
2.31728
1.44435 1.32714
计算表明它是收敛的,这说明即使原不动 点迭代法不收敛,用斯蒂芬森迭代法仍可 能收敛.至于原来已收敛的不动点迭代法, 由定理6可知它可达到2阶收敛.更进一步还 可知若原迭代法为 p 阶收敛,则斯蒂芬森 迭代法为 p 1 阶收敛.
第2章
非线性方程(组) 的数值解法
基础教学部数学教研室 彭 晓 华
2.4 迭代收敛的加速法
2.4.1埃特金加速法
加快收敛速度,减少计算量,是数值计算的重要课题
埃特金加速方法可用于加快一已知收敛序列 {xk } 的收敛速度, 其方法是通过收敛较慢的已知序列 {xk } 构造一个更快收敛
的序列 {xk }
xk 1 ( xk )
因此可以通过考察 ( x) 的性质,来讨论 迭代法的收敛性及收敛速度.
17
定理7
* * 设 x 是方程 f ( x) 0 的单根, 且f(x)在 x
的某邻域内有连续的二阶导数,
* 则牛顿法在 x 附近局部收敛, 且至少二阶收敛, 有
复习:
lim
k
ek 1 ek
21
(2) 将 ( x) 在 x * 处作泰勒展开并代入 x xk
,有
( xk ) ( x*) ( x*)( xk x*)
( x*)
2!
( xk x*) 2
1 ( x*) [ f ( x*) / f ( x*)]( xk x*) 2 . 2 注意到 xk 1 ( xk ), x* ( x* ) ,得到
f ( x) f ( x k ) f ( x k )( x x k )
1 f ( x k )( x x k ) 2 2
忽略高次项,用其线性部分作为函数f(x)的近似,
f ( x) f ( xk ) f ( xk )(x xk ) * 设 f ( x) 0 的根 x ,则有 f ( x * ) 0 ,即 f ( xk ) f ( xk )(x* xk ) 0 f ( xk ) * x xk f ( xk )
x18 x* 0.4 105
利用斯蒂芬森迭代计算,结果见表2-7.由表2-7可知,经 过2次迭代.
x18 0.56714331
加速效果较好.
x2 x* 0.2 107
数值分析——解非线性方程(组)
表2-7 例2-12迭代值
k
0
1 2
xk
0.5
0.56762388 0.56714331
xk 1 x ( f ( x ) / 2 f ( x )) ( xk x )2
因此有
xk 1 x f ( x ) / 2 f ( x ) xk x
2
lim
k
ek 1 ek
2
lim
k
x* xk 1 x xk
p 1 时称为超线性收敛。
3、定理5
* ( p) 设迭代过程 xk 1 ( xk ) , 若 ( x) 在所求根 x 的邻域连续且
( x* ) ( x* ) ( p1) ( x* ) 0, ( p) ( x* ) 0
* 则迭代过程在 x 邻域是 p 阶收敛的。
其中
介于 x0 与 x 之间.
由于在较小的有根区间内, ( x) 的变化不大,取 ( x) L 则有
x1 x L( x0 x )
第二次校正: 由于
对 x1 值再校正一次 x2 ( x1 )
x2 x L( x1 x )
.
x x x1 x 0 x2 x x1 x
2.5.1 牛顿迭代法
不动点迭代一般理论告诉我们,构造 好的迭代函数可使收敛速度提高.然而迭 代函数的构造方法又各不相同、方法多 样.能否找到一种迭代方法,既结构简单, 收敛速度快,又不存在发散的问题?牛顿 迭代法就是这样一种方法。
牛顿迭代法的原理:
方程 f ( x) 0 的根 x * ,几何意义是曲线 y f ( x) 与 x 轴的交点.求曲线与 x 轴的交点没有普遍的公式, 但直线与 x 轴的交点容易计算。 基本方法:用函数 y f ( x) 的切线近似曲线
2
lim
k
x* xk 1 x xk
* 2
f ( x* ) 2 f ( x* )
1、局部收敛:若在
x
的某个邻域
R: xx
内的每一点,迭代均收敛,称这种形式的收敛为局部收敛. 【定理4】 (局部收敛性)设 ( x) 在
x
的邻近连续,
且 ( x ) 1 则迭代过程 xk 1 ( xk )
yk
0.60653066
0.56687079
zk
0.54523921
0.56729786
运行结果表明迭代成功,达到精度要求.迭代终止条 件为:前后两次迭代结果之差是否满足精度,共迭代计 算3次;对比例2-8,利用不动点迭代计算了18次;显然 Steffensen方法收敛更快.
思考:在埃特金加速或斯蒂芬森加速法的基础上 是否能找到更好的收敛速度加速法?
y f ( x) ,从而用切线方程的根逐步代替 f ( x) 0
的根。 基本思想是:将非线性函数f(x)逐步线性化, 从而将非线性方程f(x)=0近似地转化为线性方程 求解。即把非线性方程逐步线性化.
线性化方法:
对于方程 f ( x) 0 ,设其近似根为 x k ,函数 f ( x) 可在 x k 附近作泰勒展开
将其与 上面的式子联立,消去 L 得
数值分析——解非线性方程(组)
解出 x ,得到
2 2 x x x ( x x ) 1 0 x 0 2 1 x0 x2 2 x1 x0 x2 2 x1 x0
一次埃特金加速:
对于初始近似值 x0 ,首先计算
x1 ( x0 ) 再计算 x2 ( x1 ) .
设 {xk }是一个线性收敛的序列,收敛于方程 x ( x) 的根 x . 第一次校正: 设 x0 是根 x 的某个预测值,
迭代公式可使 x0 校正为 x1 ( x0 ) 由微分中值定理,有
x1 x ( x0 ) ( x ) ( )( x0 x )
在
x
邻近具有局部收敛性.
2、迭代法的收敛速度
定义 (收敛阶):设迭代过程 xk 1 ( xk ) 收敛于 x ( x)的 根 x * ,记迭代误差 ek x* xk 若存在常数p(p≥1)和c(c>0),使
lim e k 1 ek
p k
c
则称序列 x k 是p 阶收敛的,c 称渐近误差常数。 特别地, p 1 时称为线性收敛, p 2 时称为平方收敛。
2 f ( x) f ( x) 2 / f ( x)3
由于 x * 是 f ( x) 0 的单根,即
f ( x ) 0,
所以有
f ( x ) 0
( x ) 0,( x ) f ( x ) / f ( x ) 0
由定理4知,迭代过程是局部收敛的.且由定理5知, 迭代过程在点 x * 邻近是2阶收敛的.
3 例2-7中已指出迭代 xk 1 xk 1 是发散的.
现在利用斯蒂芬森迭代计算,仍取 果见表2-6.
( x) x3 1 计算结
表2-6
例2-11迭代值
k
0 1
xk
1.5 1.41629
yk
2.37500 1.84092
zk
12.3966 5.23888
2
3 4 5
1.35565
则 x * 为 ( x) 的不动点.反之,若 x * 为 ( x) 的不动点,设 ( x )
( x* ) 1 则 x * 是 ( x) 的不动点,且该斯蒂芬森迭 存在, 代法是2阶收敛的.
例2-11 解
3 用斯蒂芬森迭代法求解方程 f (x) x x 1 0
它表明序列 {xk }的收敛速度比 {xk }的收敛速度快.,
【注】 当迭代过程收敛很慢时,一般可 用埃特金法加速,但有时埃特金法加速可 ( x ) x0 能失败,例如当 起伏很大、初值 x 与根 有较大的距离时,埃特金加速就 可能失败.
2.4.2 斯蒂芬森迭代法(Steffensen's Method):
y
xk 1
f ( xk ) xk f ( xk )
f ( x0 ) x1 x0 f ( x0 )
x*
x2
ቤተ መጻሕፍቲ ባይዱ
x
x1 x0
牛顿法也称为切线法
f ( x1 ) x2 x1 f ( x1 )
牛顿迭代法的收敛性:
如果取 ( x) x f ( x) / f ( x) ,则有 x ( x), 从而牛顿迭代就是不动点迭代