2022年MATLAB程序设计方案与应用实验参考答案.docx
精品学习资源封面欢迎下载精品学习资源作者: PanHongliang仅供个人学习MATLAB 程序设计与应用(其次版)试验参考答案% 试验一 MATLAB 运算基础%第一题%( 1 ) z1=2*sin85*pi/180/1+exp2欢迎下载精品学习资源%( 2 )x=2,1+2i;-0.45,5;z2=0.5*logx+sqrt1+x.2%3a=-3.0:0.1:3.0;z3=exp0.3*a-exp-0.3*a/2.*sina+0.3+log0.3+a/2%4t=0:0.5:2.5;z4=t.2.*t>=0&t<1+t.2-1.*t>=1&t<2+t.2-2*t+1.*t>=2&t<3%其次题A=12 34 -4;34 7 87;3 65 7;B=1 3 -1;2 0 3;3 -2 7;A+6*BA-B+eyesizeA A*BA.*BA3 A.3A/B BA A,BA1,3,:%第三题;B2A=1 2 3 4 524 25;6 7 8 9 10; 11 12 13 14 15;16 17 18 19 20;21 22 23B=3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11C=A*BF=sizeCD=CF1-2:F1,F2-1:F2whos%第四题%1:A=100:999;B=remA,21;C=lengthfindB=0%2:A='lsdhKSDLKklsdkl';k=findA>='A'&A<='Z';Ak=% 试验二 MATLAB矩阵分析与处理%第一题E=eye3;R=rand3,2;欢迎下载精品学习资源O=zeros2,3;S=diag2,3;A=E,R;O,S;A2B=E,R+R*S;O,S2%其次题H=hilb5 P=pascal5Hh=detH Hp=detP Th=condH Tp=condP%第三题 : A=fix10*rand5 H=detATrace=traceA Rank=rankA Norm=normA%第四题 :A=-29,6,18;20,5,12;-8,8,5 V,D=eigA%数学意义略%第五题方法一 :%1:A=1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6;b=0.95,0.67,0.52';x=invA*b%2:B=0.95,0.67,0.53';x=invA*B%3:condA%第五题方法二 : A=hilb4 A:,1=A4,:=B=0.95,0.67,0.52';X=invA*BB1=0.95,0.67,0.53';X1=invA*B1 N=condB N1=condB1Na=condA %矩阵 A为病态矩阵%第六题欢迎下载精品学习资源A=1,4,9;16,25,36;49,64,81B=sqrtmAC=sqrtA %sqrtm函数是以矩阵为单位进行运算,sqrt函数是以矩阵中的元素进行运算%试验三选择程序结构设计%第一题程序一x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0;y=;%建立存放全部y 值的矩阵for x0=xif x0<0&x0=-3y=y,x0*x0+x0-6;elseif x0>=0&x0<5&x0=2&x0=3y=y,x0*x0-5*x0+6;elsey=y,x0*x0-x0-1;x y%第一题程序二%输出全部 x输出全部 yx=-5,-3,1,2,2.5,3,5;y=;for a=1:7if xa<0&xa=-3y=y,xa2+xa-6;end endelseif xa>=0&xa<5&xa=2&xa=3 y=y,xa2-5*xa+6;elsey=y,xa*xa-xa-1;end end%其次题程序一 :x=input'请输入一个百分制成果:';if x>100|x<0disp'您输入的成果不是百分制成果,请重新输入;';elseif x<=100&x>=90 disp'A';elseif x<=89&x>=80disp'B';elseif x<=79&x>=70disp'C';elseif x<=69&x>60欢迎下载精品学习资源disp'D';elsedisp'E';end end%其次题程序二:s=input'请输入一个成果(0 分到 100分之间): '; %s用于存放成果while 1%判定输入成果的合理性if s<0|s>100disp'输入的成果需在 0 到 100 之间,请重新输入: ' s=input'请输入一个成果(0 分到 100 分之间): ';elsebreak;end endswitch fixs/10%对成果做出等级判定case 9,10 disp'A'case 8disp'B' case 7disp'C' case 6disp'D' otherwisedisp'E'end%第三题n=input'请输入员工工号:';h=input'该员工工作时数是: ';if h>120x=h-120*84*1+0.15+120*84;elseif h<60x=h*84-700;elsex=h*84;enddispnum2strn,'号员工 ','的应发工资为',num2strx;%第四题(仍可以用switch语句实现)a=fix10+99-10*rand1,2%产生两个随机整数x=a1;y=a2;t=input'请输入运算符号:','s';if t='+'欢迎下载精品学习资源z=x+y;elseif t='-'z=x-y;elseif t='*' z=x*y;elseif t='/'z=x/y;enddispnum2strx,t,num2stry,'=',num2strz%输出运算结果%第五题a=rand5,6%产生 5x6的随机矩阵n=input'请输入您要输出矩阵的第几行:';if n>5disp'超出了矩阵的行数,矩阵的最终一行为:' a5,:elsedisp'矩阵的第 ',num2strn,'行为: ' an,:end% 试验四 循环结构程序设计%第一题程序一s=0 ;n=input'n=.';for i=1:ns=s+1/i/i;end PI=sqrt6*s pi%第一题程序二n=input'n=.';a=1:n;b=1./a.2;PI=sqrt6*sumb pi%其次题y=0 ;n=1 ;whiley<3y=y+1/2*n-1;n=n+1 ;endy=y-1/2*n-1-1n=n-2欢迎下载精品学习资源%第三题 a=input'a=.';b=input'b=.';Xn=1 ;Xn1=a/b+Xn;n=0 ;while absXn1-Xn>1e-5 Xn=Xn1;Xn1=a/b+Xn;n=n+1;if n=500break;end endn Xn1r1=-b+sqrtb*b+4*a/2 r2=-b-sqrtb*b+4*a/2%第四题for i=1:100if i=1fi=1;elseif i=2fi=0;elseif i=3 fi=1;elsefi=fi-1-2*fi-2+fi-3;end end maxfminfsumf lengthfindf>0 lengthfindf=0 lengthfindf<0%第五题: s=0 ; n=0 ;for i=2:49b=i*i+1-1;m=fixsqrtb;for j=2:mif remb,j=0 break欢迎下载精品学习资源end endif j=mn=n+1 ;s=s+b ;endend ns% 试验五 函数文件%第一题function y=mat1x%建立函数文件mat1.my=expx,logx,sinx,cosx;%在命令窗口调用上述函数文件:y=mat11+i%其次题程序一function a,b,N,M=shiyanwu2m,n,tA=m*cost*pi/180,-m,-sint*pi/180,0;m*sint*pi/180,0,cost*pi/180,0; 0,n,-sint*pi/180,0;0,0,-cost*pi/180,1;B=0,9.8*m,0,9.8*n;C=invA*B';a=C1; b=C2; N=C3; M=C4 ;%在命令窗口调用该函数文件:m1=input'm1=';m2=input'm2=';theta=input'theta=';a1,a2,N1,N2=shiyanwu2m1,m2,theta%其次题程序二function X=mat2m1,m2,t g=9.8;A=m1*cost*pi/180,-m1,-sint*pi/180,0;m1*sint*pi/180,0,cost*pi/180,0; 0,m2,-sint*pi/180,0; 0,0,- cost*pi/180,1;B=0 ;m1*g ;0 ;m2*g;X=invA*B;%在命令窗口调用该函数文件: X=mat21,1,60%第三题function flag=mat3x欢迎下载精品学习资源flag=1;for i=2:sqrtx if remx,i=0flag=0;break;end end%在命令窗口调用该函数文件: for i=10:99j=10*remi,10+fixi/10;if mat3i&mat3j dispiend end%第四题function y=fxxy=1./x-2.2+0.1+1./x-3.4+0.01;%在命令窗口调用该函数文件: y=fx2a=1,2; 3,4;y=fxa%第五题%1function f1=mat5n f1=n+10*logn*n+5;%在命令窗口中调用该函数文件:y=mat540/mat530+mat520%2 方法一function f2=mat6n f2=0;for i=1:nf2=f2+i*i+1;end%在命令窗口中调用该函数文件如: y=mat640/mat630+mat620%2 方法二function f2=mat7n i=1:n;m=i.*i+1;f2=summ;end%在命令窗口中调用该函数文件如: y=mat740/mat730+mat720% 试验六 高层绘图操作欢迎下载精品学习资源%第一题:x=linspace0,2*pi,101;y=0.5+3*sinx./1+x.2.*cosx;plotx,y%其次题:%( 1 )x=linspace-2*pi,2*pi,100;y1=x.2;y2=cos2*x;y3=y1.*y2;plotx,y1,'b-',x,y2,'r:',x,y3,'y-'text4,16,'leftarrow y1=x2';text6*pi/4,-1,'downarrow y2=cos2*x';text-1.5*pi,-2.25*pi*pi,'uparrow y3=y1*y2'%( 2 );x=linspace-2*pi,2*pi,100;y1=x.2;y2=cos2*xy3=y1.*y2;subplot1,3,1;%分区plotx,y1 title'y1=x2';%设置标题subplot1,3,2;plotx,y2;title'y2=cos2*x';subplot1,3,3;plotx,y3;title'y3=x2*cos2*x';%( 3 )x=linspace-2*pi,2*pi,20;y1=x.2;subplot2,2,1;%分区barx,y1;title'y1=x2的条形图 ';%设置标题subplot2,2,2;stairsx,y1;title'y1=x2的阶梯图 ';subplot2,2,3;stemx,y1;title'y1=x2的杆图 ';subplot2,2,4;fillx,y1,'r'title'y1=x2;%假如少了 'r'的填充图 ';就会出错%其他的函数照样做;欢迎下载精品学习资源%第三题x=-5:0.01:5;y=;%起始设 y 为空向量for x0=xif x0<=0 %不能写成 x0=<0y=y,x0+sqrtpi/exp2; %将 x 对应的函数值放到y 中elsey=y,0.5*logx0+sqrt1+x02;end end plotx,y%第四题: a=input'a=';b=input'b=';n=input'n=';t=-2*pi:0.01:2*pi;r=a*sinb+n*t;polart,r%第五题x=linspace-5,5,21;y=linspace0,10,31;x,y=meshgridx,y; %在-5,5*0,10的范畴内生成网格坐标z=cosx.*cosy.*exp-sqrtx.2+y.2/4;subplot2,1,1;surfx,y,zsubplot2,1,2;contour3x,y,z,50;%其中 50 为高度的等级数,越大越密%第六题ezsurf'coss*cost','coss*sint','sins',0,0.5*pi,0,1.5*pi; % 利用 ezsurf隐函数shading interp %进行插值着色处理% 试验七 低层绘图操作%第一题h=figure'MenuBar','figure','color','r','WindowButtonDownFcn','disp''Left Button Pressed'''%其次题x=-2:0.01:2;y=x.2.*exp2*x; h=linex,y;seth,'color','r','linestyle',':','linewidth',2text1,exp2,'y=x2*exp2*x'%第三题 t=0:0.00001:0.001;欢迎下载精品学习资源t,x=meshgridt;v=10*exp-0.01*x.*sin2000*pi*t-0.2*x+pi;axes'view',-37.5,30;h=surfacet,x,v;title'v=10*exp-0.01*x.*sin2000*pi*t-0.2*x+pi';xlabelCt',ylabel'x',zlabel'v'%第四题 x=0:0.01:2*pi;y1=sinx;y2=cosx;y3=tanx;y4=cotx;subplot2,2,1;plotx,y1subplot2,2,2;plotx,y2;subplot2,2,3;plotx,y3subplot2,2,4;plotx,y4;%第五题cylinder5;light'Position',0,1,1;material shiny% 试验八 数据处理与多项式运算%第一题%1A=rand1,30000;b=meanA stdA,0,2%2maxAminA%3n=0 ;for i=1:30000 if Ai>0.5 n=n+1 ;endend p=n/30000%其次题%1欢迎下载精品学习资源A=45+51*rand100,5Y,U=maxA;a,b=minA%2m=meanAs=stdA%3sumA,2Y,U=maxansa,b=minans%4zcj,xsxh=sortans%第三题h=6:2:18;x=6.5:2:17.5;t1=18,20,22,25,30,28,24;t2=15,19,24,28,34,32,30T1=splineh,t1,x;T2=splineh,t2,x%第四题x=1:0.1:101;y1=log10x;p=polyfitx,y1,5y2=polyvalp,x;plotx,y1,':',x,y2,'-'%第五题%1p1=1,2,4,0,5;p2=1,2p3=1,2,3;p=p1+0,convp2,p3%2%为使两向量大小相同,所以补0A=rootsp%3A=-1,1.2,-1.4polyvalp,A;0.75,2,3.5;0,5,2.5;%4polyvalmp,A试验十程序:x=sym'6';y=sym'5';z=x+1/sqrt3+x-sqrty欢迎下载精品学习资源1 、 分解因式(1 ) 程序:syms x y;A=x4-y4;factorA(2 ) 程序:factorsym'5135' 3 、化简表达式(1 )程序:syms beta1 beta2y=sinbeta1*cosbeta2-cosbeta1*sinbeta2 simpley(2 )程序:syms x y=4*x2+8*x+3/2*x+1 simpley5 、用符号方法求以下极限或导数(1 ) 程序: syms xf=x*expsinx+1-2*exptanx-1/sinx limitf(2 )程序:syms xy=sqrtpi-sqrtacosx/sqrtx+1;limitf,x,-1,'right'(3 ) 程序: syms xy=1-cos2*x/x;y1=diffy y2=diffy,x,26 、用符号方法求以下积分(1 ) 程序: syms xf=1/1+x4+x8 intf(2 )欢迎下载精品学习资源程序:syms x f=1/asinx2*sqrt1-x2 intf(3 )程序:syms x f=x2+1/x4+1 intf,x,0,inf(4 )程序:syms x f=expx*1+expx2 y=intf,x,0,log2 doubley试验十一 级数与方程符号求解1. 级数符号求和;(1) 运算 ;(2) 求级数 的和函数,并求 之和;解:M 文件:clear all ;clc;n=sym'n' ;x=sym'x' ;S1=symsum1/2*n-1,n,1,10 S2=symsumn2*xn-1,n,1,infS3=symsumn2/5n,n,1,inf%vpaS3可以转化成小数运行结果:S1 = 31037876/14549535 S2 =piecewiseabsx < 1, -x2 + x/x*x - 13 S3 =15/322. 将 lnx 在 x=1 处按 5 次多项式开放为泰勒级数;解:M 文件: clear all ;clc;x=sym'x' ;f=logx ;taylorf,x,6,1 运行结果: ans =x - x - 12/2 + x - 13/3 - x - 14/4 + x - 15/5 - 13. 求以下方程的符号解;欢迎下载精品学习资源解:M 文件:clear all ;clc;x1=solve'logx+1-5/1+sinx=2' x2=solve'x2+9*sqrtx+1-1' x3=solve'3*x*expx+5*sinx-78.5'x4 y4=solve'sqrtx2+y2-100','3*x+5*y-8'运行结果:x1 = 521.67926389905839979437366649258x2 =-131/2*i*4/9*64651/2/2+2171/541/3-1/2*64651/2+2171/541/3/2- 64651/2/2 + 2171/541/3/2 - 2/9*64651/2/2 + 2171/541/3 + 1/31/3 - 64651/2/2+ 2171/541/3/2- 31/2*i*4/9*64651/2/2+ 2171/541/3- 1/2*64651/2 + 2171/541/3/2 - 2/9*64651/2/2 + 2171/541/3x3 =2.3599419584772910151699327715486x4 =12/17 - 10*212461/2/17 10*212461/2/17 + 12/17y4 =6*212461/2/17 + 20/17 20/17 - 6*212461/2/174. 求微分方程初值问题的符号解,并与数值解进行比较;解:M 文件:clear all ;clc;dsolve'D2y+4*Dy+29*y','y0=0','Dy0=15','x'运行结果:ans = 3*sin5*x/exp2*x5. 求微分方程组的通解;解:M 文件:clear all ;clc;x y z=dsolve'Dx=2*x-3*y+3*z',. 'Dy=4*x-5*y+3*z','Dz=4*x-4*y+2*z','t'运行结果:x =C1/expt + C2*exp2*t y =欢迎下载精品学习资源C1/expt + C2*exp2*t + C3/exp2*t z =C2*exp2*t + C3/exp2*t试验九 数值微积分与方程数值求解1. 求函数在指定点的数值导数;解: M 文件:clc;clear;x=1 ;i=1 ;f=inline'detx x2 x3;1 2*x 3*x2 ;0 2 6*x' ;while x<=3.01 gi=fx ;i=i+1 ;x=x+0.01 ;% 以 0.01 的步长增加,可再缩小步长提高精度end g;t=1:0.01:3.01 ;dx=diffg/0.01 ;%差分法近似求导f1=dx1%x=1的数值倒数f2=dx101%x=2的数值倒数f3=dxlengthg-1%x=3的数值倒数运行结果:f1 =6.0602f2 =24.1202f3 =54.18022. 用数值方法求定积分;1 的近似值;2解: M 文件:clc;clear;f=inline'sqrtcost.2+4*sin2*t.2+1';I1=quadf,0,2*pi g=inline'log1+x./1+x.2';I2=quadg,0,2*pi运行结果:3. 分别用 3 种不同的数值方法解线性方程组;解: M 文件:clc;clear;A=6 5 -2 5 ;9 -1 4 -1;3 4 2 -2; 3 -9 0 2 ;b=-4 13 1 11' ;x=Ab欢迎下载精品学习资源y=invA*b L,U=luA;z=ULb运行结果:4. 求非齐次线性方程组的通解;解: M 文件function x,y=line_solutionA,b m,n=sizeA ;y= ;if normb>0 % 非齐次方程组if rankA=rankA,b if rankA=ndisp' 有唯独解 x';x=Ab ;elsedisp' 有无穷个解,特解x,基础解系 y';x=Ab ;y=nullA,'r' ;end elsedisp'无解 ';x= ;endelse %齐次方程组disp'有零解 x';x=zerosn,1;if rankA<ndisp'有无穷个解,基础解系y';y=nullA,'r' ;end endclc;clear;format ratA=2 7 3 1 ;3 5 2 2 ;9 4 1 7 ;b=6 4 2' ;x,y=line_solutionA,b运行结果:有无穷个解,特解x,基础解系 yWarning: Rank deficient, rank = 2, tol =8.6112e-015.> In line_solution at 11 x =-2/11 10/11欢迎下载精品学习资源00y =1/11-9/11-5/111/111001所以原方程组的通解是:,其中 为任意常数;5. 求代数方程的数值解;(1) 3x+sinx-ex=0 在 x0=1.5 邻近的根;(2) 在给定的初值x0=1 , y0=1, z0=1 下,求方程组的数值解;解: M 文件: function g=fx g=3*x+sinx-expx;clc;clear;fzero'f',1.5结果是:ans =1289/6822. M 文件: function F=funX x=X1 ;y=X2 ;z=X3 ;F1=sinx+y2+logz-7;F2=3*x+2-z3+1 ;F3=x+y+z-5 ;X=fsolve'myfun',1,1,1',optimset'Display','off' 运行结果:6. 求函数在指定区间的极值;(1) 在0,1 内的最小值;(2) 在0,0 邻近的最小值点和最小值;解: M 文件:function f=gu x=u1 ; y=u2 ;f=2*x.3+4*x.*y3-10*x.*y+y.2;clc;clear;format longf=inline'x3+cosx+x*logx/expx';x,fmin1=fminbndf,0,1 U,fmin2=fminsearch'g',0,0运行结果欢迎下载精品学习资源7. 求微分方程的数值解;解: M 文件:function xdot= sys x,y xdot=y2 ;5*y2-y1/x;clc;clear;x0=1.0e-9 ;xf=20 ;x,y=ode45'sys',x0,xf,0 0;x,y运行结果:8. 求微分方程组的数值解,并绘制解的曲线;解: 令 y1=x,y2=y,y3=z ; 这样方程变为 :,自变量是 t M 文件:function xdot=sysx,yxdot=y2*y3;-y1*y3 ;-0.51*y1*y2;clc;clear;t0=0 ; tf=8 ;x,y=ode23'sys',t0,tf,0,1,1 plotx,y版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理;版权为潘宏亮个人全部This article includes some parts, including text,pictures, and design. Copyright is Pan Hongliang's personalownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益;除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付酬劳;Users may use the contents or services of this欢迎下载精品学习资源article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant