第三章 非线性方程求根 /* solutions of nonlinear equations *
DESCRIPTION
求 f ( x ) = 0 的根. 第三章 非线性方程求根 /* Solutions of Nonlinear Equations */. §1 多项式基础 /* Polynomials */ (自习). §2 二分法 /* Bisection Method */. 原理: 若 f C[ a , b ] ,且 f ( a ) · f ( b ) < 0 ,则 f 在 ( a , b ) 上必有一根。. 或. a. b. x*. x. When to stop?. x 1. x*. a. x 2. b. - PowerPoint PPT PresentationTRANSCRIPT
第三章 非线性方程求根 /* Solutions of Nonlinear Equations */
§1 多项式基础 /* Polynomials */ (自习)
§2 二分法 /* Bisection Method */
求 f (x) = 0 的根
原理:若 f C[a, b] ,且 f (a) · f (b) < 0 ,则 f 在 (a, b) 上必有一根。
ab
x1
x2
ab
When to stop?
11 εxx kk 2)( εxf 或
不能保证 x 的精度
x*
2
xx*
误差 分析:第 1 步产生的
21
bax
有误差 21
abx*||x
第 k 步产生的 xk 有误差
kk
abx*||x
2
对于给定的精度 , 可估计二分法所需的步数 k :
2ln
lnln
2
εabkε
abk
①简单 ; ② 对 f (x) 要求不高 ( 只要连续即可 ) .
①无法求复根及偶重根 ② 收敛慢
注:注:用二分法求根,最好先给出 f (x) 草图以确定根的大概位置。或用搜索程序,将 [a, b] 分为若干小区间,对每一个满足 f (ak)·f (bk) < 0 的区间调用二分法程序,可找出区间 [a, b] 内的多个根,且不必要求 f (a)·f (b) < 0 。
注:注:用二分法求根,最好先给出 f (x) 草图以确定根的大概位置。或用搜索程序,将 [a, b] 分为若干小区间,对每一个满足 f (ak)·f (bk) < 0 的区间调用二分法程序,可找出区间 [a, b] 内的多个根,且不必要求 f (a)·f (b) < 0 。
试位法 /* Regula Falsi Method */
ab
(a+b)/2
x*
(a, f (a))
(b, f (b))
abafbf
afax
)()(
)(
Is it really better than Bisection Method?
注:注:试位法每次迭代比二分法多算一次乘法,而且不保证收敛。
注:注:试位法每次迭代比二分法多算一次乘法,而且不保证收敛。
§3 迭代法 /* Fixed-Point Iteration */
f (x) = 0 x = g (x)等价变换
f (x) 的根
g (x) 的不动点
思路
从一个初值 x0 出发,计算 x1 = g(x0), x2 = g(x1),
…, xk+1 = g(xk), … 若 收敛,即存在 x* 使得 ,且 g 连续,则由 可知 x* = g(x* ) ,即 x* 是 g 的不动点,也就是 f 的根。
0kkx*lim xxk
k
kk
kk
xgx
limlim 1
So basically we are done! I can’t believe
it’s so simple! What’s the problem?
Oh yeah? Who tells you that the method
is convergent?
x
y y = x
x
y y = x
x
y y = x
x
y y = x
x* x*
x* x*
y=g(x)
y=g(x)
y=g(x)y=g(x)
x0
p0
x1
p1
x0
p0
x1
p1
x0
p0
x1
p1
x0
p0
x1
p1
定理 考虑方程 x = g(x), g(x)C[a, b], 若
( I ) 当 x[a, b] 时, g(x)[a, b] ;
( II ) 0 L < 1 使得 | g’(x) | L < 1 对 x[a, b] 成立。
则任取 x0[a, b] ,由 xk+1 = g(xk) 得到的序列 收敛于 g(x) 在 [a, b] 上的唯一不动点。并且有误差估计式:
0kkx
||1
1|*| 1 kkk xx
Lxx
||1
|*| 01 xxL
Lxx k
( k = 1, 2, … )
且存在极限 **
*lim 1 xg
xx
xx
k
k
k
k
证明:① g(x) 在 [a, b] 上存在不动点?令 xxgxf )()( bxga )(
,0)()( aagaf 0)()( bbgbf
)(xf 有根
② 不动点唯一?反证:若不然,设还有 ,则
)~(~ xgx
),~*()()~(*)( xxξgxgxg xx* ~ 在 和 之间。 *x x~
0))(1)(~( ξgxx* 而 xxξg ~*1|)(|
③ 当 k 时, xk 收敛到 x* ? |*| kxx |*||)(||)(*)(| 111 kkk xxξgxgxg
0|*|......|*| 01 xxLxxL kk
④ ?||1
1|*| 1 kkk xx
Lxx
|*||*||*||*||| 11 kkkkkk xxLxxxxxxxx ?||
1|*| 01 xx
L
Lxx
k
k
⑤
||......||
|))((||)()(|||
011
111
xxLxxL
xxξgxgxgxxk
kk
kkkkkkk
?*
*
*lim 1 xg
xx
xx
k
k
k
⑥
*)(*
)*)((lim
*
*lim 1 xg
xx
xxξg
xx
xx
k
kk
kk
k
k
可用 来控制收敛精度
|| 1 kk xx
L 越 收敛越快
小
注注::定理条件非必要条件,可将 [a, b] 缩小,定义局部收敛性:若在 x* 的某 领域 B = { x | | x x* | } 有 gC1[a, b] 且 | g’(x*) | < 1 ,则由 x0B 开始的迭代收敛。即调整初值可得到收敛的结果。
注注::定理条件非必要条件,可将 [a, b] 缩小,定义局部收敛性:若在 x* 的某 领域 B = { x | | x x* | } 有 gC1[a, b] 且 | g’(x*) | < 1 ,则由 x0B 开始的迭代收敛。即调整初值可得到收敛的结果。
改进、加速收敛 /* accelerating convergence */ 待定参数法:若 | g’(x) | 1 ,则将 x = g(x) 等价地改造为 )()()1()( xxKgxKxKgKxxx
1|)(1||)(| xgKKx求 K ,使得例:求 在 (1, 2) 的实根。
013)( 3 xxxf
)()1(3
1 3 xgxx 如果用 进行迭代,则在 (1, 2) 中有1|||)(| 2 xxg
现令 )1(3
)1()()1()( 3 xK
xKxKgxKx
希望 1|1||)(| 2 KxKx 01
22
Kx
,即
在 (1, 2) 上可取任意 ,例如 K = 0.5 ,则对应 即产生收敛序列。
03
2 K
)1(6
1
2
3 3 xxx
Aitken 加速:
x
y
y = xy = g(x)
x* x0
P(x0, x1)
x1 x2
x̂
P(x1, x2)
210
201
0 2
)(ˆxxx
xxxx
一般地,有:21
21
2
)(ˆ
KKK
KKKK xxx
xxxx
......
),(,ˆ
),(,ˆ
),(),(,
341
230
12010
xgxx
xgxx
xgxxgxx
比 收敛得略快。
Kx̂ Kx
Steffensen 加速:
......,ˆ̂
),(),ˆ(,ˆ
),(),(,
0
12010
12010
x
xgxxgxx
xgxxgxx
§4 牛顿法 /* Newton - Raphson Method */
原理:将非线性方程线性化 —— Taylor 展开 /* Taylor’s expansion */
取 x0 x* ,将 f (x) 在 x0 做一阶 Taylor 展开 :
20000 )(
!2
)())(()()( xx
fxxxfxfxf
, 在 x0 和 x
之间。将 (x* x0)2 看成高阶小量,则有:
)*)(()(*)(0 000 xxxfxfxf )(
)(*
0
00 xf
xfxx
线性 /* linear */
x
y
x*x0
)(
)(1
k
kkk xf
xfxx
只要 f C1 ,每一步迭代都有 f ’( xk ) 0 , 而且 ,则 x* 就是 f 的根。
*lim xxkk
定理 (收敛的充分条件)设 f C2[a, b] ,若
(1) f (a) f (b) < 0 ; (2) 在整个 [a, b] 上 f ” 不变号且 f ’(x) 0 ;
(3) 选取 x0 [a, b] 使得 f (x0) f ”(x0) > 0 ;
则 Newton’s Method 产生的序列 { xk } 收敛到 f (x) 在 [a, b] 的唯一根。有根 根唯一 产生的序列单调有
界,保证收敛。定理 (局部收敛性)设 f C2[a, b] ,若 x* 为 f (x) 在 [a, b] 上的根,且 f ’(x*) 0 ,则存在 x* 的邻域 使得任取初值 , Newton’s Method 产生的序列 { xk } 收敛到 x* ,且满足
*)(xB*)(0 xBx
*)(2
*)(
)*(
*lim
21
xf
xf
xx
xx
k
k
k
证明: Newton’s Method 事实上是一种特殊的不动点迭代 其中 ,则
)(
)()(
xf
xfxxg
10
*)(
*)(*)(*)(
2 xf
xfxfxg 收敛
由 Taylor 展开:2)*(
!2
)()*)(()(*)(0 k
kkkk xx
fxxxfxfxf
2)*()(!2
)(
)(
)(* k
k
k
k
kk xx
xf
f
xf
xfxx
1kx
)(2
)(
)*(
*2
1
k
k
k
k
xf
f
xx
xx
只要 f ’(x*) 0 ,则令 可得结论。
k
在单根 /*simple root *
/ 附近收敛快
注:注: Newton’s Method 收敛性依赖于 x0 的选取。注:注: Newton’s Method 收敛性依赖于 x0 的选取。
x*x0x0
x0
Excuses for not doing homework
I have the proof, but there isn't room to write it in
this margin.
改进与推广 /* improvement and generalization */ 重根 /* multiple root */ 加速收敛法:
Q1: 若 , Newton’s Method 是否仍收敛?0*)( xf
设 x* 是 f 的 n 重根,则: 且 。
)(*)()( xqxxxf n 0*)( xq
因为 Newton’s Method 事实上是一种特殊的不动点迭代,
其中 ,则)(
)()(
xf
xfxxg
2
2
*)(
*)(*)(*)(1|*)(|
xf
xfxfxfxg 1
11
n
A1: 有局部收敛性,但重数 n 越高,收敛越慢。Q2: 如何加速重根的收敛?A2: 将求 f 的重根转化为求另一函数的单根。
令 ,则 f 的重根 = 的单根。)(
)()(
xf
xfx
正割法 /* Secant Method */ :Newton’s Method 一步要计算 f 和 f ’ ,相当于 2 个函数值,比较费时。现用 f 的值近似 f ’ ,可少算一个函数值。
x0x1
切线 /* tangent line */
割线 /* secant line */
切线斜率 割线斜率1
1 )()()(
kk
kkk xx
xfxfxf
)()(
))((
1
11
kk
kkkkk xfxf
xxxfxx 需要 2 个初值 x0 和
x1 。
收敛比 Newton’s Method 慢,且对初值要求同样高。
下山法 /* Descent Method */ ——Newton’s Method 局部微调:
原理:若由 xk 得到的 xk+1 不能使 | f | 减小,则在 xk 和 xk+1 之间找一个更好的点 ,使得 。1kx )()( 1 kk xfxf
xk xk+1
,)1(1 kk xx ]1,0[)(
)(
)1(])(
)([1
k
kk
kk
kkk
xf
xfx
xxf
xfxx
注:注: = 1 时就是 Newton’s Method 公式。
当 = 1 代入效果不好时,将 减半计算。注:注: = 1 时就是 Newton’s Method 公式。
当 = 1 代入效果不好时,将 减半计算。
求复根 /* Finding Complex Roots */
—— Newton 公式中的自变量可以是复数
记 z = x + i y, z0 为初值,同样有)(
)(1
k
kkk zf
zfzz
kkkkkk DiCzfBiAzf )(,)(设
代入公式,令实、虚部对应相等,可得
;221
kk
kkkkkk
DC
DBCAxx
.221
kk
kkkkkk
DC
CBDAyy
§5 迭代法的收敛阶 /* Order of Convergence */
定义 设迭代 xk+1 = g(xk) 收敛到 g(x) 的不动点 x* 。
设 ek = xk x* ,若 ,则称该迭代为 p 阶收
敛,其中 C 称为渐进误差常数。 /* { xk } converges to x* of o
rder p, with asymptotic error constant C > 0 */
0||
||lim 1
C
e
ep
k
k
k
一般 Fixed-Point Iteration 有 ,称为线 性收敛 /* linear convergence */ ,这时 p = 1 , 0 < C <
1 。
0|*)(|||
||lim 1
xg
e
e
k
k
k
注:注:超线性收敛不一定有 p > 1 。 例如 xn = 1/nn 超线性收敛到 0 ,但对任何 p > 1 都没有 p 阶收敛。
注:注:超线性收敛不一定有 p > 1 。 例如 xn = 1/nn 超线性收敛到 0 ,但对任何 p > 1 都没有 p 阶收敛。
Aitken 加速有 。 称为超线性收敛 /* superlinear convergence */ 。
0*
*ˆlim
xx
xx
k
k
k0
||
||lim 1
k
k
k e
e
Steffensen 加速有 p = 2 ,条件是 ,称为平方收敛 /* quadratic convergence */ 。
1*)( xg
Newton’s Method 有 ,只要 ,
就有 p 2 。重根是线性收敛的。
*)(2
*)(
||
||lim
21
xf
xf
e
e
k
k
k
0*)( xf
Q: 如何实际确定收敛阶和渐进误差常数?
定理 设 x* 为 x = g(x) 的不动点,若 , p 2 ;
,且 ,则 xk+1 = g(xk) 在 内 p 阶收敛。
*))(( xBCg p
0*)(...*)( )1( xgxg p 0*)()( xg p
*)(xB
证明: pk
kp
kkk xxp
gxxxgxgxgx *)(
!
)(...*)*)((*)()(
)(
1
x*k
C
This is a one line proof...if we start sufficiently far to the
left.