You are on page 1of 31

第二章 内容回顾

非线性方程的数值解法
§2.1.1 引言
 方程求根特点
 1. 根的存在性
 2. 根的分布(有根区间)
 3. 根的精确化
 定理 2-1 :设函数 f(x) 在 [a, b] 内连续,且 f(a)*f(b)<0 ,
则在 [a, b] 内 f(x)=0 至少有一个根。 有根区间
 定理 2-2 :设函数 f(x) 在 [a, b] 内连续,严格单调,
且 f(a)*f(b)<0 ,则在 [a, b] 内 f(x)=0 有且仅有一个根。
隔根区间

2
§2.1.2 二分法
 二分法( Bisection Method )又叫对分法,是
一种直接法,直观、简单。
 一 . 原理:定理 2-2
 二 . 过程:将区间对分,判别 f (x) 的符号,逐步
缩小有根区间。
 三 . 方法:
 四 . 二分法收敛性

3
§2.2.1 迭代法
 一 . 迭代格式的构造
改写方程: f ( x )  0  x  g( x ) 且 g 连续。
建立迭代格式:x n1  g( xn ) ,得到序列 xn 

若 x n 收敛,必收敛到 f ( x )  0的根:
lim xn 1  lim g ( x n )  g ( lim x n )
n  n  n 

若 x n 收敛,即 lim x n  x ,则:


n 

x   g( x  )  f ( x  )  0

4
§2.2.1 迭代法
 四 . 整体收敛性
考虑方程 x  g( x ), g ( x )  C [a , b], 若
(1)当x  [a , b]时, g ( x )  [a , b];
( 2)0  L  1使得 g ( x )  L  1对x  [a , b]成立。
则任取 x0  [a , b], 由x k 1  g ( x k )得到的序列x k k  0 收敛

于g ( x )在[a , b]上的唯一不动点。并且 有误差估计式:


1
(a ) | x *  x k |  | x k 1  x k |
1 L
Lk
(b ) | x *  xk |  | x1  x0 |
1 L
x *  x k 1
且存在极限 lim  g  x *
k  x *  x
k

5
§2.2.1 迭代法
 五 . 局部收敛性
如果函数 g( x ) 在 x * 的一邻域 O( x*,  *) 内连续
可微, x * 为方程 x  g( x ) 的根,且 g ( x )  1,
则存在正数 ,   *,
使得对任意 x0  [ x *  , x *  ],
迭代序列 x n1  g ( x n ) ( n  0,1,2...) 收敛于 x * 。

证明思路:
取[a , b]  [ x *  , x *  ],于是只要验证全局收 敛性定理中
条件“当 x  [a , b]时, g ( x )  [a , b]”成立,定理即得证。

6
§2.3 牛顿迭代法
 本节内容 解 f(x)=0 的 Newton 迭代法
 一. 迭代格式的构造
 二. Newton迭代法的几何意义
 三. Newton迭代法收敛定理
 四. 牛顿迭代法N-S图
 五. 简化牛顿法
六 . 牛顿下山法

7
§2.3 牛顿迭代法
 牛顿迭代法( Newton - Raphson Method )
一般迭代法的特例,且迭代函数有固定的形
式。
 一 . 迭代格式的构造
 1. 原理
 构造 g(x) 的一条重要途径:用近似方程代
替原方程求根。
 牛顿法是将非线形方程线性化。

8
§2.3 牛顿迭代法
 2. 方法 ——Taylor 展开线性化(重要思想)
设x k 是f ( x )  0的一个近似根,将 f ( x )在x k 处做一
阶Taylor ( 泰勒)展开:
f ( x k )
f ( x )  f ( xk )  f ' ( xk ) ( x  xk )  ( x  xk )2  
2!
f ( x )  f ( xk )  f ' ( xk ) ( x  xk )
f ( x )  0近似于 f ( x k )  f ' ( x k ) ( x  x k )  0
设f ' ( x )  0,解出 x记为x k 1,则
f ( xk )
x k 1  xk  ( k  0,1,2, )
f ' ( xk )
9
§2.3 牛顿迭代法
二 . Newton 迭代法的几何意义
过( x k , f ( x k ) )切线 y  f ( x k )  f ' ( x k ) ( x  x k )
与y  0 求交点,解出 x  x k 1,则
f ( xk ) 实际上牛顿迭
xk 1  xk 
f ' ( xk ) 代公式是曲线
在 xk 点上的切
线与 x 轴交点
的横坐标,即
用切线与 x 轴
交点的坐标近
似代替曲线与
x 轴的交点坐
标,故也称切
线法。
10
§2.3 牛顿迭代法
 三 . Newton 迭代法收敛定理
