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

下载本文档

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

文档简介

1、华中师范大学课程结业论文题 目:非线性方程组牛顿法及 MATLA醒序院 系:数学与统计学学院专 业:数学与应用数学年 级:2014级课堂名称:数值分析(1)实验学生姓名:杨帅学 号:学142126432016年6月18非线性方程组牛顿法及其MATLA程序摘要学了数值分析这门课,了解到非线性方程的数值解法有:对分区间 法、简单迭代法、Aitken-Steffensen 加速法、Newton迭代法、正割法等,自然 就会想到非线性方程组的数值解法有哪些呢?和非线性方程的数值解法有哪些 不不同呢?在研究非线性方程组的数值解法之前,首先要给非线性方程组下 一个合理定义;n个变量n个方程(n1)的方程组表

2、示为f(xi,x2,.,xn)= 0 (其中i=1,2., n),若fi中至少有一个是非线性函数,则称上述的表本为非线性方程组。在R中记,f = f (X, 乂2,.,),,其中记 fi = fi(x) = fi(x1,., xn)且 x W D 若存在九6 D,使?(咒)=0,则称几为非线性方程组的解。上述方 程组可能有一个解或多个解,也可能有无穷多解或无解。对非线性方 程组解的存在性的研究远不如线性方程组那样成熟,现有的解法也不 象线性方程组那样有效。除极特殊的方程外,一般不能用直接方法求 得精确解,目前主要采用迭代法求近似解。根据不同思想构造收敛于 解九的迭代序列九(k=0 , 1,),

3、即可得到求解非线性方程组的各 种迭代法;但研究数学问题的时候,一般是由简单到复杂,由特殊到 一般。因此要在研究非线性方程组牛顿解法的时候,首先要探究非线性方程的牛顿解法。求解线性方程组的牛顿法及其 MATABS序程序设计思路输入的量:初始值x。、近似根xk的误差限tol ,近似根xk的函数值f(xk)得误差限ftol ,迭代次数的最大值gxmax函数fnq (x) =f (x) 及其导数 dfnq (x) =f (x)。输出的量:迭代序列xk、迭代k次得到的迭代值xk (迭代次 数超过gxmax时,运行后输出信息请注意:迭代次数超过给定的最 大值gxmax)、相邻两次迭代的偏差piancha=

