牛顿迭代法求解非线性方程组的解_第1页
牛顿迭代法求解非线性方程组的解_第2页
牛顿迭代法求解非线性方程组的解_第3页
牛顿迭代法求解非线性方程组的解_第4页
牛顿迭代法求解非线性方程组的解_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数值计算实习报告非线性方程组的牛顿迭代解法姓名:吴健学号:139084186班级:数132非线性方程组的数值解法摘要本文着重介绍了求解单变量非线性方程/(%) = 0的牛顿迭代法理论和 MATLAB求解过程.其中二分法、不动点迭代等也是常用的解非线性方程组的重 要工具本文把牛顿迭代法推广到非线性方程组,对于方程变量及个数相当大时, 很难通过运算得出结果,此时采用MATLAB中的Jac命令很好的避免牛顿迭 代法中所遇到的丿血。勿矩阵难求的问题。关键词:非线性方程组、牛顿迭代法、MATLAB、“20亦矩阵一、刖百非线性方程组在实际问题中经常出现并且在科学与工程计算中的地位越来 越来重要.很多常见的

2、线性模型都是在一定条件下由非线性问题简化得到的.为 得到更符合实际的解答,往往需要直接研究非线性模型.然而从线性到非线性是 一个质的飞跃.方程的性质的不同.所以求解方法也有很大差别。本文主要介绍 关于非线性方程及方程组的数值解法,先分析非线性方程的数值解法.然后再延 伸到方程组的解法。本文以如下多元非线性方程组为例.尝试寻找一种数值方法求解该方程组。3.x; - cos(x2x3)- = 0x/ - 81(x2 + 0.1)' + sin x3 + 1.06= 0e + 20A. + -1=033二、线性方程与非线性方程线性方程的形式如(2-Dy = kx + b而对于这类问题己经完全

3、地被解决了.而诸如函数/(x)是多项式函数.即/W =唧 + q 严 + + j(2-2)其中“。工0山(=0丄/)为实数.当/(%)= 0称为”次代数方程。这类方程当舁5时就不能直接用公式表示方程的根,所以只好选用数值解代替。还有一类 函数成为超越函数.如严 smlOx=O(2一3)它在整个X轴上有无穷多个解.若X的取值范围不同.解也不同.所以在讨论非 线性方程的求解问题时.必须强调X的定义域.即X的求解区间a.b.超越函数都可以通过多项式函数插值得到故解非线性方程归结为求解多项 式函数的解或者是直接求解超越函数。三、求解非线性方程的其他方法1、二分法考察有根区间a,b取中点x°

4、= (d + b)/2将它分成两半.假设中点X。不是 /W的零点然后进行根的搜索,即检查/(X。)与/(d)是否同号,如果确系同号. 则说明所求根F在X。的右侧.这时令m = x°,b,=b;否则x必在心的左侧.这时 令廿砧严。.对于压缩了的有根区间,俎进行如上用样的操作,直到找到方 程的根。2、不动点迭代法将方程f(x) = 0(V1)改写成等价的形式X =傾x),若要求F满足/(/) = 0,则X =(P(x)(3-2)反之亦然.称F为函数傾弋)的一个不动点.求f(x)的零点就等价于求傾x)的不动 点,选择一个初始值将它代入=(p(x)的右端.即可求得兀=傾兀),如此 反复迭代计

5、算忑* =卩(忑)* = 0,1,(3-3)这时的傾x)称为迭代函数如果对Vxoe«,/?,有lini x, = x(3-4)kK k成立,则称迭代方程母刊二炭兀)收敛,且(3-2)为傾Q的不动点,故称为不动点迭 代法。其基本思想是将隐式方程X二傾X)归结为一组显示的计算公式(3-3).就是 说.迭代过程实质上是一个逐步显示化的过程。3、线性近似法线性近似法中比较突出的有牛顿法、弦截法等,牛顿法的基本思想是将非线 性方程f(x) = 0逐步归结为某种线性方程來求解。设心,心.|是/(%) = 0的近似根我们利用/(母)JC也)构造一次插值多项式Pi(x)并用/A(x) = 0的根作为

