非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较讲课教案Word文件下载.docx
《非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较讲课教案Word文件下载.docx》由会员分享,可在线阅读,更多相关《非线性方程牛顿迭代法与斯特芬森迭代法的研究与比较讲课教案Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
斯特芬森迭代法
引言
非线性是实际问题中经常出现的,并且在科学与工程计算中的地位越来越重要,很多我们熟悉的线性模型都是在一定条件下由非线性问题简化得到的,为得到
更符合实际的解答,往往需要直接研究非线性模型,从而产生非线性科学,它是21世纪科学技术发展的重要支柱。
本论文通过对特定非线性方程进行求解,介绍了两种常用的迭代法牛顿迭代法和斯特芬森迭代法,详尽阐述了其各自的数学几何原理及优缺点比较,从而更深入的理解非线性方程的迭代法求解。
正文
一.作出的图像,确定隔根区间
在Matlab中输入以下指令并回车:
x=(-10:
0.001:
10);
y=3*x.^2-exp(x);
plot(x,y);
gridon;
图1
得到图1所示的图像,易知,当及时,无零点
将y轴方向放大,输入命令axis([-1010-22]),得到图2
图2
可知函数有三个零点,隔根区间为(-2,0),(0,2),(2,4)
将x轴方向放大,输入命令axis([-24-22]),得到图3
图3
可将隔根区间进一步缩小为(-1,0),(0,1),(3,4)
二.牛顿迭代法求区间(3,4)中的根
对于方程,如果是线性函数,则它的求根是容易的。
牛顿法实质上是一种线性化方法,其基本思想是将非线性方程逐步归结为某种非线性方程来求解。
设已知方程有近似根(假定),将函数在点展开,有
,
于是方程可近似表示为
.
这是个线性方程,记其根为,则的计算公式为
这就是牛顿法。
牛顿法有明显的几何解释。
方程的根可解释为曲线与x轴的交点的横坐标。
设是根的某个近似值,过曲线上横坐标为的点引切线,并将该切线与x轴的交点的横坐标作为的新的近似值。
注意到切线方程为
这样求得的值必满足。
由于这种几何背景,牛顿法亦称切线法。
下面列出牛顿法的计算步骤:
步骤1准备选定初始近似值,计算,
步骤2迭代按公式
迭代一次,得到新的近似值,计算
步骤3控制如果满足哦或,则终止迭代,以作为所求的根;
否则转步骤4.此处是允许误差,而
其中C是取绝对误差或相对误差的控制常数,一般可取C=1.
步骤4修改如果迭代次数达到预先指定的次数N,或者,则方法失败;
否则以代替转步骤2继续迭代
Matlab计算程序如下,取初始迭代值=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)<
1
z=abs(y-x);
else
z=abs((y-x)/y);
end
i=i+1;
end
formatlong;
disp(y);
disp(i);
输出结果为y=3.733079028632816,i=9
可知,使用牛顿迭代法,初值为3时,需迭代9次可使eps<
10^-8,近似解为3.73307903
三.斯特芬森迭代法求区间(3,4)中的根
埃特金方法不管原序列{}是怎样产生的,对{}进行加速计算,得到序列{}。
如果把埃特金加速技巧与不动点迭代结合,可得到如下的迭代法:
称为斯特芬森迭代法。
它可以这样理解,我们要求的根,令,,已知的近似值及,其误差分别为
把误差“外推到零”,即过及两点做线性插值函数,它与x轴交点就是,即方程
的解
斯特芬森迭代法的另一种表达方式如下:
其中
实验表明,即便用不动点迭代法不收敛,用斯特芬森迭代法仍可能收敛。
1.取,迭代初值为3进行迭代,Matlab程序如下:
=1000&
y1=log(3*x^2);
y=x-(y1-x)^2/(log(3*y1^2)-2*y1+x);
输出结果为y=3.733079028632815,i=4;
可知,使用斯特芬森迭代法,取不动点函数为,初值为3时,需迭代4次可使eps<
10^-8,近似解为3.73307903,与牛顿迭代法结果吻合。
2.取,迭代初值为3进行迭代,Matlab程序如下:
y1=3*x^2-exp(x)+x;
y=x-(y1-x)^2/(3*y1^2-exp(y1)+y1-2*y1+x);
输出结果为y=3.733079028632814,i=147;
可知,使用斯特芬森迭代法,取不动点函数为,初值为3时,需迭代147次可使eps<
3.取,迭代初值为3进行迭代,Matlab程序如下:
y1=sqrt(exp(x)/3);
y=x-(y1-x)^2/(sqrt(exp(y1)/3)-2*y1+x);
输出结果为y=3.733079028632815,i=10;
可知,使用斯特芬森迭代法,取不动点函数为,初值为3时,需迭代10次可使eps<
由以上三种不同迭代函数可知,迭代函数不同,斯特芬森迭代法的迭代次数不同。
综合比较
牛顿法的迭代函数固定,收敛速度较快,但求可能比较繁琐
斯特芬森迭代法收敛速度快,但要选择合适的迭代函数,因次如何构造一个合适的迭代函数成为关键。
参考文献
[1]蔡旭晖刘卫国蔡立燕MATLAB基础与应用教程北京:
人民邮电出版社2009
[2]李庆扬王能超易大义数值分析(第5版)北京:
清华大学出版社
2008
[3]高成赖志国Matlab图像处理与应用(第2版)北京:
国防工业出版社2007
TheresearchandcomparisonofNewton'
siterativemethodandSteffenSeniterationmethodfornonlinearequation
ShenLinjian
(NanchangInstituteoftestandoptoelectronicengineering,JiangxiUniversityofAeronauticsandAstronautics,Nanchang330063)
Abstract:
Inthispaper,aspecificnonlinearequationisstudied,firstly,thefunctionoftheimage,generallydetermineitszero(theequationsolution)inthe(3,4)interval,followedbyNewtoniterativemethodandSteffenSeniterationmethodforanalysis,Newtoniterativeformulafor,SteffenSeniterativeformulafortherecordofthetwomethodstoobtainthespecifiedaccuracyoftherequirednumberofiterationsandtherequiredcalculationtime,anditsadvantagesanddisadvantagesareanalyzed.
Keywords:
nonlinearequation;
Newtoniterativemethod;
SteffenSeniterationmethod
个人心得体会
首先,我觉得课堂教学条件比较差,那么大的一个教室坐满了人,不能保证每个学生能够听清,看清每一个知识点。
因此建议以后可开展小班教学。
其次,坦率得说,关于这门课的知识点,我完全是通过自学获得的,从课堂上得到的少之又少,并不是老师讲的不好,只是数学本就枯索抽象,在课堂上并不能马上领悟,因而没有兴趣继续听下去。
我相信,很大一部分同学是跟我有同感的。
另外,大作业这种考查形式还是不错的,并不是很难,但要花功夫。
在完成大作业的过程中,其实是一个对所学知识深入在理解的过程,通过与matlab相结合,提升了自己运用所学知识解决实际问题的能力。
我是比较赞同老师对学生严格要求的,但并不是给一个高高在上的目标,让学生难以企及,而是要循循善诱,但凡有一点上进心都能有所收获,在这点上我感觉郑老师做得不错。
最后,我觉得在教学过程中可以引进给出问题,课堂小组讨论这种形式。
让学生自己来学习。
当然,这是建立在小班教学的基础上的。
以上仅是个人的一点拙见,请老师参考。