二分法 - Welcome to Math Dept. in ECNU...math.ecnu.edu.cn/~jypan/Teaching/NA/ch07a.pdf · 4...

30
1 第七章 非线性方程()数值解法 —— 二分法 —— 不动点迭代及其加速

Transcript of 二分法 - Welcome to Math Dept. in ECNU...math.ecnu.edu.cn/~jypan/Teaching/NA/ch07a.pdf · 4...

1

第七章

非线性方程(组)数值解法

—— 二分法

—— 不动点迭代及其加速

2

内容提要

非线性方程求解基本概念

二分法

不动点迭代法及其加速

牛顿法、弦截法、抛物线法

求根问题的敏感性与多项式的零点

非线性方程组的数值求解

3

非线性方程基本概念

4

基本概念

若 f(x) 是一次多项式,则称为线性方程;

否则称为非线性方程

f (x) = 0

代数方程: 𝒇𝒇(𝒙𝒙) = 𝒂𝒂𝟎𝟎 + 𝒂𝒂𝟏𝟏𝒙𝒙+ . . . +𝒂𝒂𝒏𝒏𝒙𝒙𝒏𝒏

, ( ) [ , ]x R f x C a b∈ ∈

n=1, 2, 3, 4 时有相应的求根公式,n ≥ 5 时不存在求根公式

非线性方程可能有(无穷)多个解,一般要强调 求解区间

非线性方程一般没有直接解法,通常用迭代法求数值解

5

基本概念

实根与复根

根的重数:若 𝒇𝒇(𝒙𝒙) = (𝒙𝒙–𝒙𝒙∗)𝒎𝒎 · 𝒈𝒈(𝒙𝒙) 且 𝒈𝒈(𝒙𝒙∗) ≠ 𝟎𝟎, 则 𝒙𝒙∗ 为 𝒇𝒇(𝒙𝒙) = 𝟎𝟎 的 𝒎𝒎 重根

有根区间:[𝒂𝒂,𝒃𝒃] 上至少存在 𝒇𝒇(𝒙𝒙) = 𝟎𝟎 的一个实根

研究内容:在 有根 的前提下求出方程的 近似根

6

二分法(对分法)

基本思想、数学原理、计算过程

收敛性分析

7

二分法(对分法)

基本思想将有根区间对分,并找出根所在的小区间,然后再对该小区间对分,依次类推,直到有根区间的长度足够小为止。

数学原理:介值定理设 𝒇𝒇(𝒙𝒙) 在 [𝒂𝒂,𝒃𝒃] 上连续,且 𝒇𝒇(𝒂𝒂) 𝒇𝒇(𝒃𝒃) < 𝟎𝟎,则由介值定理可得,在 (𝒂𝒂,𝒃𝒃) 内至少存在一点 ξ 使得 𝒇𝒇(ξ) = 𝟎𝟎

适用范围求有根区间内的 单重实根 或 奇重实根,即 𝒇𝒇(𝒂𝒂) 𝒇𝒇(𝒃𝒃) < 𝟎𝟎

用二分法求根,通常先给出 𝒇𝒇(𝒙𝒙) 草图以确定有根区间

8

二分法(对分法)

( )f x

ab x

y

o x1

x2

x3

9

二分法

算法 :(二分法 )

(1) 计算 f(a),f(b),若 f(a) f(b) >0 ,则算法失效,停止计算

(2) 令 ,计算 f(x)2

a bx +=

(3) 若 |f(x)|<ε 或 |b-a|<ε,停止计算,输出近似解 x

(4) 若 f(a) · f(x) < 0,则令 b = x; 否则令 a = x

优点:简单易用,总是收敛缺点:收敛慢,不能求复根和偶数重根,一次只能求一个根总结:一般用来计算解的一个粗糙估计

(5) 返回第 2 步

10

误差分析

记 a1 = a, b1 = b, 第 k 步的有根区间为 [ak, bk]

1 1

2 2 4k k k k k k

kb a b a b ax x x − −

∗ ∗

+ − −− = − ≤ = = 1 1

2kb a−

=

2

0 ( )k ka kbx x∗ ≤ →

−→ ∞−

结论:二分法总是收敛的! (条件:函数满足介值定理)

11

不动点迭代

基本思想

迭代格式

收敛性分析(全局收敛与局部收敛)

12

不动点迭代基本思想

构造 f (x) = 0 的一个等价方程:

( )x xϕ=

ϕ (x) 的不动点

f (x) = 0 x = ϕ (x)等价变换

f (x) 的零点

13

不动点迭代格式

任取一个迭代初始值 x0 ,计算

得到一个迭代序列: x0,x1,x2,. . . ,xn,. . .

1 ( )k kx xϕ+ = k = 0, 1, 2, ... ...

几何含义:求曲线 y = ϕ(x) 与直线 y = x 的交点。

14

x

y y = x

x

y y = x

x

y y = x

x

y y = x

x* x*

x* x*

y= ϕ(x)

y= ϕ(x)

y= ϕ(x) y=ϕ(x)

x0

p0

x1

p1

x0

p0

x1

p1

x0

p0

x1

p1

x0

p0

x1

p1

x2

15

收敛性分析

设 ϕ(x) 连续,若 收敛,即 ,则

( )1lim lim ( ) limk k kk k kx x xϕ ϕ+→∞ →∞ →∞

= =

lim kkx x∗→∞

={ } 0k kx ∞

=

( )x xϕ∗ ∗= ( ) 0f x∗ =即

性质:若 ,则不动点迭代收敛,且

x* 就是 f(x)=0 的解;否则迭代法发散。

lim kkx x∗→∞

=

16

解的存在唯一性

定理:设 ϕ(x) ∈ C[a,b] 且满足

(1) 对任意的 x∈[a,b] 有 ϕ(x)∈[a,b]

(2) 存在常数 0<L<1,使得任意的 x, y∈[a,b] 有

( ) ( )x y L x yϕ ϕ− ≤ −

则ϕ(x) 在 [a,b] 上存在唯一的不动点 x*

证明:板书

17

不动点迭代的收敛性判断

定理:设 ϕ(x) ∈ C[a,b] 且满足

(1) 对任意的 x∈[a,b] 有 ϕ(x)∈[a,b]

(2) 存在常数 0<L<1,使得任意的 x, y∈[a,b] 有

则对任意初始值 x0∈[a,b],不动点迭代 xk+1=ϕ(xk) 收敛,且

证明:板书

( ) ( )x y L x yϕ ϕ− ≤ −

1 1 01 1

k

k k kL Lx x x x x x

L L∗ −− ≤ − ≤ −− −

注:一般来说,L 越小,收敛越快!

18

不动点迭代的收敛性判断

推论:若 𝝋𝝋(𝒙𝒙) ∈ 𝐂𝐂𝟏𝟏[𝒂𝒂,𝒃𝒃],对任意 𝒙𝒙∈[𝒂𝒂,𝒃𝒃] 有 𝝋𝝋(𝒙𝒙) ∈ [𝒂𝒂,𝒃𝒃]且对任意 𝒙𝒙∈[𝒂𝒂,𝒃𝒃] 有

𝝋𝝋′ 𝒙𝒙 ≤ 𝑳𝑳 < 𝟏𝟏则上述定理中的结论成立。

以上两个结论中的 收敛性与初始值的选取无关!

全局收敛

19

举例

例:求 f(x) = x3 – x – 1=0 在区间 [1, 2] 中的根

3( ) 1x xϕ = +

2/31'( ) ( 1)3

x xϕ −= + 31'( ) 0.25 13

xϕ ≤ <

(1) 1 ( ) 2xϕ≤ ≤ ( [1, 2])x∈

3( ) 1x xϕ = −

2'( ) 3x xϕ = '( ) 1xϕ >

(2) 0 ( ) 7xϕ≤ ≤ ( [1, 2])x∈

ex71.m

全局收敛

20

不动点迭代的局部收敛

定义:设 x* 是 ϕ(x) 的不动点,若存在 x* 的某个 δ -邻域Uδ(x*) =[x* - δ , x* +δ ],对任意 x0∈Uδ(x*),不动点迭代

xk+1 = ϕ(xk)产生的点列都收敛到 x*,则称该迭代局部收敛。

定理:设 x* 是 ϕ(x) 的不动点,若 ϕ’(x) 在 x* 的某个邻域内连续,且

|ϕ’(x*)| < 1则不动点迭代 xk+1 = ϕ(xk) 局部收敛

证明:板书

21

收敛速度

定义:设迭代 xk+1 = ϕ(xk) 收敛到 ϕ(x) 的不动点 x*,记 ek = xk − x*,若

其中常数 C > 0,则称该迭代为 p 阶收敛。

1| |lim| |

kpk

k

e Ce

+

→∞=

(1) 当 p =1 且 0< C < 1时称为线性收敛

(2) 当 p =2 时称为二次收敛,或平方收敛

(3) 当 p >1 或 p=1且 C=0 时称为超线性收敛

若 0<|ϕ’(x*)|<1,则不动点迭代 xk+1 = ϕ(xk) 局部线性收敛

22

基本收敛定理

定理:设 x* 是 ϕ(x) 的不动点,若 ϕ (p)(x) 在 x* 的某邻域内连续,且

则迭代 xk+1 = ϕ(xk) 是 p 阶局部收敛的。且有

( 1)

( )

'( ) ''( ) ( ) 0,

( ) 0

p

p

x x x

x

ϕ ϕ ϕ

ϕ

−∗ ∗ ∗

= = = =

证明:板书

( )1 ( )lim

( ) !

pk

pkk

x x xx x p

ϕ+ ∗ ∗

→∞∗

−=

23

举例

例:求 f(x) = x2 - 3=0 的正根

2( ) 3x x xϕ = − +(1) '( ) 2 3 1 1xϕ ∗ = + >

ex72.m3x∗ =

2 3( )4

xx xϕ −= −(2) 3'( ) 1 0.134 1

