数值分析
非线性方程的牛顿法
(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? ??