6、f(x) = 0的新的近似根X”由于(3-5)因此有/(忑)(兀-g)(3-6)由下文中的牛顿迭代法会知道,这里的迭代公式可以看作牛顿公式(3-7)中的导数f5)用差商/5)一/(3)取代的结果,这种算法成为弦截法。4、上述算法的缺点二分法:收敛速度慢.且无法知道是否有重根。不动点迭代法:收敛与否或收敛快慢取决于函数x = .v)的性质。弦截法:在牛顿法中只需要两个节点,弦截法需要找三个节点.收敛速度慢.要 求初始值的选取靠近方程的根.否则也可能会不可能.四、牛顿法1、牛顿法思想设己知方程f(x) = 0有近似根心(假定/(忑)工0)将函数/(x)在点心展开,有« /(母)+ f U

7、)(X-xk)(4-1)于是方程/(x) = 0可以近似地表示为(4-2)(43)/(母)+ /(切匕-母)=0式(4-2)是线性方程.记其根为心七则心+的计算公式为船5)这就是牛顿法.亦称为切线法。牛顿法的几何意义如下图所示,方程f(x) = 0的根F可解释为曲线y = /(.t)与x轴的交点的横坐标。设心是根x的某个近似值.过曲线y= f(x) ±横坐标为 "的点人引切线,并将该切线与x轴的交点的横坐标x比作为F的新的近似值。注意到切线方程为)'=/(母)+ f (忑)(X 母)(4-4)这样求得的值X叶比满足/(xj+/(xj(x-xj = o.从而就是牛顿公

8、式(4-5)的计算结果。由几何意义.牛顿法亦称为切线法。图4J2、牛顿法的算法步骤步骤一:准备,选定初始近似值X。,计算/o = /(o)Jo =/'U)5令k=0步骤二:迭代,按公式XX.-fQ/fQ迭代一次,得新的近似值心,计算z=/w> f;=fz再分别赋值给m f0 = fo步骤三:判断,如果|-x0|<le-5则终止迭代,以心作为所求的根;否则转步骤四步骤四:修改.如果迭代次数达到预先指定的次数N或者力=0 则方法失败;否则以(心久/)代替(心九,人)转步骤二继续迭代。例:求方程/(x) = x3-x-l = 0在x0 = 1.5附近的根.解:结果如下表所示:迭代

9、次数01O3456初始值1. 50001. 25001. 35801. 31041. 33101. 32201. 3258迭代值1. 25001. 35801. 31041. 33101. 32201. 32591.3242误差值0. 25000. 10800. 04760. 02060. 00890. 00390. 00173、牛顿法的改进牛顿法的缺点:一是每次迭代都要计算和兀)和f(xj计算量较大且有时/'(H)计算较困难;二是初始近似儿只在根F附近才能保证收敛.如果耳给的不 合适可能不收敛.为克服这两个缺点通常有下述方決°1°简化牛顿法简化牛顿法又称平行弦法,

10、其迭代公式为忑七=母一(母),°工0,« = °,(4-7)从不动点迭代法的角度看.简化牛顿法的迭代函数(p(x) = x-Cf(x)t下面讨论简化牛顿法的收敛性。若|0(x)冃1-即取0 vb<2.在根附近成立.则迭代法兀+i = Xk_Cf (xk)局部收敛在3 =忑一 Cf g中取C =1/ Uo)则称为简化牛顿法。其几何意义是用斜率为f(X。)的平行弦与X轴的交点作为X的近似.如图所示:2“牛顿下山法牛顿法收敛性依赖于初值凡的选取.如果X。偏离所求根F较远.则牛顿法(4-8)可能发散。为了防止迭代发散,对迭代过程再附加一个要求,即具有单调性:1/(和

11、)|<|/(忑)1满足此要求的算法称为下山法。将牛顿法和下山法一起使用时.即在下山法保证函数值稳定下降的前提下.用牛顿法加快收敛速度。为此.为此将牛顿法的计算结果(4 9)与前一步的近似值兀的适当加权平均作为新的改进值(4-10)忑+i =入“七 + (1 A)xk其中/1(O<A<1)称为下山因子.X" = /id +1 + (1 - A)xk即为(441)称为牛顿下山法。选择下山因子时从兄=1开始.逐次将兄减半进行试算,直到能使下降条件(4-8)成立。五、算法实施例1、求方程/(x) = x5-x-l=O在= 1.5附近的根.解:(1)二分法/(I) = -1&

12、lt;0. /=5>0.故取区间1,2则由二分法的算法得MATLAB程序:函数值1, 21,1. 51.25, 1.51.25, 1.3751.3125, 1.3751.3125, 1 34381.3125, 1.3281/(«)-11-0.29690. 29690. 0515-0. 0515-0.051550. 87500. 87500. 22460. 22460. 08260. 0147误差值10.50. 250. 1250. 06250. 031250.015625(2)不动点迭代法:根据不动点迭代法的思想.取迭代函数3 =慎石,则有结果如下表:迭代次数1234567迭代

13、函数(x+l)A (1/3)135721.33091325913249132481324713247误差值0.14280.02630.00500.00100.00010.00010.0000六、推广牛顿法到非线性方程组求解考虑方程组YU,X-,£) = 0£) = 0其中/,£均为(S,兀)的多元函数.若向量记号X = (x1?x2, -sX,)7 gR" , F = f,f,y、方程组就可以写成F(X) = 0(6-2)当心2 ,且/(心1,2,/)中至少有一个是自变量兀(21,2,/)的非线性函数时.则称方程组(64)为非线性方程组.非线性方程组是非