4、| xk-xl和它的偏差的 相对误差 xdpiancha=| xk-xk-i|/| xk | 的值。具体操作现提供名为newtonqx.m 的M文件:function k,xk,yk,piancha,xdpiancha=newtonqx(x0,tol,ftol,gxmax)x(1)=x0;for i=1: gxmaxx(i+1)=x(i)-fnq(x(i)/(dfnq(x(i)+eps); piancha=abs(x(i+1)-x(i);xdpiancha= piancha/( abs(x(i+1)+eps); i=i+1;xk=x(i);yk=fnq(x(i); (i-1) xk yk pi

5、ancha xdpianchaif (abs(yk)ftol)&(pianchatol)|(xdpianchagxmaxdisp(请注意:迭代次数超过给定的最大值gxmax。)return ;end(i-1),xk,yk,piancha,xdpiancha;例题分析用牛顿法求解方程2xA3-3xA2+1=0 ftxo= -0.4和0.9的近似根,要 求精度s = 10A(-3).然后判断此方法分别在方程的根x*= -0.5和1 处的收敛速度.(1),先求方程白近似根.在MATLAB:作窗口输入程序k,xk,yk,piancha,xdpiancha=newtonqx(-0.4,0.001,0.0

6、01,100)运行后输出初始值x =-0.4的迭代结果如表所示.kxkyk| xk -xk -1| Xk i-1|/|Xk |1-0.516 7-0.076 70.116 70.225 82-0.500 4-0.001 60.016 30.032 63-0.500 0-0.000 00.000 40.000 7迭代次数k = 3根的近似值xk =-0.500,它的函数值yk=-1.759e-013偏差piancha=1.712e-007和相对误差 xdpiancha =3.423e-007如果将-0.4改作0.9,则运行后输出初始值x= -0.4的迭代结果为 k =7; piancha =7.

7、290e-004; xdpiancha =7.295e-004;沙=0.999;, =1.590e-006.(2),再讨论收敛速度比较初始值分别是x=-0.4和0.9的两组结果,在k=-0.4处迭代3次 就得到单根x*=-0.5的近似值xk =-0.500;而在x0 = 0.9处迭代7次 才得到二重根x1的近似值xk =0.999.可见,牛顿切线迭代法在单根 处的迭代速度比二重根处的迭代速度快很多.这正如前面讨论的结果 一样,即若x是f (x) =0的单根,则牛顿切线法是平方收敛的;若 x*是f (x) = 0的二重根,则牛顿切线法是线性收敛的;,求解二元非线性方程组的牛顿法及其MATLA叁序

8、程序设计思路:输入的量:初始值X = x,y,要求的近似根(xk,yk)的误差tol , (xk,yk)的函数值f(xk,yk),i=1,2的误差限ftol ,迭代次数的最大值ngma琳口函数fdm)=1,2及其一阶偏导数:输出的量:迭代c=k次数得到的迭代向量值 X= (x,y)、向量的函数值Y= f W, yk), f 2由,yk)、Y的2范数hanfan、迭代方程组的 系数行列式D的值、相邻两次迭代向量的2范数danfan=norm( X Xk) 和它的2范数的相对误差xddf=danfan/norm( Xr)的值(当迭代次数 超过最大值ngmax时运行后输出请注意:迭代次数超过给定的最

9、大值namax,请重新输入初始值玄:当D=0时,运行后输出信息请 注意!迭代方程组的系数行列式的值等于零)具体操作:使用两个初始值x, y,现提供名为newtonzu2.m的M文件function ci,D,danfan,xddf,hanfan,Xk,Yk=newtonzu2(X,tol,ftol,ngmax) Y=Z(X);for i=1:ngmaxdY=JZ(X);D=det(dY);A1=Y(1),dY(1,2); Y(2),dY(2,2); A=det(A1);B1=dY(1,1), Y(1); dY(2,1), Y(2);B=det(B1);Xk=X-A,B/D;hanfan=nor

10、m(Y);danfan=norm(Xk-X);xddf=danfan/(norm(Xk)+eps);X=Xk;Y=Z(X);ci=i;if D=0ci=i; Xk=X-A,B/D;Yk=Y; ci,D,danfan, xddf, hanfan , X, Y;elsedisp(请注意!迭代方程组的系数行列式的值等于零.)endif (hanfan ftol)&( danfan tol)|( xddf gxmaxdisp(请注意:迭代次数超过给定的最大值ngmax,请重新输入初始值 x0.)return ;endend例题分析:用上述迭代法求解方程组xA2+yA2=16与乂5-丫5=2(1)设 f

11、 1(x)=xA2+yA2-16f2(x) =xA2-yA2-2则 *(X,y) =2x-fl(X,y) =2y-f2(X,y) =2x-2(X,y) 2y ::xfyfxfy(2)作函数fi(x)和f2(x)的图像,输入程序syms x yF1=xA2-yA2-2;F2=xA2+yA2-16;ezplot(F1,-4,5,4.5), hold onezplot(F2,-4.5,4.5) ,hold off运行后屏幕显示如右图,取两个初始值xo=2,yo=2(3),建立并保存名为Z.m的M文件function F=Z(X)x=X(1);y=X(2); F=zeros(1,2);F(1)= xA

12、2+yA2-16; F(2)= *人2-丫人2-2;(4),建立并保存名为JZ.m的M文件function dF=JZ(X)x=X(1);y=X(2); dF=zeros(2,2);dF(1,1)=2*x; dF(1,2)=2*y;dF(2,1)=2*x; dF(2,2)=-2*y;(5),保存名为newtonzu2.m 的M文件;(6),在MATLAB:作窗口/入程序:X=2,2; k,D,danfan, xddf, hanfan , Xk, Yk= newtonzu2 (X,1e-4,1e-4,100)(7),运行后输出结果k =5D =-63.49803146638493danfan =

13、3.932201289951168e-011xddf =9.830503224877920e-012hanfan =3.336593498083849e-010Xk =2.99999999996068 2.64575131106449Yk = 1.0e-015 * 0 -0.888178419700132.2求解n元非线性方程组的牛顿法及其MATLA能序程序设计思路输入的量:初始值X0,要求的近似根Xk的误差限tol , xk的函数值fi (xk) , i =1,2,.,n的误差限ftol ,迭代次数的最大值gxmax和函 数fi (xk) , i=1,2,.,n及其一阶偏导数;输出的量:迭代

14、k次数得到的迭代向量值xk、向量的函数值fi (xk) , i=1,2,.,n及其2范数hanfan、迭代方程组的雅可比矩阵的行 列式D的值、相邻两次迭代向量的2范数danfan=norm(xk+-xk)和它 的2范数的相对误差xddf=danfan/norm( xk*)的值。(当迭代次数超 过最大值gxmax时运行后输出信息请注意:迭代次数超过给定的最 大值gxmax,请重新输入初始值;当D = 0时,运行后输出信息请注 意!迭代方程组的系数行列式的值等于零.)具体操作:使用两个初始值x0, y0,现提供名为newtonzu2.m的M文件function ci,D,danfan, xddf,

15、 hanfan , Xk, Yk= newtonzun (X, tol,ftol,gxmax) Y=Z(X);for i=1:gxmaxdY=JZ(X);D=det(dY);Xk=X-(dYY);hanfan=norm(Y);danfan=norm(Xk-X);xddf=danfan/(norm(Xk)+eps);X=Xk;Y=Z(X);ci=i;if D=0ci=i; Xk=X-(dYY);Yk=Y;ci,D,danfan,xddf,hanfan,X,Y;elsedisp(请注意!迭代方程组的系数行列式的值等于零.)endif (hanfan ftol)&( danfan tol)|( xddf gxmaxdisp(请注意:迭代次数超过给定的最大值gxmax,请重新输入初始值.)return ; end例题分析:用上述n元非线性方程组的迭代法求解方程组xA2+yA2=16与xA2-yA2=2在MATLAB工作窗口输入程序X=2,2;k,D,danfan, xddf, hanfan , Xk, Yk= newtonzun (X,1e-6,1e-6,100)运行后输出结果k=5 , D=-63.49803146638493, danfan=3.932201289951168e-011xddf=9.830503224877920e-012, hanfan=3.336593

温馨提示

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

评论

0/150

提交评论