2.3牛顿迭代法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收敛性与初始值的选取
f(x)
x1
x1
x0
x2
inflection point
x0
X
x x x 0 0 0
x*
结论:Newton法的收敛性依赖于x0 的选取。
全局收敛性定理
设 f (x)C2[a, b],若
有根
f (a) f (b) < 0
在整个[a, b]上 f (x) 0
牛顿迭代法的局部收敛性定理
设 f C 2 [a , b] 且存在数x * [a , b] ,使 f ( x* ) 0 ,若f ( x * ) 0
则存在一个数 0,对于任意初始近似值 x0 [ x* , x* ]
使得由如下迭代定义的序列 xk k 0 收敛到 x*
f(xi ) 0 i) f (x xi xi 1 xi 1 xi f(xi ) f (xi )
f(x)
slope=f’(xi)
[xi, f(xi)]
f (xi) f (xi)-0
root
xi+1
xi
x
xi- xi+1
一、牛顿法及其几何意义
基本思路:将非线性方程f(x)=0 线性化 取x0作为初始近似值,将f(x)在x0做Taylor展开:
f ( x) x2 5 g( x ) x x f ( x ) 2x
x 2
5 x
即x k 1
5 xk xk 2
取x0 2代入有
5 2 2 2.25 x1 2
5 2.25 2.25 2.236111111 x2 2
5 2.236111111 2.236067978 x3 2 5 2.236067978 2.236067978 2.236067978 x4 2 2.236111111
根唯一
f (x)在 [a, b]上不变号 选取初始值x0 [a, b] 使得 f (x0) f (x0) > 0 则由Newton法产生的序列{ xk } 单调地收敛到 f (x)=0 在 [a, b] 的唯一根x*,且收敛速度至少是二阶的 保证Newton迭代函 数将[a,b]映射于自身 保证产生的序列 {xk}单调有界
f ( xk ) xk 1 x k ( xk xk 1 ) f ( xk ) f ( x k 1 )
每步只用一新点,此格式为双点割线法。即两步迭 代法.
1 可以证明它的收敛阶为 p (1 5) 1.618 。 2 f ( xk ) 确实比式 xk 1 xk 收敛快. M f ( xk ) ( xk xk 1 ) 将式 xk 1 xk f ( xk ) f ( x k 1 )
1 | g ( x*) | 1 1 Answer1: 有局部收敛性 m
思考题2
当x* 是 f (x)=0的m重根, 是否平方收敛?
m( x x
*
f '( x)
*
) q( x) ( x x ) q '( x)
*
m1
m
x
k 1
x xk x (xk x )
f ( k ) 0 f ( x*) f ( xk ) f ( xk )( x * xk ) ( x * xk ) 2 2!
由Taylor 展开:
令k ,由 f (x*) 0,即可得结论。
思考题1
若 f ( x*) 0 ,Newton法是否仍收敛?
设 x* 是 f 的 m 重根,则令: f ( x) ( x x ) q( x)
* m
且
q( x*) 0
f ( x) f ( x) g ( x) f ( x)
* 2 q( x)[m(m 1)q( x) 2m( x x )q ( x) ( x x ) q( x)] * 2 [mq( x) ( x x )q ( x)] *
四、割线法
在牛顿迭代法中,每次都要计算两个函数:f ( pk 1 ) 和 f ( pk 1 ) 在无现代计算机代数软件包之前,计算基本函数的导数是比较 困难的,因此,需要一种与牛顿法的收敛速度差不多,但不用
计算的方法 f ( x )
主要方法: ☆简化牛顿法
☆割线法
简化牛顿迭代法
1、简化牛顿迭代法
x 2
7 x
即xk 1
7 xk xk 2
取x0 3代入有
7 2 2 2.25 x1 2
5 2.25 2.25 2.236111111 x2 2
三、计算实例及其程序演示
(1) 选定初值x0 ,计算f (x0) , f (x0) (2) 按公式 xk 1 得新的近似值xk+1 (3) 对于给定的允许精度,如果 | xk 1 xk | 则终止迭代,取 x* xk 1;否则k=k+1,再转 步骤(2)计算
高等数值分析
牛顿迭代法
牛顿法及几何意义
局部收敛性定理
牛顿迭代法的应用举例 算法思想实现过程
Newton’s Method
Extend tangent line from current approximation [xi, f(xi)] to where it crosses the x axis
x4 -x3 2.236067978 2.236067978 0.0005
5 x4 2.236067978
练习
用牛顿平方根求 7 的近似值。从 x0 3 开始
2 2 f ( x ) x 7, x 7 0 的根为 7 .则 令 方程 解:
f ( x) x2 7 g( x ) x x f ( x ) 2x
*
*
f '( x k )
*
f (xk)
(m 1)q ( x k ) ( x k x )q '( x k ) mq ( x k ) ( x k x )q '( x k )
*
*
lim
k
k 1 k
lim
k
x k 1 x xk x
*
m 1 m
Answer2: 线性收敛
重复上述过程
xk 1
f ( xk ) xk f ( xk )
牛顿法基本思想
Tangent line : y f ( x0 ) f ( x0 )( x x0 )
y
f ( x0 ) x1 x0 f ( x0 )
x*
x2
x
x1 x0
牛顿法也称为切线法
f ( x1 ) x2 x1 f ( x1 )
证明:以 f ' ( x) 0, f "( x) 0, f ( x ) 0 为例证明
0
将f(x*)在 xk 处作Taylor展开
* *
f "(k ) * 0=f ( x ) f ( xk ) f '( xk )( x xk ) ( x xk )2 2!
f ( xk ) f "( k ) * x xk ( x xk ) 2 f '( xk ) 2 f '( xk )
f ( x k 1 ) x k g ( x k 1 ) x k 1 f ( x k 1 )
f ( x) 注:1. g( x ) x 称为牛顿迭代函数。 f ( x)
至少平方收敛
2. f ( x* ) 0 则 g( x* ) x*———不动点
证明牛顿法的收敛性
* * ( x , x ) 因此可找到一个数 0,在区间 内,使
g( x) 1
f ( xk ) f (k ) 2 x* xk ( x * xk ) f ( xk ) 2 f ( xk ) x * xk 1 f (k ) 2 ( x * xk ) 2 f ( xk )
f ( x) g( x ) x f ( x )
g ( x ) 1 f ( x ) f ( x ) f ( x ) f ( x )
f ( x )
2
f ( x ) f ( x ) 2 f ( x)
又∵f(x*)=0,则g’(x*)=0,又g’(x)是连续的,
pk 为:lim k
A
证:令 f ( x) x2 A, 方程 x 2 A 0 的根为 A .则
A x f ( x) x2 A x g( x ) x x f ( x ) 2x 2
例题
用牛顿平方根求 5 的近似值。误差限为0.0005
2 2 f ( x ) x 5, x 5 0 的根为 5 .则 令 方程 解:
( ) f 2 证:f ( x ) f ( x ) f ( x )( x x ) ( x x ) 0 0 0 0 2!
令x
x*代入
f ( ) * f ( x ) f ( x0 ) f ( x0 )( x x0 ) ( x x0 ) 2 2!
f ( x0 ) 0 f ( x*) f ( x0 ) f ( x0 )( x * x0 ) x* x0 f ( x0 )
f ( x0 ) x1 x0 作为第一次近似值 f ( x0 )
f ( ) Newton f ( x) f ( x0 ) f ( x0 )( x x0 ) ( x x0 ) 2 2! 迭代公式
*
f "( k ) * xk 1 ( x xk ) 2 xk 1 2 f '( xk )
说明数列{xk}有下界
x
*
f ( x0 ) 又 x1 x0 x0 f '( x0 )
f ( xk ) xk 1 xk xk f '( xk )
故{xk}单调递减, 从而{xk}收敛.令
f ( xk ) xk 迭代 f ( xk )
允许精度
最大迭代 迭代信息
Matlab代码
function [k,x,err,p]=Newtonpt(f,df,p0,epsilon,max1) p(1)=p0; for k=2:max1 p(k)=p(k-1)-feval(f,p(k-1))/feval(df,p(k-1)); err=abs(p(k)-p(k-1)); relerr=err/abs(p(k)+eps); x=p(k); if(err<epsilon)|(relerr<epsilon) break; end end if k==max1 disp(‘超出最高迭代次数’); end p=p’
lim x
k k
f ( ) 对迭代公式两边取极限,得 f '( )
推论(求平方根的迭代法)
设A为实数,且A>0,而且令 x0 0为 用下列递归规则
xk 1 xk 2 A xk
A 的初始近似值。使
, k 0,1, 2,
定义序列 { xk } ,则序列 收敛到 A .也可表示 { x } k 0 k k 0
* *
若
x0 足够逼近
x ,则最后一项远比前两项的和小。因此
Fra Baidu bibliotek
*
0 f ( x*) f ( x0 ) f ( x0 )( x * x0 )
* x 即 x0 f ( x0 ) / f ( x0 ) 可用来定义根的下一个近似值
f ( x0 ) x1 x0 作为第一次近似值 f ( x0 )
, 在牛顿迭代公式中用一常数 M 代替 f ( xk ) 得
f ( xk ) xk 1 xk ( k 0,1,) M
f ( pk ) pk 1 pk ( k 0,1,) M
此式称为简化牛顿迭代公式。 只要 M 选择得当,上式总是线性收敛的.
割线(弦截)法
用常数 M 来代替 f ( xk )虽然简单,但没充分 利用 f (x)本身的特性,因此收敛较慢。 f ( x k ) f ( x k 1 ) 若在牛顿迭代公式中改用差商 x k x k 1 代替导数 f (xk) ,得迭代公式