1. 收敛的充分条件
有根
设 f C [a, b] ,若
2
根唯一
(1) f (a) f (b) < 0 ;
(2) 在整个 [a, b] 上 f ” 不变号且 f ’(x)  0 ;
(3) 选取 x0  [a, b] 使得 f (x0) f ”(x0) > 0 ;
则牛顿法产生的序列 { xk } 收敛到 f (x) 在 [a,
b] 的唯一根。
证明:以 f ( x )  0, f ( x )  0, 产生的序列单调
有界 , 保证收敛 .
f ( x 0 )  0为例证明(其它情况类似 )
11
§2.3
将f ( )在牛顿迭代法
x 处泰勒展开k

f " ( k )
f ( )  f ( x k )  f ' ( x k )(  x k )  (  x k ) 2  0
2!
f ( xk ) f " ( k )
   xk   (  x k ) 2
f ' ( xk ) 2 f ' ( xk )
f " ( k )
 x k 1  (  x k ) 2  x k  1
2 f ' ( xk )
说明数列x n1 有下界 
f ( xk )
又x k 1  xk   x k,故 x k 1 单调递减。
f ' ( xk )
 x k 1 收敛。设 lim x k 1  x,
n 

f ( x)
则得到 x  x  , f ( x )  0, x  
f '( x)
12
§2.3 牛顿迭代法
2. 局部收敛性
设 f  C 2 [a , b], 若x * 为 f ( x ) 在 [a , b] 上的根 , 且
f ( x*)  0, 则存在 x * 的邻域 S ( x*) 使得任取初
值 x0  S ( x*),牛顿法产生的序列  x k  收敛到
x *,且满足
x *  x k 1 f ( x*)
lim 
k  ( x *  x )
k
2
2 f ( x*)

13
§2.3 牛顿迭代法一种特殊的不动点迭代
证明:牛顿法事实上是
f ( x) 此时可直接使用
其中g ( x )  x  ,则
f ( x ) 定理 2-5
f ( x*) f ( x*)
g ( x*)   0  1  收敛
f  ( x*)
2

由 Taylor 展开:
f ( k )
0  f ( x*)  f ( x k )  f ( x k )( x *  x k )  ( x *  xk )2
2!
f ( xk ) f ( k )
 x*  x k   ( x *  xk )2 在单根 /*simple
f ( x k ) 2! f ( x k )
root */ 附近收敛
xk 1 快
x *  x k 1 f ( k ) 只要 f ’(x*)  0 ,则令
k
  
( x *  xk )2 2 f ( x k )
可得结论。
14
§2.3 牛顿迭代法
3. x 的选取对牛顿法收敛性的影响
0

即:牛顿法的收敛性依赖于 x0 的选取。
取 x0 使 f ( x0 )f'' ( x0 )>0 ,则收敛速度增
大。常
用二分法获取初值 x0 ,再进行迭代求解。
迭代过程中若 f’(x0)≈0 或迭代次数超过某个

界 M, 仍达不到要求的精度 , 则迭代计算
x x x
失败。
0 0 0
x*

15
§2.3 牛顿迭代法
例1:
x
用牛顿法求 f ( x )  e 4
( 2  x )  1  0 的根。
解:显然, f (0)  f ( 2)  0, 方程于[0,2]内有一根。
x
求导f ( x )  e 4
( x  6) / 4
牛顿法计算公式为
xk

e 4
( 2  xk )  1
x k 1  x k  xk
(k  0,1,2, )

e 4
( x k  6) / 4
(1)取x 0  1.0,计算结果见下页左表 。
( 2)取x 0  8.0,计算结果见下页右表 。
16
§2.3 牛顿迭代法
k xk k xk
0 1.0 0 8.0
1  1.155999 1 34.778107
2 0.189438 2 869.1519
3 0.714043
4 0.782542
5 0.783595
6 0.783596 发散
求得近似根 x*  0.783596, f ( x6 )  3.8  10  8 。
说明当初值 x0 选取靠近根 x * 时牛顿法收敛且收敛较 快,当初
值x0不是选取接近方程根时 ,牛顿法可能会给出发 散的结果。

17
§2.3 牛顿迭代法
 改进与推广
 弦截法 /* Secant Method */
 下山法 /* Descent Method */ :牛顿法局部微

18
§2.3 牛顿迭代法
 四 . 牛顿迭代法 N-S 图

定义函数 f(x)=….
定义导数函数
f1(x)=….
读入数据 x0,eps
x= x0-f(x0)/f1(x0), k=1
|x-x0|>=eps
输出 k,
x
k=k+1
x0=x
x= x0-f(x0)/f1(x0)
结束
19
§2.3 牛顿迭代法
 五 . 简化牛顿法

牛顿法需计算 f '(xk) ,若用一个给定常数值 c 代 f


