matlab上机实验报告.doc

上传人:一*** 文档编号:12572160 上传时间:2022-04-25 格式:DOC 页数:13 大小:30KB
返回 下载 相关 举报
matlab上机实验报告.doc_第1页
第1页 / 共13页
matlab上机实验报告.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《matlab上机实验报告.doc》由会员分享,可在线阅读,更多相关《matlab上机实验报告.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、matlab上机实验报告matlab上机实验报告1、对下列问题,请分别用专用函数和通用函数实现。(1)X服从3,10上均匀分布,计算PX4,PX8;已知PXa=0.4,求a。代码:F4=unifcdf(4,3,10)F8=1-unifcdf(8,3,10)a=unifinv(1-0.4,3,10)结果:F4=0.1429F8=0.2857a=7.2021(2)X服从正态分布N(2,9),计算P|X|1,P|X|5;已知PXp2=chi2pdf(x,2);plot(x,p2);title(分布函数图)holdonp3=chi2pdf(x,3);plot(x,p3);title(分布函数图)hol

2、donp4=chi2pdf(x,4);plot(x,p4);title(分布函数图)holdonp5=chi2pdf(x,5);plot(x,p5);title(分布函数图)结果:3、设样本数据为110.1,25.2,39.8,65.4,50.0,98.1,48.3,32.2,60.4,40.3,求该样本的均值、方差、标准差、中位数、几何均值、最大值、最小值、极差并绘出数据的直方图及圆饼图。代码:x=110.125.239.865.450.098.148.332.260.440.3;av=mean(x)结果:av=56.9800代码:D=var(x)结果:D=768.5151代码:d=std(

3、x)结果:d=27.7221代码:z=median(x)结果:z=49.1500代码:M=geomean(x)结果:M=51.6111代码:max(x)结果:ans=110.1000代码:min(x)结果:ans=25.2021代码:Y=range(x)结果:Y=84.9000代码:bar(x)结果:代码:pie(x)结果:4、下表一列出某高校自动化专业研究生招生规模及生源情况表一20212021年生源分布情况统计表年2021202120212021级人数比率人数比率人数比率人数比率来自学校某高校2533%1319%3145%2335%55所重点院68%68%57%46%校其它院校4559%5

4、173%3348%3959%合计76706966请用常用的MATLAB统计作图函数,分析表一中的数据,能否得出近四年招生规模缩小,总体生源质量下降的结论?代码:t=2021:1:2021;x1=25,13,31,23;x2=6,6,5,4;x3=45,51,33,39;x=x1+x2+x3;X=x2;x1;x3;x;y1=0.330.19,0.450.35;y2=0.08,0.08,0.07,0.06;y3=0.59,0.73,0.48,0.59;Y=y2;y1;y3;subplot(1,2,1)bar3(t,X)subplot(1,2,2)bar3(t,Y)结果:6、有两组(每组100个元素

5、)正态随机数据,其均值为10,均方差为2,求95%的置信区间和参数估计值。代码:R=normrnd(10,2,1,100);a,b,c,d=normfit(R,0.05)结果:a=10.1824b=1.8533c=9.814710.5501d=1.62722.15297、分别使用金球和铂球测定引力常数。(1)用金球测定观察值为:6.6836.6816.6766.6786.6796.672;(2)用铂球测定观察值为:6.6616.6616.6676.6676.664。2,和为未知。对、两种情况分别求和的置信度设测定值总体为N,为0.9的置信区间。(1)代码:a=6.6836.6816.6766.

6、6786.6796.672;b=6.6616.6616.6676.6676.664;qwer=normfit(a,0.1)结果:q=6.67816666666667w=0.00386867763799e=6.674984137487136.68134919584620r=0.002599943871790.00808266362696(2)代码:qwer=normfit(b,0.1)结果:q=6.66400000000000w=0.00300000000000e=6.661139827400896.66686017259910r=0.001947915502160.00711706707423

7、扩展阅读:matlab上机实验报告上海电力学院数值计算方法上机实习院系:专业年级:学生姓名:学号:指导教师:报告能源与机械工程学院动力机械及工程2021级张亚杰ys1210124014黄建雄2021年12月26日1数值计算方法上机实习题xndx,1设In05x1(1)由递推公式In5In1解:I0=I=0.1823forn=1:1:20,I=-5*I+1/n;1,从I0的几个近似值出发,计算I20;n105xdx=0.18231计算I20编辑matlab命令如下:fprintf(%.1d%.4fn,n,I);end结果:(2)粗糙估计I20,用In111In,计算I0;55nx20d解:I20

8、=05xx1使用复合中点公式进行积分,相应的matlab程序如下:I=0;forh=0:0.001:1,m=h+0.0005;I=I+0.001*m20/(5+m);fprintf(%.1d%.4fn,m,I);enddisp(I);fork=1:20,n=21-k;I=0.2*(1/n-I);fprintf(%.1d%.4fn,n,I);enddisp(I)结果:程序结束时输出两个I值,第一个表示I20,第二个表示I0;分别为I20=0.0082I0=0.1823(3)分析结果的可靠性及产生此现象的原因(重点分析原因)。从上述计算中分析得到如果先得到I0,再从I0由递推公式得到I20,I20

9、结果跟精确值相比误差很大;如果先估算I20,在从I20有递推公式得到I0,I0的结果跟精确值相比近似相等。原因分析:如果从I0推I20的近似值,需要用到递推公式In=-5In-1+1/n,I0本身结果是有误差的;经过递推公式计算20次,就等于误差被认为的放大5的20次方倍,所以得到的I20与其精确值相差甚远。如果从I20推I0的近似值,需要用到In-1=0.2(1/n-In),尽管I20本身有误差,但是经过20次运算,其误差缩小到原来的0.2的20次方倍,所以得到的I0与其精确值比较相近。2求方程e10x20的近似根,要求xk1xk5104,并比较计算量。x(1)在0,1上用二分法;Matla

10、b程序如下:a=0;b=1;c=b-a;n=0whilec0.0005,x=(a+b)/2;f=exp(x)+10*x-2;iff0,b=x;c=b-a;elseiff(2)取初值x00,并用迭代xk12ex;10采用matlab进行迭代的程序如下:x=0;c=1;n=0;whilec0.0005,m=x;m=(2-exp(m)/10;c=abs(m-x);x=m;n=n+1;fprintf(%.1d%.4f%.4fn,n,x,c);end结果:解得x=0.0905(3)加速迭代的结果;采用matlab进行迭代的程序如下:x=0;n=0;a=0;b=1;whileabs(a-b)0.0005,

11、n=n+1;a=x;y=(2-exp(x)/10;z=(2-exp(y)/10;x=x-(y-x)2/(z-2*y+x);b=x;fprintf(%.1d%.4f%.4fn,n,x,abs(a-b);end结果如下:(4)取初值x00,并用牛顿迭代法;Matlab程序如下:x=0;a=1;n=0;whileabs(a)0.0005,n=n+1;a=(exp(x)+10*x-2)/(exp(x)+10);x=x-a;fprintf(%.1d%.4f%.4fn,n,x,abs(a);end运行结果:(5)分析绝对误差。迭代次数1234567891011二分法X(k)0.50000.25000.12

12、500.06250.09380.07810.08590.08980.09180.09080.0903Erroe0.50000.25000.12500.06250.03130.01560.00780.00390.00200.00100.0005代数式迭代X(k)0.10000.08950.09060.0905Erroe0.10000.01050.00120.0001加速迭代X(k)0.09050.0905Erroe0.0905牛顿迭代X(k)0.0909Erroe0.09090.0004000000.0905我们可以看到,在运算要求到同一精度的情况下,采用(1)的二分法运算了11次,采用(2)的

13、方法运算了4次,采用(3)的加速迭代法运算了2次,采用(4)的牛顿迭代法也需运算2次。也就是说牛顿的迭代的收敛速度与加速迭代速度都是超线性收敛的,而简单迭代法是线性收敛的。而二分法收敛速度较慢,所以在工程上不经常使用。3钢水包使用次数多以后,钢包的容积增大,数据如下:xy10234569.7147101581112131610.4910.5910.6010.810.610.910.76试从中找出使用次数和容积之间的关系,计算均方差。(注:增速减少,用何种模型)解:将使用次数x与体积y的关系用matlab采用如下程序绘制在二维坐标系:x=2345678910111213141516;y=6.42

14、8.29.589.59.7109.939.9910.4910.5910.6010.810.610.910.76;plot(x,y,b*-);96.428.29.589.59.939.99结果如下:由数据点分布图可知,拟合曲线y=f(x)随着x的增加而上升,但上升速度由快到慢,当x趋于无穷大时,y趋于某个常数,故曲线有一水平渐进线。根据上述特征很容易想到用b/xLogistic模型来拟合该曲线。设y=f(x)的形式为y=ae(a0,b计算均方差s,matlab程序如下:y=6.428.29.589.59.7109.939.9910.4910.5910.6010.810.610.910.76;s=

15、0;forn=2:1:16,a=abs(11.679*exp(-1.1107*n.(-1)-y(n-1);s=s+a.2;ends=(s/15).(1/2);disp(s);运算结果均方差S=0.2438小结:根据已给的条件计算函数是十分困难的,但通过对离散点的分析及变化规律找出其中的规律,并通过计算来得到实际的函数是十分有用的方法。本题就是这样做的一个典型,在n=1/x和m=lny的基础上找到了它们之间的关系并通过这种关系来拟合原函数,并最终验证计算结果。041010014101050141012,b,Axb4设A101410501014120601014分析下列迭代法的收敛性,并求xk1x

16、k(1)JACOBI迭代;解matlab计算程序如下:A=4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14;b=0;5;-2;5;-2;6;error=1;D=diag(diag(A);L=D-tril(A);U=D-triu(A);X=zeros(size(b);whileerror0.0001,82104的近似解及相应的迭代次数。X=D(b+L*X+U*X);error=norm(b-A*X)/norm(b);enddisp(x);disp(error);解得X=0.9999;1.9999;0.9998;1.9999;0.9

17、998;1.9999error=7.0206e-05(2)GAUSS-SEIDEL迭代;A=4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14;b=0;5;-2;5;-2;6;error=1;D=diag(diag(A);L=D-tril(A);U=D-triu(A);X=zeros(size(b);whileerror0.0001,X=(D-L)(b+U*X);error=norm(b-A*X)/norm(b);enddisp(x);disp(error);解得X=0.9998;1.9998;0.9998;1.9999;0.99

18、99;1.9999error=5.5892e-05(3)SOR迭代(1.334,1.95,0.95)。N=1.334使用matlab求解程序如下:A=4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14;b=0;5;-2;5;-2;6;error=1;D=diag(diag(A);L=D-tril(A);U=D-triu(A);X=zeros(size(b);whileerror0.0001,n=1.334;X=(D-n*L)(1-n)*D+n*U*X+n*(D-n*L)b;error=norm(b-A*X)/norm(b);dis

19、p(X);enddisp(error);此循环得到的X=0.9999;2.0000;1.0000;1.9999;1.0000;2.0000error=6.3632e-05N=1.95使用matlab求解程序如下:A=4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14;b=0;5;-2;5;-2;6;error=1;D=diag(diag(A);L=D-tril(A);U=D-triu(A);X=zeros(size(b);whileerror0.0001,n=1.95;X=(D-n*L)(1-n)*D+n*U*X+n*(D-n*L

20、)b;error=norm(b-A*X)/norm(b);disp(X);enddisp(error);此循环得到的X=0.9999;2.0001;0.9999;1.9999;1.0001;1.9999error=9.0363e-05N=0.95使用matlab求解程序如下:A=4-10-100;-14-10-10;0-14-10-1;-10-14-10;0-10-14-1;00-10-14;b=0;5;-2;5;-2;6;error=1;D=diag(diag(A);L=D-tril(A);U=D-triu(A);X=zeros(size(b);whileerror0.0001,n=0.95

21、;X=(D-n*L)(1-n)*D+n*U*X+n*(D-n*L)b;error=norm(b-A*X)/norm(b);disp(X);enddisp(error);此循环得到的X=0.9997;1.9997;0.9997;1.9998;0.9998;1.9999error=8.6235e-056313A3215用逆幂迭代法求最接近于11的特征值和特征向量,准确到10。111解:matlab程序如下:a=631;321;111;I=100;010;001;b0=a-11*I;v0=1;1;1;m=max(abs(v0);flab=1;whileflab0.001,u=v0/m;v0=b0u;

22、tv,ti=max(abs(v0);n=v0(ti);flab=abs(n-m);m=n;endm=1/m+11;disp(m);运行结果如下:即离11最近的特征值为7.8745;相应的特征向量u=1.0000;0.5503;0.2271。6用经典R-K方法求解初值问题(1)2y1y22sinxy1,x0,10,y2y12y22cosx2sinxy1(0)2;y2(0)3解:采用经典R-K公式计算的MATLAB程序如下:y1=2;y2=3;forh=0:0.01:10,k1=0.01*(-2*y1+y2+2*sin(h);l1=0.01*(y1-2*y2+2*cos(h)-2*sin(h);k

23、2=0.01*(-2*(y1+0.5*k1)+(y2+0.5*l1)+2*sin(h+0.005);l2=0.01*(y1+0.5*k1)-2*(y2+0.5*l1)+2*cos(h+0.005)-2*sin(h+0.005);k3=0.01*(-2*(y1+0.5*k2)+(y2+0.5*l2)+2*sin(h+0.005);l3=0.01*(y1+0.5*k2)-2*(y2+0.5*l2)+2*cos(h+0.005)-2*sin(h+0.005);k4=0.01*(-2*(y1+k3)+(y2+l3)+2*sin(h+0.01);l4=0.01*(y1+k3)-2*(y2+l3)+2*c

24、os(h+0.01)-2*sin(h+0.01);y1=y1+1/6*(k1+2*k2+2*k3+k4);y2=y2+1/6*(l1+2*l2+2*l3+l4);ifh=fix(h);fprintf(%.1d%.4f%.4fn,h,y1,y2);elseendend结果如下所示:2y1y22sinxy1(2),x0,10,y998y999y999cosx999sinx122y1(x)2exsinx和精确解比较,分析结论。xy2(x)2ecosxMatlab程序如下:y1=2;y2=3;forh=0:0.00001:10,k1=0.00001*(-2*y1+y2+2*sin(h);l1=0.00

25、001*(998*y1-999*y2+999*cos(h)-999*sin(h);y1(0)2。y(0)32k2=0.00001*(-2*(y1+0.5*k1)+(y2+0.5*l1)+2*sin(h+0.000005);l2=0.00001*(998*(y1+0.5*k1)-999*(y2+0.5*l1)+999*cos(h+0.000005)-999*sin(h+0.000005);k3=0.00001*(-2*(y1+0.5*k2)+(y2+0.5*l2)+2*sin(h+0.005);l3=0.00001*(998*(y1+0.5*k2)-999*(y2+0.5*l2)+999*cos

26、(h+0.000005)-999*sin(h+0.000005);k4=0.00001*(-2*(y1+k3)+(y2+l3)+2*sin(h+0.00001);l4=0.00001*(998*(y1+k3)-999*(y2+l3)+999*cos(h+0.00001)-999*sin(h+0.00001);y1=y1+1/6*(k1+2*k2+2*k3+k4);y2=y2+1/6*(l1+2*l2+2*l3+l4);ifh=fix(h),fprintf(%.1d%.4f%.4fn,h,y1,y2);elseendend结果如下:精确解:forx=0:1:10,y1=2*exp(-x)+sin

27、(x);y2=2*exp(-x)+cos(x);fprintf(%.1d%.4f%.4fn,x,y1,y2);end结果;结果分析:四阶RungeKutta方法得到的结果已很接近精确解,证明这种迭代方法精确度很好,是一种有效的算法。但是要注意龙格-库塔公式的推导基于泰勒展开方法,因而它要求所求的的解具有较好的光滑性质。反之,如果解得光滑性差,那么,使用四阶龙格-库塔求得的数值解精度就不是太高,此种情况可以采用缩小步长来解决,比如上述计算。7用有限差分法求解边值问题(h=0.1):y(1x2)y0.y(1)y(1)1y(1x2)y0微分方程式可以变为用有限差分法matlab程序如下:y(1)y(

28、1)1h=0.1;n=2/0.1-1;g(1)=1/(h.2);g(n)=1/(h2);fori=2:1:18,g(i)=0;endg=g(1);g(2);g(3);g(4);g(5);g(6);g(7);g(8);g(9);g(10);g(11);g(12);g(13);g(14);g(15);g(16);g(17);g(18);g(19);disp(g);fori=1:1:19,forj=1:1:19,ifi=1,H(1,1)=2/(h.2)+(1+(-1+0.1*i).2);H(1,2)=-1/(h.2);elseifi=19,H(19,18)=-1/(h.2);H(19,19)=2/(

29、h.2)+(1+(-1+0.1*i).2);elseifj=i,H(i,j)=2/(h.2)+(1+(-1+0.1*i).2);elseifj=i-1,H(i,i-1)=-1/(h.2);elseifj=i+1;H(i,i+1)=-1/(h.2);elseH(i,j)=0;endendendenddisp(H);y=Hg;fori=1:1:19,fprintf(%.4f%.4fn,-1+0.1*i,y(i,1)end运算结果为:g10000000000000000000100H矩阵为:Y在各点的近似值为:XY8.用函数y=asin(bx)拟合数据.x0.10.20.30.40.50.60.70

30、.8y0.61.11.61.82.01.91.71.3Matlab上机程序为:functionerr,a,b=nlfitb(x,y)ifnarginbeta0=11;beta=nlinfit(x,y,mymodel,beta0);fprintf(Thenonlinearleastsquarefittingy=a*sin(b*x)fordatann);fprintf(%6.1f,x);fprintf(%6.1f,y);fprintf(nnisnnty=%7.4f*sin(%7.4f*x)nn,beta);z=linspace(x(1),x(end),100);plot(x,y,ro,z,beta

31、(1)*sin(beta(2)*z),b-.);functionyb=mymodel(beta,xb)yb=beta(1)*sin(beta(2)*xb);计算结果:9拟合形如f(x)(a+bx)/(1+cx)的函数的一种快速方法是将最小二乘法用于下列问题:f(x)(1+cx)(a+bx),试用这一方法拟合表4-4给出的中国人口数据。表4-4次序年份人口(亿)a)b)c)d)e)19535.8219646.95198210.08199011.34202112.66解:把f(x)(1+cx)(a+bx)变成f(x)a+bx-cxf(x)则近似看成基函数是1,x,-x*f(x)而数据是(xi,f(

32、xi)的最小二乘拟合问题,程序如下:functiona,b,c=ex41x=19531964198219902021;y=5.826.9510.0811.3412.66;A=ones(5,1)x-x.*y;Z=Ay;a=Z(1)b=Z(2)c=Z(3)z=linspace(1953,2021,100);plot(x,y,ro,z,(a+b*z)./(1+c*z),b-.);结果:所以fx2.94560.0014x。10.0004956x10.已知20世纪美国人口的统计数字如表5-12(单位:百万):表5-12美国人口统计数据年份190019101920193019401950196019701

33、9801990人口76.092.0106.5123.2131.7150.7179.3204.0226.5251.4试分别用两点公式和三点公式计算美国人口20世纪的年增长率。1采用两点公式,设t(i)表示年份,y(i)表示该年份的美国人口;两点公式为:解;l(i)两点公式matlab编程;t=1900:10:1990;y(i1)y(i)t(i1)t(i)y=76.092.0106.5123.2131.7150.7179.3204.0226.5251.4;fori=1:10,ifi2采用三点公式,设t(i)表示年份,y(i)表示该年份的美国人口;三点公式为:l(i)三点公式matlab程序如下:t=1900:10:1990;3y(i)4y(i1)y(i2)t(i2)t(i)y=76.092.0106.5123.2131.7150.7179.3204.0226.5251.4;fori=1:10,ifi第 13 页 共 13 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 汇报体会

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