牛顿迭代法求解非线性方程组的解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
| f ( xk 1 ) || f ( xk ) |
(4-8)
满足此要求的算法称为下山法。 将牛顿法和下山法一起使用时,即在下山法保证函数值稳定下降的前提下, 用牛顿法加快收敛速度。为此,为此将牛顿法的计算结果
xk 1 xk f ( xk ) f ' ( xk )
(4-9)
与前一步的近似值 xk 的适当加权平均作为新的改进值
xk 1 xk Cf ( xk ) 局部收敛,在 xk 1 xk Cf ( xk ) 中取 C
1 ,则称为简化牛 f ( x0 )
'
顿法。Biblioteka 其几何意义是用斜率为 f ' ( x0 ) 的平行弦与 x 轴的交点作为 x* 的近似,如图所示:
图 4-2
2 o 牛顿下山法
牛顿法收敛性依赖于初值 x0 的选取,如果 x0 偏离所求根 x* 较远,则牛顿法 可能发散。为了防止迭代发散,对迭代过程再附加一个要求,即具有单调性:
f1 f ( x1 ) , f1' f ' ( x1 ) ;再分别赋值给 f 0 f1 , f 0 ' f '1

步骤三: 判断, 如果 | x1 x0 | 1e 5 ,则终止迭代,以 x 1 作为所求的根; 否则转步骤四 步骤四: 修改, 如果迭代次数达到预先指定的次数 N ,或者 f1' 0 ,则方 法失败;否则以 ( x1 , f1 , f1' ) 代替 ( x0 , f0 , f 0' ) 转步骤二继续迭代。 例:求方程 f ( x) x3 x 1 0 在 x0 1.5 附近的根. 解:结果如下表所示:
迭代次数 初始值 迭代值 误差值 0 1.5000 1.2500 0.2500 1 1.2500 1.3580 0.1080 2 1.3580 1.3104 0.0476 3 1.3104 1.3310 0.0206 4 1.3310 1.3220 0.0089 5 1.3220 1.3259 0.0039 6 1.3258 1.3242 0.0017
xk 1 ( xk ), k 0,1,
(3-3)
这时的 ( x) 称为迭代函数.如果对 x0 [a, b] ,有
k
lim xk x*
(3-4)
成立,则称迭代方程 xk 1 ( xk ) 收敛,且(3-2)为 ( x) 的不动点,故称为不动点迭 代法。其基本思想是将隐式方程 x ( x ) 归结为一组显示的计算公式(3-3),就是 说,迭代过程实质上是一个逐步显示化的过程。 3、线性近似法 线性近似法中比较突出的有牛顿法、弦截法等,牛顿法的基本思想是将非线 性方程 f ( x) 0 逐步归结为某种线性方程来求解。 设 x k , x k 1 是 f ( x) 0 的近似根, 我们利用 f ( xk ) , f ( xk 1 ) 构造一次插值多项式
能使下降条件(4-8)成立。 五、算法实施 例 1、求方程 f ( x) x3 x 1 0 在 x0 1.5 附近的根. 解: (1) 二分法
f (1) 1 0 ,f (2) 5 0 , 故取区间 [1, 2] , 则由二分法的算法得 MATLAB 程序:
函数值 [1,2] [1,1.5] [1.25,1 .5]
3、牛顿法的改进 牛顿法的缺点:一是每次迭代都要计算 f ( xk ) 和 f ' ( xk ) ,计算量较大且有时
f ' ( xk ) 计算较困难; 二是初始近似 x0 只在根 x* 附近才能保证收敛,如果 x0 给的不
合适可能不收敛。为克服这两个缺点,通常有下述方法。
10 简化牛顿法
简化牛顿法又称平行弦法,其迭代公式为
f (a ) f (b)
[1.25,1.3 75] -0.2969 0.2246 0.125
[1.3125,1 .375] -0.0515 0.2246 0.0625
[1.3125,1 .3438] -0.0515 0.0826 0.03125
[1.3125,1.3 281] -0.0515 0.0147 0.015625
x k 的点 Pk 引切线,并将该切线与 x 轴的交点的横坐标 x k 1 作为 x* 的新的近似值。
注意到切线方程为
y f ( xk ) f ' ( xk )( x xk )
(4-4)
这样求得的值 x k 1 比满足 f ( xk ) f ' ( xk )( x xk ) 0 ,从而就是牛顿公式
f ( x ) 的零点, 然后进行根的搜索, 即检查 f ( x0 ) 与 f ( a ) 是否同号, 如果确系同号,
则说明所求根 x* 在 x 0 的右侧,这时令 a1 x0 , b1 b ;否则 x* 必在 x 0 的左侧,这时 令 a1 a, b1 x0 .对于压缩了的有根区间 [a1 , b1 ] 进行如上用样的操作,直到找到方 程的根。 2、不动点迭代法 将方程
xk 1 xk Cf ( xk ), C 0, k 0,1,
(4-7)
从不动点迭代法的角度看,简化牛顿法的迭代函数 ( x) x Cf ( x) ,下面讨论简 化牛顿法的收敛性。 若 | ' ( x) ||1 Cf ' ( x) | 1 ,即取 0 Cf ' ( x) 2 .在根 x* 附近成立,则迭代法
f ( x) f ( xk ) f ' ( xk )( x xk )
(4-1)
于是方程 f ( x) 0 可以近似地表示为
f ( xk ) f ' ( xk )( x xk ) 0
(4-2)
式(4-2)是线性方程,记其根为 x k 1 ,则 x k 1 的计算公式为
(3-6)
由下文中的牛顿迭代法会知道,这里的迭代公式可以看作牛顿公式
x
k 1
xk
f ( xk ) f ' ( xk )
(3-7)
中的导数 f ' ( xk ) 用差商 4、上述算法的缺点
f ( xk ) f ( xk 1 ) 取代的结果,这种算法成为弦截法。 xk xk 1
二分法:收敛速度慢,且无法知道是否有重根。 不动点迭代法:收敛与否或收敛快慢取决于函数 x ( x ) 的性质。 弦截法:在牛顿法中只需要两个节点,弦截法需要找三个节点,收敛速度慢,要 求初始值的选取靠近方程的根,否则也可能会不可能。 四、牛顿法 1、牛顿法思想 设已知方程 f ( x) 0 有近似根 x k (假定 f ' ( xk ) 0 ) ,将函数 f ( x ) 在点 x k 展 开,有
(2-1)
而对于这类问题已经完全地被解决了,而诸如函数 f ( x ) 是多项式函数,即
f ( x) a0 xn a1xn1 an1x an
(2-2)
其中 a0 0, ai (i 0,1,
, n) 为实数,当 f ( x) 0 称为 n 次代数方程。这类方程当
n 5 时就不能直接用公式表示方程的根,所以只好选用数值解代替。还有一类
函数成为超越函数,如
e x /10 sin10 x 0
(2-3)
它在整个 x 轴上有无穷多个解,若 x 的取值范围不同,解也不同,所以在讨论非 线性方程的求解问题时,必须强调 x 的定义域,即 x 的求解区间 [ a, b] 。 超越函数都可以通过多项式函数插值得到, 故解非线性方程归结为求解多项 式函数的解或者是直接求解超越函数。 三、求解非线性方程的其他方法 1、二分法 考察有根区间 [ a, b] ,取中点 x0 (a b) / 2 将它分成两半,假设中点 x0 不是
-1 5 1
-1 0.8750 0.5
-0.2969 0.8750 0.25
误差值
(2)不动点迭代法: 根据不动点迭代法的思想,取迭代函数 xk 1 3 xk 1 ,则有结果如下表:
迭代次数 迭代函数
(x+1)^(1/3)
1 1.3572
2 1.3309
3 1.3259
4 1.3249
5 1.3248
xk 1 x k 1 (1 ) xk
其中 (0 1) 称为下山因子, xk 1 x k 1 (1 ) xk 即为
xk 1 xk f ( xk ) , k 0,1, f ' ( xk )
(4-10)
(4-11)
称为牛顿下山法。选择下山因子时从 1 开始,逐次将 减半进行试算,直到
x
k 1
xk
f ( xk ) k 0,1, f ' ( xk )

(4-3)
这就是牛顿法,亦称为切线法。 牛顿法的几何意义如下图所示,方程 f ( x) 0 的根 x* 可解释为曲线 y f ( x) 与 x 轴的交点的横坐标。设 x k 是根 x* 的某个近似值,过曲线 y f ( x) 上横坐标为
6 1.3247
7 1.3247
误差值
0.1428
0.0263
0.0050
f ( x) 0
(3-1)
改写成等价的形式 x ( x ) ,若要求 x* 满足 f ( x* ) 0 ,则
x* ( x* )
(3-2)
反之亦然.称 x* 为函数 ( x) 的一个不动点.求 f ( x ) 的零点就等价于求 ( x) 的不动 点,选择一个初始值 x 0 ,将它代入 x ( x ) 的右端,即可求得 x1 ( x0 ) ,如此 反复迭代计算
1 3 x1 cos( x2 x3 ) 0 2 2 2 x1 81( x2 0.1) sin x3 1.06 0 10 e x1x2 20 x3 1 0 3
二、线性方程与非线性方程 线性方程的形式如
y kx b
数值计算实习报告
——非线性方程组的牛顿迭代解法
姓名:吴健 学号:139084186 班级:数 132
非线性方程组的数值解法
摘要
本 文 着 重 介 绍 了 求 解 单 变 量 非 线 性 方 程 f ( x) 0 的 牛 顿 迭 代 法 理 论 和 MATLAB 求解过程,其中二分法、不动点迭代等也是常用的解非线性方程组的重 要工具, 本文把牛顿迭代法推广到非线性方程组, 对于方程变量及个数相当大时, 很难通过运算得出结果,此时采用 MATLAB 中的 numjac 命令很好的避免牛顿迭 代法中所遇到的 jacobi 矩阵难求的问题。 关键词:非线性方程组、牛顿迭代法、MATLAB、 jacobi 矩阵 一、前言 非线性方程组在实际问题中经常出现, 并且在科学与工程计算中的地位越来 越来重要, 很多常见的线性模型都是在一定条件下由非线性问题简化得到的,为 得到更符合实际的解答, 往往需要直接研究非线性模型,然而从线性到非线性是 一个质的飞跃,方程的性质的不同,所以求解方法也有很大差别。本文主要介绍 关于非线性方程及方程组的数值解法,先分析非线性方程的数值解法,然后再延 伸到方程组的解法。 本文以如下多元非线性方程组为例,尝试寻找一种数值方法求解该方程组。
p1 ( x ) ,并用 p1 ( x) 0 的根作为 f ( x) 0 的新的近似根 x k 1 .由于
p1 ( x) f ( xk ) f ( xk ) f ( xk 1 ) ( x xk ) xk xk 1
(3-5)
因此有
xk 1 xk f ( xk ) ( xk xk 1 ) f ( xk ) f ( xk 1 )
x
k 1
xk
f ( xk ) f ' ( xk )
(4-5)
的计算结果。由几何意义,牛顿法亦称为切线法。
图 4-1
2、牛顿法的算法步骤 步骤一: 准备, 选定初始近似值 x 0 ,计算 f 0 f ( x0 ) , f0' f ' ( x0 ) ;令 k=0
步骤二: 迭代, 按公式 x1 x0 f0 / f0' 迭代一次,得新的近似值 x 1 ,计算
相关文档
最新文档