2xϕ ∗ = − ≈ <

1 3( )2

x xx

ϕ = +

(3) '( ) 0xϕ ∗ =2''( ) 03

xϕ ∗ = ≠

一般来说,|ϕ'(x*)| 越小,收敛越快!

24

不动点迭代的加速

Aitken 加速技巧

Steffensen 迭代方法

25

Aitken 加速

1 0( )x xϕ= 1 0 1 0( ) ( ) '( )( )x x x x x xϕ ϕ ϕ ξ∗ ∗ ∗− = − = −

2 1( )x xϕ= 2 1 2 1( ) ( ) '( )( )x x x x x xϕ ϕ ϕ ξ∗ ∗ ∗− = − = −

若 ϕ’(x) 变化不大,则可假定: 1 2'( ) '( )ϕ ξ ϕ ξ≈

01

2 1

x xx xx x x x

∗∗

∗ ∗

−−≈

− −2

1 00

2 1 0

( )2

x xx xx x x∗

−≈ −

− + 1y

Aitken 加速

26

Aitken 加速

0 1 2 3 4 . . .x x x x x

1y

21

12 1

( )2

k kk k

k k k

x xy xx x x

++

+ +

−= −

− +

收敛性: 1lim 0kk

k

y xx x+ ∗

→∞∗

−=

−yk 收敛较快

. . .2y 3y

27

Steffenson 加速

( ), ( )k k k ky x z yϕ ϕ= =

基本思想:将 Aitken 加速技巧与不动点迭代相结合

k = 0, 1, 2, . . .

Steffensen 迭代函数:

( )2

1( ( ) )( ), ( )( ) 2 ( )k k

x xx x x xx x xϕψ ψ

ϕ ϕ ϕ+

−= = −

− +

Steffensen 迭代

2

1( )

2k k

k kk k k

y xx xz y x+

−= −

− +

28

Steffensen 迭代

定理:若 𝒙𝒙∗是 𝝍𝝍(𝒙𝒙) 的不动点,则 𝒙𝒙∗是 𝝋𝝋(𝒙𝒙) 的不动点。反之,若 𝒙𝒙∗ 是𝝋𝝋(𝒙𝒙) 的不动点,且 𝝋𝝋′′(𝒙𝒙) 存在,𝝋𝝋′(𝒙𝒙∗)≠ 𝟏𝟏,则𝒙𝒙∗ 是𝝍𝝍(𝒙𝒙) 的不动点。

另外,若原不动点迭代是线性收敛的,则 Steffensen 迭代是二阶收敛的。

若原迭代是 𝒑𝒑 阶收敛的,则 Steffensen 迭代 𝒑𝒑 + 𝟏𝟏 阶收敛

原来不收敛的迭代,Steffensen 加速可能收敛

证明:略

29

举例

例:用 Steffensen 迭代法求 𝒇𝒇 𝒙𝒙 = 𝟑𝟑𝒙𝒙𝟐𝟐 − 𝒆𝒆𝒙𝒙 = 𝟎𝟎 在区间[𝟑𝟑,𝟒𝟒]中的根(取 𝝋𝝋(𝒙𝒙) = 𝟐𝟐𝟐𝟐(𝒙𝒙) + 𝟐𝟐𝟑𝟑)

例:用 Steffensen 迭代法求 𝒇𝒇 𝒙𝒙 = 𝒙𝒙𝟑𝟑 − 𝒙𝒙 − 𝟏𝟏 = 𝟎𝟎 在区间[𝟏𝟏,𝟐𝟐] 中的根(取 𝝋𝝋 𝒙𝒙 = 𝒙𝒙𝟑𝟑 − 𝟏𝟏)

ex73.m

ex74.m

30

作业

1. 教材第 238 页:1, 2,4,6

提示:

第 1 题改为: 用二分法求 𝒇𝒇(𝒙𝒙) = 𝒙𝒙𝟐𝟐 + 𝒙𝒙 − 𝟏𝟏在 [𝟎𝟎,𝟏𝟏] 中的零点 �𝒙𝒙 , 要求 |𝒇𝒇 �𝒙𝒙 | < 𝟎𝟎.𝟎𝟎𝟎𝟎

第 2 题改为: 计算 𝒇𝒇(𝒙𝒙) = 𝒙𝒙𝟑𝟑 − 𝟐𝟐𝒙𝒙𝟐𝟐 + 𝟏𝟏的零点 𝒙𝒙∗ = 𝟏𝟏, 试分析下列迭

代公式的收敛性(局部):

第 4 题是指全局收敛,即对任意初值都收敛到 𝒇𝒇(𝒙𝒙) 的零点

第 6 题指的是“至少三阶局部收敛”

(1) 𝑥𝑥𝑘𝑘+1 = 2 − 1𝑥𝑥𝑘𝑘2 (2) 𝑥𝑥𝑘𝑘+1 =

32𝑥𝑥𝑘𝑘2 − 1 (3) 𝑥𝑥𝑘𝑘+1= 1

2−𝑥𝑥𝑘𝑘