数值分析上机实习题答案.docx_第1页
数值分析上机实习题答案.docx_第2页
数值分析上机实习题答案.docx_第3页
数值分析上机实习题答案.docx_第4页
数值分析上机实习题答案.docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

数值分析2017-2018 第二学期上机实习题 1:编程计算, 其中c= 4.494210307, 给出并观察计算结果,若有问题,分析之。解:matlab编程如下:图一:编程 图二:运行结果Matlab中,format long g 对双精度,显示15位定点或浮点格式,由上图可知,当输入较小的n值(n分别取10,100,1000,100000,100000000)的时候,结果后面的指数中总是含有e-308,这和题目中的C值很相似,我认为是由于分母中的C值相对于n值过大,出现了“大数吃小数”的现象,这是不符合算法原则的。2:利用牛顿法求方程于区间的根,考虑不同初值下牛顿法的收敛情况。解:牛顿法公式为:xk+1=xk-xk-lnxk-21-1xk利用matlab编程当输入初值=3的时候并不能收敛。输入2.8依旧不能收敛。考虑利用plot函数绘制函数f=x-lnx-2的图像,发现其在区间2,4内并无根。3:给出 在xk=0+0.25k处的值yk, k=0,1,2,3,4. 请给出由节点 xk 确定的三次样条插值函数S(x), 使其满足条件:S/(0)=0, S/(1)=-0.074, 分析逼近效果如何?解:根据李庆扬数值分析第五版Page43的公式可以计算得到三次样条插值。根据6.11和6.12式解得系数。d058.5366d117.15728d28.67705d32.0934d40.905136列方程 A*M=B;A=B=解得M为M=由此和6.8式可得其三次样条函数如下:得到最终的插值结果如下:总的来说,利用三次样条插值的精度还是比较高的。4:给出一个通用多项式拟合程序,输入部分:数据组个数为n, 拟合的误差限e输出部分:多项式次数、系数向量、拟合的实际误差。function A c eff= zxec( )x=input(请输入变量x:);y=input(请输入变量y:);e=input(请输入拟合限差:);for i=1:10 A=polyfit(x,y,i);%A为拟合多项式系数向量 Y=polyval(A,x);%Y为拟合多项式 if sum(Y-y).2) A,c,eff=zxec请输入变量x:1 2 3 4 5 6 7 8 9 10请输入变量y:1.3 3.5 4.2 5.0 7.0 8.8 10.1 12.5 13.0 15.6请输入拟合限差:2.50 1 1.5382 -0.3600 2.3447A = 1.5382 -0.3600c = 1eff = 2.3447 实例拟合结果如下图所示:由以上拟合结果可知,在给定的限差的情况下,拟合结果为一次,得到的实际误差达到2.3447,可见拟合效果并不是很理想。如果继续缩小误差限差值,那么拟合次数将会增加,拟合的结果也将会更加趋近于真实结果。5:已知,利用复化梯形公式、复化Simpson公式和Romberg算法求的近似值;并观察实际计算结果,比较它们的收敛速度。解:复化梯形公式计算结果分析:从结果中不断改进等分点的个数,可以看出复化梯形公式的结果需要等分至少20点才能开始收敛,若想收敛到精确值,则需要增加区间等分点数。function Y=fhdx()n=input(请输入要等分x区间的个数:);h=1/n;s=0;for k=1:n-1 x=k*h; y=4/(1+x2); s=2*y+s; Y=h/2*(6+s); hold on ; plot(x,Y,r*); grid on;end程序代码:复化Simpson公式计算结果function Y = fhsimpson()n=input(请输入将x区间等分的个数:);h=1/n;s1=0;s2=0;for k=1:2*n-1 x=k*h/2; y=4/(1+x2); if mod(k,2)=0 s1=s1+2*y; else s2=s2+4*y; end Y=h/6*(6+s1+s2); hold on; plot(x,Y,r*);end分析:从结果图中可以看出对于复化Simpson公式,只需要对区间等分两次(即n=2)就可以得到非常理想的结果,说明复化Simpson公式的收敛速度非常快。程序代码:Romberg算法分析:Romberg算法根据给定的限差可以直接得出收敛值,收敛速度快。function s=romberg1(a,b,eps)if nargin=2 eps=1.0-6;elseif nargin=eps area=0.0; h=(b-a)/2(n-1); for i=1:(2(n-1) area=area+0.5*h*(rombergff(a+h*(i-1)+rombergff(h*i+a); end t(n,1)=area; for j=2:n for i=1:(n-j+1) t(i,j)=(4(j-1)*t(i+1,j-1)-t(i,j-1)/(4(j-1)-1); end end t1=t(1,n); t2=t(1,n-1); n=n+1;ends=t1;retur nfunction y=rombergff(x)y=4/(1+x2);程序代码:6:用Runge-Kutta 4阶算法对初值问题y/=-20*y,y(0)=1按不同步长求解,用于观察稳定区间的作用。注:此方程的精确解为:y=e-20x解:结果分析:便于比较的直观性,将龙格库塔值求出并与精确值一同绘制出来,在步长h分别取0.1,0.025,0.01时,显示如下:h=0.1h=0.025h=0.01结果图中,虚线为龙格库塔值所成,小圆圈为真实值。从以上三幅图中可以清晰地看到,当步长取大了,误差较大,取小了,误差较少。龙格库塔法尽管可以达到较高的精度,但由于计算较为复杂,如在4阶算法中,每计算一步就要调用4次f(x,y),固运算量大。程序代码:clear;h=0.01;%步长x0=0;x1=1;%x的范围x=x0:h:x1;y=zeros(1,length(x);y(1)=1;%y(0);Fxy=(t,y)(-20*y);for i=1:(length(x)-1) k1=Fxy(x(i),y(i); k2=Fxy(x(i)+0.5*h,y(i)+0.5*k1*h); k3=Fxy(x(i)+0.5*h),(y(i)+0.5*k2*h); k4=Fxy(x(i)+h),y(i)+k3*

温馨提示

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

评论

0/150

提交评论