第三章 非线性方程求根 /* solutions of nonlinear equations *

21
第第第 第第第第第第第 /* Solutions of Nonlinear Equations */ §1 第第第第第 /* Polynomials */ 第第第 () §2 第第第 /* Bisection Metho d */ f (x) = 0 第第 第第f C[a, b] f (a) · f (b) < 0 f 第 (a, b) 第第第 第第 一。

Upload: udell

Post on 09-Jan-2016

97 views

Category:

Documents


7 download

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 Presentation

TRANSCRIPT

Page 1: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

第三章 非线性方程求根 /* Solutions of Nonlinear Equations */

§1 多项式基础 /* Polynomials */ (自习)

§2 二分法 /* Bisection Method */

求 f (x) = 0 的根

原理:若 f C[a, b] ,且 f (a) · f (b) < 0 ,则 f 在 (a, b) 上必有一根。

Page 2: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

ab

x1

x2

ab

When to stop?

11 εxx kk 2)( εxf 或

不能保证 x 的精度

x*

2

xx*

Page 3: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

误差 分析:第 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 。

Page 4: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

试位法 /* Regula Falsi Method */

ab

(a+b)/2

x*

(a, f (a))

(b, f (b))

abafbf

afax

)()(

)(

Is it really better than Bisection Method?

注:注:试位法每次迭代比二分法多算一次乘法,而且不保证收敛。

注:注:试位法每次迭代比二分法多算一次乘法,而且不保证收敛。

Page 5: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

§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?

Page 6: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

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

Page 7: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

定理 考虑方程 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

Page 8: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

证明:① 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

Page 9: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

④ ?||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 开始的迭代收敛。即调整初值可得到收敛的结果。

Page 10: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

改进、加速收敛 /* 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

Page 11: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

Aitken 加速:

x

y

y = xy = g(x)

x* x0

P(x0, x1)

x1 x2

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

Page 12: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

§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

Page 13: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

定理 (收敛的充分条件)设 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

Page 14: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

证明: 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 *

/ 附近收敛快

Page 15: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

注:注: 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.

Page 16: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

改进与推广 /* 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

Page 17: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

正割法 /* 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 慢,且对初值要求同样高。

Page 18: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

下山法 /* 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 代入效果不好时,将 减半计算。

Page 19: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

求复根 /* 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

Page 20: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

§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

Page 21: 第三章  非线性方程求根  /* Solutions of Nonlinear Equations *

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.