非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较申林坚(南昌航空大学测试与光电工程学院江西南昌330063)摘要:本文针对一个具体的非线性方程032xex进行研究,首先作出了了函数xexxf23)(的图像,大体判定其零点(即方程解)在(3,4)区间内,接着用牛顿迭代法和斯特芬森迭代法进行求解分析,牛顿法的迭代公式为)()(1kkkkxfxfxx,斯特芬森迭代法公式为),(),(,2)(21kkkkkkkkkkkyzxyxyzxyxx记录两种方法求得指定精度解所需迭代次数及所需计算时间,并对其优缺点进行了分析。关键词:非线性方程;牛顿迭代法;斯特芬森迭代法引言非线性是实际问题中经常出现的,并且在科学与工程计算中的地位越来越重要,很多我们熟悉的线性模型都是在一定条件下由非线性问题简化得到的,为得到更符合实际的解答,往往需要直接研究非线性模型,从而产生非线性科学,它是21世纪科学技术发展的重要支柱。本论文通过对特定非线性方程032xex进行求解,介绍了两种常用的迭代法牛顿迭代法和斯特芬森迭代法,详尽阐述了其各自的数学几何原理及优缺点比较,从而更深入的理解非线性方程的迭代法求解。正文一.作出)(xf的图像,确定隔根区间在Matlab中输入以下指令并回车:x=(-10:0.001:10);y=3*x.^2-exp(x);plot(x,y);gridon;-10-8-6-4-20246810-2.5-2-1.5-1-0.500.5x104图1得到图1所示)(xf的图像,易知,当10x及10x时,)(xf无零点将y轴方向放大,输入命令axis([-1010-22]),得到图2-10-8-6-4-20246810-2-1.5-1-0.500.511.52图2可知函数有三个零点,隔根区间为(-2,0),(0,2),(2,4)将x轴方向放大,输入命令axis([-24-22]),得到图3-2-101234-2-1.5-1-0.500.511.52图3可将隔根区间进一步缩小为(-1,0),(0,1),(3,4)二.牛顿迭代法求区间(3,4)中的根对于方程0)(xf,如果)(xf是线性函数,则它的求根是容易的。牛顿法实质上是一种线性化方法,其基本思想是将非线性方程0)(xf逐步归结为某种非线性方程来求解。设已知方程0)(xf有近似根kx(假定0)(kxf),将函数在点kx展开,有))(()()(kkkxxxfxfxf,于是方程0)(xf可近似表示为0))(()(kkkxxxfxf.这是个线性方程,记其根为1kx,则1kx的计算公式为,...,1,0,)()(1kxfxfxxkkkk这就是牛顿法。牛顿法有明显的几何解释。方程0)(xf的根*x可解释为曲线)(xfy与x轴的交点的横坐标。设kx是根*x的某个近似值,过曲线)(xfy上横坐标为kx的点kP引切线,并将该切线与x轴的交点的横坐标1kx作为*x的新的近似值。注意到切线方程为))(()(kkkxxxfxfy这样求得的值1kx必满足0))(()(kkkxxxfxf。由于这种几何背景,牛顿法亦称切线法。下面列出牛顿法的计算步骤:步骤1准备选定初始近似值0x,计算)(00xff,)(00xff步骤2迭代按公式0001ffxx迭代一次,得到新的近似值1x,计算)(),(1111xffxff步骤3控制如果1x满足哦1或21f,则终止迭代,以1x作为所求的根;否则转步骤4.此处21,是允许误差,而时,当时当CxxxxCxxx1101101,,,其中C是取绝对误差或相对误差的控制常数,一般可取C=1.步骤4修改如果迭代次数达到预先指定的次数N,或者01f,则方法失败;否则以),,(111ffx代替),,(000ffx转步骤2继续迭代Matlab计算程序如下,取初始迭代值0x=3:i=0;y=3;z=1;while(i=100&&z=10^(-8))x=y;y=x-(3*x^2-exp(x))/(6*x-exp(x));ifabs(y)1z=abs(y-x);elsez=abs((y-x)/y);endi=i+1;endformatlong;disp(y);disp(i);输出结果为y=3.733079028632816,i=9可知,使用牛顿迭代法,初值为3时,需迭代9次可使eps10^-8,近似解为3.73307903三.斯特芬森迭代法求区间(3,4)中的根埃特金方法不管原序列{kx}是怎样产生的,对{kx}进行加速计算,得到序列{kx}。如果把埃特金加速技巧与不动点迭代结合,可得到如下的迭代法:,...1,0,),(),(2)(12kxxyzxykkkkkxyzxykkkkkk称为斯特芬森迭代法。它可以这样理解,我们要求)(xx的根*x,令xxx)()(,0)()(***xxx,已知*x的近似值kx及ky,其误差分别为kkkkkkkkkkyzyyyxyxxx)()()()(把误差“外推到零”,即过)(,kkxx及)(,kkyy两点做线性插值函数,它与x轴交点就是1kx,即方程0)()()()(kkkkkkxxxyxyx的解122)()()()()(kkkkkkkkkkkkkxxyzxyxxyxyxxx斯特芬森迭代法的另一种表达方式如下:,...,1,0),(1kxxkk其中.)(2))(()(2xxxxxxx实验表明,即便用不动点迭代法不收敛,用斯特芬森迭代法仍可能收敛。1.取)3ln()(2xx,迭代初值为3进行迭代,Matlab程序如下:i=0;y=3;z=1;while(i=1000&&z=10^(-8))x=y;y1=log(3*x^2);y=x-(y1-x)^2/(log(3*y1^2)-2*y1+x);ifabs(y)1z=abs(y-x);elsez=abs((y-x)/y);endi=i+1;endformatlong;disp(y);disp(i);输出结果为y=3.733079028632815,i=4;可知,使用斯特芬森迭代法,取不动点函数为)3ln()(2xx,初值为3时,需迭代4次可使eps10^-8,近似解为3.73307903,与牛顿迭代法结果吻合。2.取xexxx23)(,迭代初值为3进行迭代,Matlab程序如下:i=0;y=3;z=1;while(i=1000&&z=10^(-8))x=y;y1=3*x^2-exp(x)+x;y=x-(y1-x)^2/(3*y1^2-exp(y1)+y1-2*y1+x);ifabs(y)1z=abs(y-x);elsez=abs((y-x)/y);endi=i+1;endformatlong;disp(y);disp(i);输出结果为y=3.733079028632814,i=147;可知,使用斯特芬森迭代法,取不动点函数为xexxx23)(,初值为3时,需迭代147次可使eps10^-8,近似解为3.733079033.取3)(xex,迭代初值为3进行迭代,Matlab程序如下:i=0;y=3;z=1;while(i=1000&&z=10^(-8))x=y;y1=sqrt(exp(x)/3);y=x-(y1-x)^2/(sqrt(exp(y1)/3)-2*y1+x);ifabs(y)1z=abs(y-x);elsez=abs((y-x)/y);endi=i+1;endformatlong;disp(y);disp(i);输出结果为y=3.733079028632815,i=10;可知,使用斯特芬森迭代法,取不动点函数为3)(xex,初值为3时,需迭代10次可使eps10^-8,近似解为3.73307903由以上三种不同迭代函数可知,迭代函数不同,斯特芬森迭代法的迭代次数不同。综合比较牛顿法的迭代函数固定,收敛速度较快,但求)(xf可能比较繁琐斯特芬森迭代法收敛速度快,但要选择合适的迭代函数,因次如何构造一个合适的迭代函数成为关键。参考文献[1]蔡旭晖刘卫国蔡立燕MATLAB基础与应用教程北京:人民邮电出版社2009[2]李庆扬王能超易大义数值分析(第5版)北京:清华大学出版社2008[3]高成赖志国Matlab图像处理与应用(第2版)北京:国防工业出版社2007TheresearchandcomparisonofNewton'siterativemethodandSteffenSeniterationmethodfornonlinearequationShenLinjian(NanchangInstituteoftestandoptoelectronicengineering,JiangxiUniversityofAeronauticsandAstronautics,Nanchang330063)Abstract:Inthispaper,aspecificnonlinearequationisstudied,firstly,thefunctionoftheimage,generallydetermineitszero(theequationsolution)inthe(3,4)interval,followedbyNewtoniterativemethodandSteffenSeniterationmethodforanalysis,Newtoniterativeformulafor,SteffenSeniterativeformulafortherecordofthetwomethodstoobtainthespecifiedaccuracyoftherequirednumberofiterationsandtherequiredcalculationtime,anditsadvantagesanddisadvantagesareanalyzed.Keywords:nonlinearequation;Newtoniterativemethod;SteffenSeniterationmethod个人心得体会首先,我觉得课堂教学条件比较差,那么大的一个教室坐满了人,不能保证每个学生能够听清,看清每一个知识点。因此建议以后可开展小班教学。其次,坦率得说,关于这门课的知识点,我完全是通过自学获得的,从课堂上得到的少之又少,并不是老师讲的不好,只是数学本就枯索抽象,在课堂上并不能马上领悟,因而没有兴趣继续听下去。我相信,很大一部分同学是跟我有同感的。另外,大作业这种考查形式还是不错的,并不是很难,但要花功夫。在完成大作业的过程中,其实是一个对所学知识深入在理解的过程,通过与matlab相结合,提升了自己运用所学知识解决实际问题的能力。我是比较赞同老师对学生严格要求的,但并不是给一个高高在上的目标,让学生难以企及,而是要循循善诱,但凡有一点上进心都能有所收获,在这点上我感觉郑老师做得不错。最后,我觉得在教学过程中可以引进给出问题,课堂小组讨论这种形式。让学生自己来学习。当然,这是建立在小班教学的基础上的。以上仅是个人的一点拙见,请老师参考。

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功