1 / 33
文档名称:

数值分析实验报告.doc

格式:doc   大小:126KB   页数:33页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数值分析实验报告.doc

上传人:164922429 2019/11/1 文件大小:126 KB

下载得到文件列表

数值分析实验报告.doc

相关文档

文档介绍

文档介绍:数值分析实验报告(第二章)实验题目:分别用二分法、牛顿迭代法、割线法、史蒂芬森迭代法求方程fx=x2+1x-15=0的根x=1,观察不同初始值下的收敛性,并给出结论。问题分析:题目有以下几点要求:不同的迭代法计算根,并比较收敛性。选定不同的初始值,比较收敛性。实验原理:各个迭代法简述二分法:取有根区间[a,b]的重点x0,确定新的有根区间[a1,b1]的区间长度仅为[a,b]区间长度的一版。对压缩了的有根区间[a1,b1]重复以上过程,又得到新的有根区间[a2,b2],其区间长度为[a1,b1]的一半,如此反复,……,可得一系列有根区间,区间收敛到一个点即为根。牛顿迭代法:不动点迭代法的一种特例,具有局部二次收敛的特性。迭代格式为xn+1=xn-fxnf'xn,n=0,1,2,…割线法:是牛顿法的改进,具有超线性收敛的特性,+1=xn-fxnfxn-fxn-1xn-xn-1,n=1,2,…史蒂芬森迭代法:采用不动点迭代进行预估校正。至少是平方收敛的。迭代格式为yn=φxnzn=φynxn+1=xn-(yn-xn)2zn-2yn+xn这里φx可采用牛顿迭代法的迭代函数。实验内容:写出该问题的fx函数代码如下:functionpy=f(x)symsk;y=(k^2+1)*(k-1)^5;yy=diff(y,k);py(1)=subs(y,k,x);py(2)=subs(yy,k,x);end分别写出各个迭代法的迭代函数代码如下:二分法:functiony=dichotomie(a,b,e)i=2;m(1)=a;whileabs(a-b)>et=(a+b)/2;s1=f(a);s2=f(b);s3=f(t);ifs1(1)*s3(1)<=0b=t;elsea=t;endm(i)=t;i=i+1;endy=[t,i+1,m];end牛顿迭代法:functiony=NewtonIterative(x,e)i=2;en=2*e;m(1)=x;whileabs(en)>=es=f(x);t=x-s(1)/s(2);en=t-x;x=t;m(i)=t;i=i+1;endy=[x,i+1,m];end牛顿割线法:functiony=Secant(x1,x2,e)i=3;m(1)=x1,m(2)=x2;whileabs(x2-x1)>=es1=f(x1);s2=f(x2);t=x2-(x2-x1)*s2(1)/(s2(1)-s1(1));x1=x2;x2=t;m(i)=t;i=i+1;endy=[x2,i+1,m];end史蒂芬森迭代法:Functionp=StephensonIterative(x,e)i=2;m(2)=x;en=2*e;whileabs(en)>=ey=fai(x);z=fai(y);t=x-(y-x)^2/(z-2*y+x);en=t-x;x=t;m(i)=t;i=i+1;endp=[x,i+1,m];end因为φx经常被使用,故可以写一个φx函数。代码如下:functiony=fai(x)s=f(x);y=x-s(1)/s(2);end可以绘制不同的图形来比较不同迭代法的收敛性和不同初值下的收敛性。代码如下:clearall;%相同初始值,不同迭代法下的收敛x1=dichotomie(0,3,1e-10);x2=NewtonIterative(0,1e-10);x3=Secant(0,2,1e-10);x4=StephensonIterative(0,1e-10);[x1(2),x2(2),x3(2),x4(2)]figure,subplot(2,2,1),plot(x1(3:x1(2))),title('二分法');subplot(2,2,2),plot(x2(3:x2(2))),title('牛顿迭代法');subplot(2,2,3),plot(x3(3:x3(2))),title('牛顿割线法');subplot(2,2,4),plot(x4(3:x4(2))),title('史蒂芬森迭代法');figure,subplot(2,2,1),plot((x1(4:x1(2)-1)-x1(1))./(x1(3:x1(2)-2)-x1(1))),title('二分法');subplot(2,2,2),plot((x2(4:x2(2)-1)-x2(1))./(x2(3:x2(2)-2)-x2(1))),title('牛顿迭代法');subplot(2,2,3),plot((x3(4:x3(2)-1)-x3(1))./(x3(3:x3(2)-2)-x3(1))),title('牛顿割线法');subplot(2,2,4),plot((x4(4:x4(2)-1)-x4(1))./(x4(3:x