数值分析非线性方程的牛顿法
(Newton Method of Nonlinear Equations )
邹秀芬教授数学与统计学院内容提纲( Outline)
牛顿法及其几何意义
收敛性及其收敛速度
计算实例及其程序演示取 x0作为初始近似值,将 f(x)在 x0做 Taylor展开,
2
0 0 0 0
()( ) ( ) ( ) ( ) ( )
2!
ff x f x f x x x x x
0 0 00 ( * ) ( ) ( ) ( * )f x f x f x x x
0
0
0
()*
()
fxxx
fx
1
()
()
k
kk
k
fx
xx
fx?
重复上述过程?
0
10
0
()
()
fxxx
fx
作为第一次近似值一、牛顿法及其几何意义
Newton
迭代公式基本思路,将非线性方程 f(x)=0 线性化牛顿法的几何意义
x
y
x*
x0
0
10
0
()
()
fxxx
fx
x 1x
2
0 0 0,( ) ( ) ( )T a n g e n t l i n e y f x f x x x
1
21
1
()
()
fxxx
fx牛顿法也称为切线法
( 局部收敛性定理 ) 设 f (x)?C2[a,b],若 x* 为 f (x)
在 [a,b]上的根,且 f?(x*)? 0,则存在 x* 的邻域使得任取初始值,Newton 法产生的序列
{ xk } 收敛到 x*,且满足
( *)Ux?
0 ( * )x U x
1
2
| * | | ( * ) |l i m
| * | 2 | ( * ) |
k
k
k
xx fx
x x f x
至少平方收敛二、牛顿法的收敛性与收敛速度
()()
()
fxg x x
fx
2
( * ) ( * )( * ) 0 1
( * )
f x f xgx
fx
在 x*的附近 收敛由 Taylor 展开:
2()0 ( * ) ( ) ( ) ( * ) ( * )
2!
k
k k k k
ff x f x f x x x x x
2( ) ( )* ( * )
( ) 2 ( )
kk
kk
kk
f x fx x x x
f x f x
1
2
* ( )
( * ) 2 ( )
kkx x f
x x f x
令 k,由 f?(x*)? 0,
即可得结论。
证明,Newton法 实际上是一种特殊的迭代法思考题 1 若,Newton法 是否仍收敛?( * ) 0fx
设 x* 是 f 的 m 重根,则令:
且
*( ) ( ) ( )mf x x x q x
( * ) 0qx?
* * 2
*2
( ) ( )
()
()
( ) [ ( 1 ) ( ) 2 ( ) ( ) ( ) ( ) ]
[ ( ) ( ) ( ) ]
f x f x
gx
fx
q x m m q x m x x q x x x q x
m q x x x q x
1| ( * ) | 1 1gx
m
Answer1,有局部收敛性
Answer2,线性收敛思考题 2 当 x* 是 f (x)=0的 m重根,是否平方收敛?
1**'( ) ( ) '( )( ) ( )mmmf x q x q xxxxx**
1
*
*
*
()
'( )
( 1 ) ( ) ( ) '( )
()
( ) ( ) '( )
k
kk
k
k k k
k
k k k
f
f
m q q
m q q
x
x x x x
x
x x x x
xx
x x x x
*
11
*
1l im l im kk
kk k
k
m
m
xx
xx
结论,Newton法的收敛性依赖于 x0的选取。
x*
x0?x0? x0?
有根根唯一全局收敛性定理 (定理 3.3.1),设 f (x)?C2[a,b],若
(1) f (a) f (b) < 0;
(2)在整个 [a,b]上 f?(x)? 0;
(3) f(x)在 [a,b]上不变号
(4) 选取初始值 x0? [a,b] 使得 f(x0) f (x0) > 0;
则由 Newton法产生的序列 { xk } 单调地收敛到
f (x)=0 在 [a,b] 的唯一根 x*,且收敛速度至少是二阶的保证 产生的序列
{xk}单调有界保证 Newton迭代函数 将 [a,b]映射于自身将 f(x*)在 xk 处作 Taylor展开
* * * 2" ( ) 0 = ( ) ( ) ' ( ) ( ) ( )
2!
k
k k k k
ff x f x f x x x x x
对迭代公式两边取极限,得 ()
'( )
f
f
0
00
0
1
()
'( )
fxx x x
fx又证明,以 0)(,0)(",0)('
0 xfxfxf
为例证明
* * 2
*2
1 1
( ) " ( )
( )
'( ) 2 '( )
" ( )
()
2 '( )
kk
kk
kk
k
k
k
k k
f x f
x x x x
f x f x
f
x x x x
fx
说明数列 {xk}有下界 *x
1
()
'( )
k
k k k
k
fxx x x
fx
故 {xk}单调递减,从而 {xk}收敛,令
kk
xl i m
?
三,计算实例及其程序演示辅助工具,
VC程序设计语言
Matlab数学软件
(1) 选定初值 x0,计算 f (x0),f?(x0)
计算步骤
(2) 按公式 迭代得新的近似值 xk+11
()
()
k
kk
k
fxxx
fx
(3) 对于给定的允许精度?,如果则终止迭代,取;否则 k=k+1,再转步骤 (2)计算
* 1kxx
1||kkxx
允许精度最大迭代次数迭代信息例题 1
用 Newton法求方程 的根,要求20xxe 51| | 1 0kkxx
1 l n ( 2 )kkxx迭代格式一:
迭代格式二:
1
2
1
k
k
x
k
kk x
xexx
e?
取初值 x0= 0.0,计算如下:
对迭代格式一,the iterative number is 27,the
numerical solution is 0.442852706
对迭代格式二,the iterative number is 3,the
numerical solution is 0.442854401
例题 2
求函数 的正实根精度要求:
32 1 0 1 9,6 8 1 0,9 4 4f x x x x
610
从图形中我们可以看出:
在 x=7和 x=8 之间有一单根;
在 x=1和 x=2 之间有一重根。
用 Matlab画图,查看根的分布情形
初值 x0= 8.0时,计算的是单根,The
iterative number is 28,The numerical
solution is 7.600001481
初值 x0= 1.0,计算的是重根,The
iterative number is 1356,The numerical
solution is 1.198631981
取初值 x0= 8.0,用牛顿迭代公式计算如下:
取初值 x0= 1.0,用牛顿迭代公式计算如下:
小结
(1) 当 f (x)充分光滑且 x* 是 f (x) =0的单根时,牛顿法在 x*的附近至少 是平方收敛的。
(2) 当 f (x)充分光滑且 x* 是 f (x) =0的重根时,牛顿法在 x*的附近 是线性收敛的。
(3) Newton法在区间 [a,b]上的收敛性依赖于初值
x0 的选取。
解非线性方程组的牛顿法 1 1 2
2 1 2
12
(,,) 0
(,,) 0
(,,) 0
n
n
nn
f x x x
f x x x
f x x x
( ) 0Fx?记 为,
将非线性方程组线性化,得到:
其中 F?(xk)为 F(x)在 xk处的 Jacobi矩阵:
1 1 1
12
2 2 2
12
12
()
n
n
n n n
n
f f f
x x x
f f f
x x xFx
f f f
x x x
11 ( ) ( )k k k kx x F x F x=
2
22
1
( ) 2
3
xy
x y z
F x x y z y x
e z e
2
( ) 2
1
xy
y x z
F x y z x z y x z
ee
2
22
1
2
3
xy
x y z
x y z y x
e z e
例:用牛顿法解方程组取初始值( 1,1,1),计算如下
N x y z
0 1.0000000 1.0000000 1.00000000
1 2.1893260 1.5984751 1.3939006
2 1.8505896 1.4442514 1.2782240
3 1.7801611 1.4244359 1.2392924
4 1.7776747 1.4239609 1.2374738
5 1.7776719 1.4239605 1.2374711
6 1.7776719 1.4239605 1.2374711
练习:
3,Newton 迭代法是如何推出的? 它若在单根附近收敛,是几阶收敛?在重根附近是几阶收敛?求方程重根时,能达到 2阶收敛的改进 Newton 迭代公式是什么
1,用牛顿法求方程 在区间 [1,2] 内的一个实根,要求 5
1 10kkxx
324 1 0 0f x x x
2,导出求立方根 的迭代公式,并讨论其收敛性。3a
课本作业,P160,第 7,8,9题首先导出求根方程,再对 使用牛顿法得迭代公式,用全局收敛性定理或局部收敛性定理讨论其收敛性。
3 0xa 3f x x a
1 2
2
33nn n
axx
x
(Newton Method of Nonlinear Equations )
邹秀芬教授数学与统计学院内容提纲( Outline)
牛顿法及其几何意义
收敛性及其收敛速度
计算实例及其程序演示取 x0作为初始近似值,将 f(x)在 x0做 Taylor展开,
2
0 0 0 0
()( ) ( ) ( ) ( ) ( )
2!
ff x f x f x x x x x
0 0 00 ( * ) ( ) ( ) ( * )f x f x f x x x
0
0
0
()*
()
fxxx
fx
1
()
()
k
kk
k
fx
xx
fx?
重复上述过程?
0
10
0
()
()
fxxx
fx
作为第一次近似值一、牛顿法及其几何意义
Newton
迭代公式基本思路,将非线性方程 f(x)=0 线性化牛顿法的几何意义
x
y
x*
x0
0
10
0
()
()
fxxx
fx
x 1x
2
0 0 0,( ) ( ) ( )T a n g e n t l i n e y f x f x x x
1
21
1
()
()
fxxx
fx牛顿法也称为切线法
( 局部收敛性定理 ) 设 f (x)?C2[a,b],若 x* 为 f (x)
在 [a,b]上的根,且 f?(x*)? 0,则存在 x* 的邻域使得任取初始值,Newton 法产生的序列
{ xk } 收敛到 x*,且满足
( *)Ux?
0 ( * )x U x
1
2
| * | | ( * ) |l i m
| * | 2 | ( * ) |
k
k
k
xx fx
x x f x
至少平方收敛二、牛顿法的收敛性与收敛速度
()()
()
fxg x x
fx
2
( * ) ( * )( * ) 0 1
( * )
f x f xgx
fx
在 x*的附近 收敛由 Taylor 展开:
2()0 ( * ) ( ) ( ) ( * ) ( * )
2!
k
k k k k
ff x f x f x x x x x
2( ) ( )* ( * )
( ) 2 ( )
kk
kk
kk
f x fx x x x
f x f x
1
2
* ( )
( * ) 2 ( )
kkx x f
x x f x
令 k,由 f?(x*)? 0,
即可得结论。
证明,Newton法 实际上是一种特殊的迭代法思考题 1 若,Newton法 是否仍收敛?( * ) 0fx
设 x* 是 f 的 m 重根,则令:
且
*( ) ( ) ( )mf x x x q x
( * ) 0qx?
* * 2
*2
( ) ( )
()
()
( ) [ ( 1 ) ( ) 2 ( ) ( ) ( ) ( ) ]
[ ( ) ( ) ( ) ]
f x f x
gx
fx
q x m m q x m x x q x x x q x
m q x x x q x
1| ( * ) | 1 1gx
m
Answer1,有局部收敛性
Answer2,线性收敛思考题 2 当 x* 是 f (x)=0的 m重根,是否平方收敛?
1**'( ) ( ) '( )( ) ( )mmmf x q x q xxxxx**
1
*
*
*
()
'( )
( 1 ) ( ) ( ) '( )
()
( ) ( ) '( )
k
kk
k
k k k
k
k k k
f
f
m q q
m q q
x
x x x x
x
x x x x
xx
x x x x
*
11
*
1l im l im kk
kk k
k
m
m
xx
xx
结论,Newton法的收敛性依赖于 x0的选取。
x*
x0?x0? x0?
有根根唯一全局收敛性定理 (定理 3.3.1),设 f (x)?C2[a,b],若
(1) f (a) f (b) < 0;
(2)在整个 [a,b]上 f?(x)? 0;
(3) f(x)在 [a,b]上不变号
(4) 选取初始值 x0? [a,b] 使得 f(x0) f (x0) > 0;
则由 Newton法产生的序列 { xk } 单调地收敛到
f (x)=0 在 [a,b] 的唯一根 x*,且收敛速度至少是二阶的保证 产生的序列
{xk}单调有界保证 Newton迭代函数 将 [a,b]映射于自身将 f(x*)在 xk 处作 Taylor展开
* * * 2" ( ) 0 = ( ) ( ) ' ( ) ( ) ( )
2!
k
k k k k
ff x f x f x x x x x
对迭代公式两边取极限,得 ()
'( )
f
f
0
00
0
1
()
'( )
fxx x x
fx又证明,以 0)(,0)(",0)('
0 xfxfxf
为例证明
* * 2
*2
1 1
( ) " ( )
( )
'( ) 2 '( )
" ( )
()
2 '( )
kk
kk
kk
k
k
k
k k
f x f
x x x x
f x f x
f
x x x x
fx
说明数列 {xk}有下界 *x
1
()
'( )
k
k k k
k
fxx x x
fx
故 {xk}单调递减,从而 {xk}收敛,令
kk
xl i m
?
三,计算实例及其程序演示辅助工具,
VC程序设计语言
Matlab数学软件
(1) 选定初值 x0,计算 f (x0),f?(x0)
计算步骤
(2) 按公式 迭代得新的近似值 xk+11
()
()
k
kk
k
fxxx
fx
(3) 对于给定的允许精度?,如果则终止迭代,取;否则 k=k+1,再转步骤 (2)计算
* 1kxx
1||kkxx
允许精度最大迭代次数迭代信息例题 1
用 Newton法求方程 的根,要求20xxe 51| | 1 0kkxx
1 l n ( 2 )kkxx迭代格式一:
迭代格式二:
1
2
1
k
k
x
k
kk x
xexx
e?
取初值 x0= 0.0,计算如下:
对迭代格式一,the iterative number is 27,the
numerical solution is 0.442852706
对迭代格式二,the iterative number is 3,the
numerical solution is 0.442854401
例题 2
求函数 的正实根精度要求:
32 1 0 1 9,6 8 1 0,9 4 4f x x x x
610
从图形中我们可以看出:
在 x=7和 x=8 之间有一单根;
在 x=1和 x=2 之间有一重根。
用 Matlab画图,查看根的分布情形
初值 x0= 8.0时,计算的是单根,The
iterative number is 28,The numerical
solution is 7.600001481
初值 x0= 1.0,计算的是重根,The
iterative number is 1356,The numerical
solution is 1.198631981
取初值 x0= 8.0,用牛顿迭代公式计算如下:
取初值 x0= 1.0,用牛顿迭代公式计算如下:
小结
(1) 当 f (x)充分光滑且 x* 是 f (x) =0的单根时,牛顿法在 x*的附近至少 是平方收敛的。
(2) 当 f (x)充分光滑且 x* 是 f (x) =0的重根时,牛顿法在 x*的附近 是线性收敛的。
(3) Newton法在区间 [a,b]上的收敛性依赖于初值
x0 的选取。
解非线性方程组的牛顿法 1 1 2
2 1 2
12
(,,) 0
(,,) 0
(,,) 0
n
n
nn
f x x x
f x x x
f x x x
( ) 0Fx?记 为,
将非线性方程组线性化,得到:
其中 F?(xk)为 F(x)在 xk处的 Jacobi矩阵:
1 1 1
12
2 2 2
12
12
()
n
n
n n n
n
f f f
x x x
f f f
x x xFx
f f f
x x x
11 ( ) ( )k k k kx x F x F x=
2
22
1
( ) 2
3
xy
x y z
F x x y z y x
e z e
2
( ) 2
1
xy
y x z
F x y z x z y x z
ee
2
22
1
2
3
xy
x y z
x y z y x
e z e
例:用牛顿法解方程组取初始值( 1,1,1),计算如下
N x y z
0 1.0000000 1.0000000 1.00000000
1 2.1893260 1.5984751 1.3939006
2 1.8505896 1.4442514 1.2782240
3 1.7801611 1.4244359 1.2392924
4 1.7776747 1.4239609 1.2374738
5 1.7776719 1.4239605 1.2374711
6 1.7776719 1.4239605 1.2374711
练习:
3,Newton 迭代法是如何推出的? 它若在单根附近收敛,是几阶收敛?在重根附近是几阶收敛?求方程重根时,能达到 2阶收敛的改进 Newton 迭代公式是什么
1,用牛顿法求方程 在区间 [1,2] 内的一个实根,要求 5
1 10kkxx
324 1 0 0f x x x
2,导出求立方根 的迭代公式,并讨论其收敛性。3a
课本作业,P160,第 7,8,9题首先导出求根方程,再对 使用牛顿法得迭代公式,用全局收敛性定理或局部收敛性定理讨论其收敛性。
3 0xa 3f x x a
1 2
2
33nn n
axx
x