牛顿法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中 (0 ) 称为下山因子,(4.11)即为
xk 1 xk f ( xk ) f ( xk ) ( k 0,1, ),
(4.12)
(4.12)称为牛顿下山法. 选择下山因子时从 1 开始,逐次将 减半进行试 算,直到能使下降条件(4.10)成立为止.
9
取初值 x0 10,对 C 115 按(4.5)式迭代3次 便得到精度为 10 6 的结果 (见表7-6). 由于公式(4.5)对任意 初值 x0 0 均收敛,并且收 敛的速度很快,因此可取确定 的初值如 x0 1 编成通用程序.
7.4.3
简化牛顿法与牛顿下山法
牛顿法的优点是收敛快,缺点一是每步迭代要计算 f ( xk )及 f ( xk ) ,计算量较大且有时 f ( xk ) 计算较困难, 二是初始近似 x0 只在根 x *附近才能保证收敛,如 x0 给 的不合适可能不收敛.
满足这项要求的算法称下山法. 将牛顿法与下山法结合起来使用,即在下山法保证函 数值稳定下降的前提下,用牛顿法加快收敛速度. 将牛顿法的计算结果
13
xk 1 xk
f ( xk ) f ( xk )
与前一步的近似值 xk
适当加权平均作为新的改进值 (4.11)
xk 1 xk 1 (1 ) xk ,
2
注意到切线方程为
y f ( xk ) f ( xk )( x xk ).
这样求得的值 xk 1 必满足(4.1),从而就是牛顿公式(4.2) 的计算结果. 由于这种几何背景,牛顿法亦称切线法. 牛顿法(4.2)的收敛性,可直接由定理4得到,对(4.2) 其迭代函数为
( x) x
取迭代初值 x0 0.5 ,迭代结果列于表7-5中.
4
所给方程(4.4)实际上是 方程 x e x 的等价形式. 若用 不动点迭代到同一精度要迭代 17次,可见牛顿法的收敛速度 是很快的. 牛顿法的计算步骤: 步骤1
f 0 f ( x0 ).
表7 5 计算结果 k 0 1 2 3 xk 0.5 0.57102 0.56716 0.56714
只要 f ( xk ) 0仍可用牛顿法(4.2)计算,此时迭代函数
( x) x
f ( x) f ( x)
的导数为
( x*) 1
1 0 m
且 ( x*) 1,所以牛顿法求重根只是线性收敛.
若取
16
( x) x m
f ( x) , f ( x)
表7 7 三种方法数值结果 k 1 2 3 xk x1 x2 x3 方法( ) 1 1.458333333 1.436607143 1.425497619 方法(2) 1.416666667 1.414215686 1.414213562 方法(3 ) 1.411764706 1.414211438 1.414213562
12
但如果改用 x0 0.6 作为迭代初值,则依牛顿法公式 (4.9)迭代一次得
x1 17.9.
这个结果反而比 x0 0.6 更偏离了所求的根 x* 0.32472 . 为了防止迭代发散,对迭代过程再附加一项要求,即 具有单调性:
f ( xk 1 ) f ( xk ) .
(4.10)
( x)
( x x*) g ( x) , mg ( x) ( x x*) g ( x)
故 x *是 ( x) 0 的单根.
对它用牛顿法,其迭代函数为
17
( x) x
( x) f ( x) f ( x) x . 2 ( x) [ f ( x)] f ( x) f ( x)
10
在(4.7)中取C
1 f ( x0 )
,则称为简化牛顿法,这
类方法计算量省,但只有线性收敛,其几何意义是用平行 弦与 x 轴交点作为 x *的近似. 如图7-4所示.
图7-4
11
(2)
牛顿下山法.
x 如果0 偏离所求根
牛顿法收敛性依赖初值 x0的选取. x* 较远,则牛顿法可能发散. 例如,用牛顿法求方程
6
7.4.2
牛顿法应用举例
x 2 C 0,
对于给定的正数 C,应用牛顿法解二次方程
可导出求开方值 C 的计算程序
xk 1 1 C ( xk ). 2 xk
(4.5)
这种迭代公式对于任意初值 x0 0 都是收敛的. 事实上,对(4.5)式施行配方手续,易知
xk 1 xk 1 1 C ( xk 2 xk C 1 ( xk 2 xk C )2 ; C )2.
7.4 7.4.1
牛顿法 牛顿法及其收敛性
牛顿法是一种线性化方法,其基本思想是将非线性方 程 f ( x) 0逐步归结为某种线性方程来求解. 设已知方程 f ( x) 0 有近似根 xk(假定 f ( xk ) 0), 将函数 f (x) 在点 xk 展开,有
f ( x) f ( xk ) f ( xk )( x xk ),
于是方程 f ( x) 0 可近似地表示为
f ( xk ) f ( xk )( x xk ) 0.
(4.1)
这是个线性方程,记其根为 xk 1 ,则 xk 1的计算公式为
1
xk 1 xk
f ( xk ) f ( xk )
( k 0,1, ),
(4.2)
这就是牛顿(Newton)法. 牛顿法的几何解释. 方程 f ( x) 0 的根 x * 可解释为曲线 y f (x) 与 x 轴 的交点的横坐标(图7-3). 设 xk 是根 x *的某个近似值, 过曲线 y f (x) 上横坐标为 xk 的点 Pk 引切线,并将该切线与 x 轴的交点的横坐标 xk 1 作为 x * 的新的近似值. 图7-3
为克服这两个缺点,通常可用下述方法.
(1) 简化牛顿法,也称平行弦法.
xk 1 xk Cf ( xk )
其迭代公式为 (4.7)
C 0,1 ,.
迭代函数 ( x) x Cf ( x).
若在根 x * 附近成立 ( x) 1 Cf ( x) 1 ,即取 0 Cf ( x) 2,则迭代法(4.7)局部收敛.
x 3 x 1 0.
(4.8)
在 x 1.5 附近的一个根 x *. 设取迭代初值 x0 1.5,用牛顿法公式
xk 1
3 xk xk 1 xk 2 3 xk 1
(4.9)
x3 1.32472.
计算得
x1 1.34783, x2 1.32520,
迭代3次得到的结果 x3 有6位有效数字.
若用此法解方程(4.8),当 x0 0.6 时由(4.9)求得
14
x1 17.9,它不满足条件(4.10).
通过 逐次取半进行试算,当 1 / 32时可求得 f x1 1.140625 此时有 ( x1 ) 0.656643,而 ( x0 ) 1.384 f . 显然 f ( x1 ) f ( x0 ) . 由 x1 计算 x2 , x3 , 时 1 , 成立. 计算结果如下 :
3
又因
( x*)
f ( x*) , ( x*) f
故由(2.9)可得
lim xk 1 x * f ( x*) . k ( x x*) 2 2 f ( x*) k
(4.3)
例7 解
用牛顿法解方程
xex 1 0.
(4.4)
这里牛顿公式为
xk 1 xk e x k xk , 1 xk
准备 迭代
x0 f0 选定初始近似值 ,计算 f ( x0 ),
步骤2
按公式
x1 x0 f 0 / f 0
Biblioteka Baidu
迭代一次,得新的近似值 x1,计算 f1 f ( x1 ), f1 f ( x1 ). 步骤3 控制
x1 如果 满足 1
f 或 1 2 ,则终
5
止迭代,以 x1作为所求的根;否则转步骤4. 允许误差,而
xk 1
2 xk 2 xk . 4 xk
2 是二重根,
(1) 牛顿法
18
(2) 用(4.13)式
xk 1
2 xk 2 xk . 2 xk 2 xk ( xk 2) xk . 2 xk 2
(3) 用(4.14)式 xk 1
取初值 x0 1.5,计算结果如表7-7.
则 ( x*) 0
xk 1 xk m
.
f ( xk ) f ( xk )
用迭代法
( k 0,1, )
(4.13)
求 m重根,则具有2阶收敛,但要知道 x *的重数 m .
构造求重根的迭代法,还可令 ( x) f ( x) / f ( x) , 若 x * f ( x) 0 的 m重根,则 是
x2 1.36181, x3 1.32628, x4 1.32472,
均能使条件(4.10)
f ( x2 ) 0.1866; f ( x3 ) 0.00667; f ( x4 ) 0.0000086.
x4 即为 x *的近似. 一般情况只要能使条件(4.10)成立, 则可得到 lim f ( xk ) 0 ,从而使 {xk } 收敛.
k
15
7.4.4
重根情形
设 f ( x) ( x x*)m g ( x),整数 m 2, g ( x*) 0 ,则 x *为方程 f ( x) 0 的 m 重根,此时有
f ( x*) f ( x*) f
( m 1)
( x*) 0, f
m
( x*) 0.
f ( x) , f ( x)
由于
( x)
f ( x) f ( x) . 2 [ f ( x)]
假定 x *是 f (x) 的一个单根,即 f ( x*) 0, f ( x*) 0 , 则由上式知 ( x*) 0 ,于是依据定理4可以断定,牛顿法 在根 x *的邻近是平方收敛的.
19
计算三步,方法(2)及(3)均达到10位有效数字, 而用牛顿法只有线性收敛,要达到同样精度需迭代30次.
20
7.5
弦截法与抛物线法
用牛顿法求方程(1.1)的根,每步除计算 f ( xk ) 外 还要算 f ( xk ),当函数 f (x) 比较复杂时,计算 f (x) 往 往较困难,为此可以利用已求函数值 f ( xk ), f ( xk 1 ), 来回避导数值 f ( xk ) 的计算. 7.5.1 弦截法 设 xk , xk 1 是 f ( x) 0的近似根,利用 f ( xk ), f ( xk 1 ) 构造一次插值多项式 p1 ( x),并用 p1 ( x) 0的根作为新的 近似根 xk 1 . 由于
x1 x0 x1 x0 x1 当 x1 C时; 当 x1 C时,
此处1 , 2 是
其中 C是取绝对误差或相对误差的控制常数,一般可取 C 1.
N 步骤4 修改 如果迭代次数达到预先指定的次数 , 或者 f1 0 ,则方法失败;否则以 ( x1 , f1 , f1) 代替 ( x0 , f 0 , f 0) 转步骤2继续迭代.
8
xk
C 2 C
q2
k
1 q
2k
.
对任意 x0 0,总有 q 1,故由上式推知,当 k 时 xk C ,即迭代过程恒收敛. 例8 解 求 115 .
表7 6 计算结果 k 0 1 2 3 4 xk 10 10.750000 10.723837 10.723805 10.723805
7
以上两式相除得
xk 1 xk 1 xk C x C k C . C
2
据此反复递推有
xk 1 xk 1 x0 C x C 0 C C .
2k
(4.6)
记
q x0 x0 C , C
整理(4.6)式,得
从而可构造迭代法
xk 1 xk f ( xk ) f ( xk ) [ f ( xk )]2 f ( xk ) f ( xk ) (k 0,1, ),
(4.14) 它是二阶收敛的. 例9 方程x 4 4 x 2 4 0 的根x* 用上述三种方法求根. 解 先求出三种方法的迭代公式: