数值计算方法上机实习题答案

上传人:仙*** 文档编号:70889046 上传时间:2022-04-06 格式:DOC 页数:11 大小:151.50KB
返回 下载 相关 举报
数值计算方法上机实习题答案_第1页
第1页 / 共11页
数值计算方法上机实习题答案_第2页
第2页 / 共11页
数值计算方法上机实习题答案_第3页
第3页 / 共11页
点击查看更多>>
资源描述
数值计算方法上机作业 热能工程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+cx)(a+bx)变成f(x)a+bx-cx f(x)则近似看成基函数是1,x,-x*f(x)而数据是(xi,f(xi)的最小二乘拟合问题,程序如下:x=1953 1964 1982 1900 2000;y=5.82 6.95 10.08 11.34 12.66;A=ones(5,1) x -x.*y;Z=Ay;a=Z(1)b=Z(2)c=Z(3)结果:a = 11.5250b = -0.0059c = -5.0979e-004
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!