数值计算方法上机实习题答案_第1页
数值计算方法上机实习题答案_第2页
数值计算方法上机实习题答案_第3页
数值计算方法上机实习题答案_第4页
数值计算方法上机实习题答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

数值计算方法上机作业 热能工程1 设,(1) 由递推公式,从的几个近似值出发,计算;解:易得:ln6-ln5=0.1823,程序为:I=0.182;for n=1:20 I=(-5)*I+1/n;endI输出结果为:= -3.0666e+010(2) 粗糙估计,用,计算;因为 所以取程序为:I=0.0087;for n=1:20 I=(-1/5)*I+1/(5*n);endI= 0.0083(3) 分析结果的可靠性及产生此现象的原因(重点分析原因)。首先分析两种递推式的误差;设第一递推式中开始时的误差为,递推过程的舍入误差不计。并记,则有。因为,所此递推式不可靠。而在第二种递推式中,误差在缩小,所以此递推式是可靠的。出现以上运行结果的主要原因是在构造递推式过程中,考虑误差是否得到控制,即算法是否数值稳定。2 求方程的近似根,要求,并比较计算量。(1) 在0,1上用二分法;程序:a=0;b=1.0;while abs(b-a)5*1e-4 c=(b+a)/2; if exp(c)+10*c-20 b=c; else a=c; end endc结果:c = 0.0903(2) 取初值,并用迭代;程序:x=0;a=1;while abs(x-a)5*1e-4 a=x; x=(2-exp(x)/10;endx结果:x = 0.0905(3) 加速迭代的结果;程序:x=0;a=0;b=1;while abs(b-a)5*1e-4 a=x; y=exp(x)+10*x-2; z=exp(y)+10*y-2; x=x-(y-x)2/(z-2*y+x); b=x;endx结果:x = 0.0995(4) 取初值,并用牛顿迭代法;程序:x=0;a=0;b=1;while abs(b-a)5*1e-4 a=x; x=x-(exp(x)+10*x-2)/(exp(x)+10); b=x;endx结果:x = 0.0905(5) 分析绝对误差。solve(exp(x)+10*x-2=0)3钢水包使用次数多以后,钢包的容积增大,数据如下:x23456789y6.428.29.589.59.7109.939.991011121314151610.4910.5910.6010.810.610.910.76试从中找出使用次数和容积之间的关系,计算均方差。(注:增速减少,用何种模型)设y=f(x)具有指数形式(a0,b1e-4 x0=y; y=B*x0+f;n=n+1;endyn以文件名jacobi.m保存。程序:a=4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0 5 -2 5 -2 6;x0=0 0 0 0 0 0;jacobi(a,b,x0);运行结果为:y = 1.0000 2.0000 1.0000 2.0000 1.0000 2.0000n = 28(2) GAUSS-SEIDEL迭代;程序:function y=seidel(a,b,x0)D=diag(diag(a);U=-triu(a,1);L=-tril(a,-1);G=(D-L)U;f=(D-L)b;y=G*x0+f;n=1;while norm(y-x0)10(-4) x0=y; y=G*x0+f;n=n+1;endyn以文件名deisel.m保存。程序:a=4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0 5 -2 5 -2 6;x0=0 0 0 0 0 0;jacobi(a,b,x0);运行结果为:y = 1.0000 2.0000 1.0000 2.0000 1.0000 2.0000n =15(3) SOR迭代()。程序:function y=sor(a,b,w,x0)D=diag(diag(a);U=-triu(a,1);L=-tril(a,-1);lw=(D-w*L)(1-w)*D+w*U);f=(D-w*L)b*w;y=lw*x0+f;n=1;while norm(y-x0)10(-4) x0=y; y=lw*x0+f;n=n+1;endyn以文件名sor.m保存。程序:a=4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0 5 -2 5 -2 6;x0=0 0 0 0 0 0;c=1.334 1.95 0.95;for i=1:3 w=c(i);sor(a,b,w,x0);end运行结果分别为:y = 1.0000 2.0000 1.0000 2.0000 1.0000 2.0000n = 13y = 1.0000 2.0000 1.0000 2.0000 1.0000 2.0000n = 241y = 1.0000 2.0000 1.0000 2.0000 1.0000 2.0000n = 175用逆幂迭代法求最接近于11的特征值和特征向量,准确到。程序:function mt,my=maxtr(A,p,ep)n=length(A);B=A-p*eye(n);v0=ones(n,1);k=1;v=B*v0;while abs(norm(v,inf)-norm(v0,inf)ep %norm(v-v0)ep k=k+1; q=v; u=v/norm(v,inf) v=B*u; v0=q;end mt=1/norm(v,inf)+pmy=u主界面中输入:A=1 -2 -3; maxtr(A,11,0.001)结果为:特征值:mt = 11.0919特征向量:my = 0.3845 -1.0000 0.73066用经典R-K方法求解初值问题(1), ;程序:function ydot=lorenzeq(x,y)ydot=-2*y(1)+y(2)+2*sin(x);y(1)-2*y(2)+2*cos(x)-2*sin(x) 以文件民lorenzeq.m保存。主窗口输入:x,y=ode45(lorenzeq,0:10,2;3)运行结果为:x = 0 1 2 3 4 5 6 7 8 9 10y = 2.0000 3.0000 1.5775 1.2758 1.1802 -0.1457 0.2406 -0.8903 -0.7202 -0.6170 -0.9454 0.2971 -0.2745 0.9652 0.6589 0.7557 0.9901 -0.1449 0.4124 -0.9109 -0.5440 -0.8389(2), 。和精确解比较,分析结论。程序:function ydot=lorenzeq1(x,y)ydot=-2*y(1)+y(2)+2*sin(x);998*y(1)-999*y(2)+999*cos(x)-999*sin(x);以文件名lorenzeq1.m保存。程序:x=0:10;y1=2*exp(-x)+sin(x);y2=2*exp(-x)+cos(x);x,y=ode45(lorenzeq1,0:10,2;3);fprintf( x y(1) y1 y(2) y2n)for j=1:length(y) fprintf(%4d %.4f %.4f %.4f %.4fn,x(j),y(j,1),y1(j),y(j,2),y2(j)end运行结果为: x y(1) y1 y(2) y2 0 2.0000 2.0000 3.0000 3.0000 1 1.5772 1.5772 1.2759 1.2761 2 1.1800 1.1800 -0.1455 -0.1455 3 0.2407 0.2407 -0.8904 -0.8904 4 -0.7202 -0.7202 -0.6169 -0.6170 5 -0.9454 -0.9454 0.2972 0.2971 6 -0.2745 -0.2745 0.9648 0.9651 7 0.6588 0.6588 0.7554 0.7557 8 0.9900 0.9900 -0.1448 -0.1448 9 0.4124 0.4124 -0.9106 -0.9109 10 -0.5439 -0.5439 -0.8389 -0.8390结论:R-K方法求解的结果精度较高。7用有限差分法求解边值问题(h=0.1):.程序为:h=0.1;n=(1-(-1)/h+1;x(1)=-1;x(n-1)=1;y(1)=1;y(n-1)=1;for i=1:n-1 x(i)=x(1)+(i-1)*h; q(i)=(1+x(i)2); B(i)=2/(h2)+q(i);endfor i=1:n-2 C(i)=-1/(h2);endH=diag(B)+diag(C,1)+diag(C,-1);g(1)=0+1/(h2);g(n-1)=0+1/(h2);for i=2:n-2 g(i)=0;endy=Hg运行结果为:y = 0.9027 0.8235 0.7592 0.7074 0.6661 0.6338 0.6095 0.5922 0.5814 0.5767 0.5778 0.5846 0.5974 0.6163 0.6420 0.6752 0.7167 0.7680 0.8308 0.90728拟合形如f(x)(a+bx)/(1+cx)的函数的一种快速方法是将最小二乘法用于下列问题:f(x)(1+cx)(a+bx),试用这一方法拟合表4-4给出的中国人口数据。表4-4次序 年份 人口(亿)a) 1953 5.82b) 1964 6.95c) 1982 10.08d) 1900 11.34e) 2000 12.66解:把f(x)(1

温馨提示

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

评论

0/150

提交评论