14、线性科学的重要组成部分关于非线性方程组的解法至关 重要的.其基本思想是:将单个方程的牛顿法直接用于方程组(6-2)则可得到解非线性方程组的牛顿 迭代法(6 3)Xu+1) = X(k>- F'(Xk>)lF(X(k>)yk = 0,1,其中,F(X)-1是非线性方程组的co仞矩阵的逆矩阵.具体计算时记先解线性方程组F(Xa,)AXa,=-F(Xa),求出向量AX",再令XE = X“+ W注:Jacobi矩阵为F(.x) =M(x)%期(X) 西(X) 03孔筋(x)(6 4)既(x)dx.七、非线性方程组牛顿法实例例2:应用牛顿迭代法解论文前言中给出的非线

15、性方程组即(1J)式.3斗 _ cosgxJ - * = 0x/ - 81(孔 + 0.1)2 + sin .v3 +1.06= 0e_ + 20x. + -1 = 0 33解:由MATLAB实现程序结果如下:初始值X0=0;0;0Xl=l;l;lX2=-5;-6;-7迭代结果X=0.5;0;-0.5236X=05:0; 0.5236无结果迭代次数68100注:对于不同的初值可能得到的结果会不一样.这里不再一一说明.因为前文己 经论述了为什么会出现这种情况。八、大型非线性方程组求解非线性方程组所含未知元个数和方程个数较大时求方程组的兀3仞矩阵会 计算繁琐.效率低.考虑借助于MATLAB去寻找j

16、acobi矩阵的数值解.通过 MATLAB己有的皿必c命令去处理。程序实现:clear;clc;format long g;F=(t# x) 3*x (1) -cos (x (2) *x (3) )-l/2;x(l) A2-81* (x(2)+0.1) 2+sin (x (3) ) +1 06;exp (-x(l) *x (2) ) +20*x (3) +10*pi/3-l;x0=0;0;0;dF=(xO) numjac (F,Q, 0; 0;0 r F(0f xO)/le-5);F (0rx0)dF (xO)for it=l:100xl=x0-dF (xO) A (-1) *F (0, xO

17、);if norm (xl-xO)<le-8 break;endx0=xl;enditxl实验结果:ans-1.50. 2510.4719755119662.9996O374832153000-16.1990523338318000.99986791610717820.0033187866211it =130.6283856025504960.00585544524587999-0.657862818749681与这个问题直接使用刀co勿矩阵所得到的结果没什么区别所以用 co仞矩阵的 数值解去替代.也可以得到很好地结果。九、附录: 程序一:二分法程序clc;clear; format l

18、onga=l;b=2;f=(x) xA3-x-l;fa=f(a);fb=f(b);c=(a+b)/2;fc=f(c);if fa大fb>Or breaks endwhile abs(fc)>le-6c=(a+b)/2;fc=f(c);if fb*fc>0b=c;fb=fc;elsea=c;fa=fc;endendfx=fcf x=c实验结果:Fx=l. 759583065918946-07X=1.324717998504639程序二:不动点迭代程序function xc,numr eps = fpi(gz x0f phir step) if nargin<3phi = le-6;endif nargin<4step = 100;endpreNum=xO;num = 0;eps = 1;while eps>phiaftet?Num=g (puNum);eps = abs (afterNum-puNum);preNum = afterNum;num = num+1;if num > stepdisp超过迭代次数.可能不收敛Tbreak;endendxc = aft erNum; clear;dc;format long;g=(x) (x+1)八(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论