非线性方程实验

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

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

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

资源描述

㈠、实验目的:1、学会判断非线性方程的根的存在性、根的分布范围;2、掌握迭代法求非线性方程的根。学会比较不同方法之间的优缺点;㈡、实验题目:求非线性方程的根,精确到106,给定方程为:(i):0232exxx.㈢、实验要求:A.用你自己设计的一种线性收敛迭代法求方程(i)的根,然后再用斯蒂芬加速迭代计算。B.用牛顿法求方程(i)的根,输出迭代初值,各次迭代值及迭代次数,并与(1)的结果比较。运用不动点迭代法:当00.5,[0,1]xx时,将02*32exxx.化为x=322exx=(x)因为x[0,1],(x)[0,1]且'(x)=32exx在[0,1]内小于1,则(x)在[0,1]上存在唯一的不动点x*,使得x*=(x*);求f(x)的零点就等价于去(x)的不动点,将初始点x0=0.1代入(1)中:得:x1=(x0)反复迭代计算得:xk1=(xk),(k=0,1,……)斯蒂芬森加速迭代法:埃特金方法不管原序列是怎样产生的,对进行加速计算,得到序列,如果把埃特金加速技巧与不动点迭代结合,则可得到如下的迭代法:,,(*)称为斯蒂芬森(Steffensen)迭代法.可将它写成另一种不动点迭代(**)其中.(7.3.5)Newton迭代格式为:)()('1xxffxxkk=xk-(exxkk32)/(exk2)k=0,1,2,……实验过程源代码及运行结果Matlab程序:通过图像判断有无解:Clearformatlongfort=1:1000x(t)=0.01*t;y1(t)=x(t)^2-3*x(t)+2-exp(x(t));endy2=0;plot(x,y1,'r*',x,y2,'bo')运行:不动点迭代法:迭代公式:x=322exx=(x)MATLAB程序:clearformatlongk=1;x0(k)=0.5;x0(k+1)=(x0(k)^2+2-exp(x0(k)))/3;whileabs(x0(k+1)-x0(k))0.000001k=k+1;x0(k+1)=(x0(k)^2+2-exp(x0(k)))/3;endx0k斯蒂芬森(Steffensen)迭代法:MATLAB程序:clearformatlongx0=0.2;k=1;fi=inline('(x.^2+2-exp(x))/3','x');yk=fi(x0);zk=fi(yk);xk=x0-((yk-x0)^2)/(zk-2*yk+x0);ax(k)=xk;whileabs(xk-x0)0.000001x0=ax(k);yk=fi(x0);zk=fi(yk);xk=x0-((yk-x0).^2)/(zk-2*yk+x0);k=k+1;ax(k)=xk;endaxk运行后:牛顿迭代法:Matlab编程:clearformatlongx0=0.5;k=1;x=x0-(x0^2-3*x0+2-exp(x0))/(2*x0-3-exp(x0));whileabs(x-x0)0.000001x0=x;x=x0-(x0^2-3*x0+2-exp(x0))/(2*x0-3-exp(x0));k=k+1;endxk通过图像判断有无解:formatlongfort=1:1000x(t)=0.01*t;y1(t)=x(t)^3+2*x(t)^2+10*x(t)-20;endy2=0;plot(x,y1,'r*',x,y2,'bo')不动点迭代法:formatlongk=1;x0(k)=1.7;x0(k+1)=(20-x0(k)^3-2*x0(k)^2)/10;whileabs(x0(k+1)-x0(k))0.000000001k=k+1;x0(k+1)=(20-x0(k)^3-2*x0(k)^2)/10;endx0k结果:x0=1.7000000000000000.930700000000000k=1斯蒂芬森(Steffensen)迭代法:formatlongx0=0.2;k=1;fi=inline('(20-x^3-2*x^2)/10','x');yk=fi(x0);zk=fi(yk);xk=x0-((yk-x0)^2)/(zk-2*yk+x0);ax(k)=xk;whileabs(xk-x0)0.000001x0=ax(k);yk=fi(x0);zk=fi(yk);xk=x0-((yk-x0).^2)/(zk-2*yk+x0);k=k+1;ax(k)=xk;endaxk结果:ax=Columns1through31.1535004855314751.3556431098679771.368752853090470Columns4through51.3688081068407971.368808107821373k=5牛顿迭代法:formatlongx0=0.5;k=1;x=x0-(x0^3+2*x0^2+10*x0-20)/(3*x0^2+4*x0+10);whileabs(x-x0)0.000001x0=x;x=x0-(x0^3+2*x0^2+10*x0-20)/(3*x0^2+4*x0+10);k=k+1;endxk结果:x=1.368808107821373k=5

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

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

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

×
保存成功