'(x) ,
则 xk+1=xk-f(xk )/c
要使该式收敛,则
g(x) = x-f(x)/c
g'(x) = 1-f '(x)/c
g'(x)=1-f '(x)/c<1
即 0<f '(x)/c<2
取 c 与 f '(x) 同号,且 f '(x)/c<2 即可,这是切线方程
的固定斜率。 20
§2.3 牛顿迭代法
 六 . 牛顿下山法
 通常,牛顿迭代法的收 敛性依赖于初始
值 x0 的选取,如果 x0 偏离所求的根 x * 比较远,
则牛顿法可能发散。为 了防止迭代发散,我
们对牛顿迭代法的迭代 过程再附加一项要求,
即具有单调性
f ( xk 1 )  f ( xk )
满足这项要求的算法称 下山法。

21
§2.3 牛顿迭代法

将牛顿迭代法与下山法 结合起来使用,
即在下山法保证函数值 下降的前提下,用
牛顿迭代法加快收敛速 度。把这一算法称
为牛顿下山法。即
f ( xk )
xk 1  xk  
f ( xk )
其中 (0    1)为下山因子

22
§2.3 牛顿迭代法
下山因子的选择是个逐 步探索的过程,
设从   1 开始反复将  减半进行试算,即
逐次取  为
1 1
1, , 2 ,

2 2
从中挑选下山因子,直 到找到其中某个 
使单调性条件
f ( xk 1 )  f ( xk )
成立,则称“下山成功 ”,否则“下山失败” ,
这时需另选初值重算。 P43 :例 2-
17 23
§2.4 弦截法
 本节内容
一 . 引入意义 正割法
二 . 弦截法基本思想
三 . 弦截法几何意义
四 . 弦截法算法实现

24
§2.4 弦截法
 一 . 引入意义
 牛顿迭代法虽然具有收敛速度快的优点,但每迭
代一次都要计算导数 f ( x k ) f, (x
当)
比较复杂时 , 不仅每次计算
f ( x k ) 带来很多
不便,而且还可能十分麻烦,如果用不计算导数
的迭代方法,往往只有线性收敛的速度。本节介
绍的弦截法便是一种不必进行导数运算的求根方
法。弦截法在迭代过程中不仅用到前一步 xk
处的函数值,而且还使用
xk 1 处的函数值
来构造迭代函数,这样做能提高迭代的收敛速度。

25
§2.4 弦截法
 二 . 弦截法基本思想
为避免计算函数的导数 f ( x k ),使用差商
f ( xk )  f ( xk 1 )
( xk  xk 1 )
代替牛顿公式中的导数 f ( x k ),即得到迭代公式
f ( xk )
xk 1  xk  ( xk  xk 1 )
f ( xk )  f ( xk 1 )
( k  1,2,)
称为正割法迭代公式, 相应的迭代法称为正割 法。

26
§2.4 弦截法
 三 . 弦截法几何意义
正割法也称弦截法,其 几何意义是用过曲线上 两
点P0 ( x0 , f ( x0 ))、P1 ( x1 , f ( x1 ))的割线来代替曲线,
用割线与 x轴交点的横坐标作为方 程的近似根 x2
再过P1点和点P2 ( x2 , f ( x2 )) P1

作割线求出 x3,再过 P2点 y=f(x)

和点P3 作割线求出 x4,依


x0 x2 x3 x1
此类推,当收敛时可求 出 x *

P3
满足精度要求的 xk P0 P2

27
§2.4 弦截法
 例:用弦截法解方程的根
3
x  3x  1  0
f (x k )
由弦截法 xk 1  xk  (x k  x k  1 )
f (x k )  f (x k  1 )

取初值 x 0  0.5,得
弦截法迭代 5 次
x0=0.5; x1=0.4; x4 = 0.3472965093
-8
x2 = 0.3430962343 x5 = 0.3472963553 达到精度 10
x3 = 0.3473897274 x6 = 0.3472963553

28
输 入 x 0 , x 1 ,,ε ,N

§2.4 弦截法 1 k

 四 . 弦截法算法实现 f (x0)  0 ?
y
x0  x 2

n
y
f (x1)  0 ? x1  x 2

n
y

k+ 1 k f (x1)  f (x0)  0 ?
x1  x0 n
x2  x1
f(x f (x1)
1) f(x 0) x1  (x1  x0)  x 2
f(x 2)  f(x 1)
f (x1)  f (x0)

y
x 2  x 1   ?

n
y
k< N ?
n
输 出 奇
输 出 迭 代 输 出 x 2 异 标 志 输 出 x 2
失 败 标 志

结 束

29
小结
 §2.1.1 引言
 §2.1.2 二分法
 §2.2.1 迭代法
 §2.2.2 迭代法的收敛速度和加速方法
 §2.3 牛顿迭代法
 §2.4 弦截法

30
第二章 作业
 1
 3
 6
 16

31

You might also like