集美大学-MATLAB程序设计与应用-期末总复习_第1页
集美大学-MATLAB程序设计与应用-期末总复习_第2页
集美大学-MATLAB程序设计与应用-期末总复习_第3页
集美大学-MATLAB程序设计与应用-期末总复习_第4页
集美大学-MATLAB程序设计与应用-期末总复习_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

集美大学-MATLAB程序设计与应用-期末总复习集美大学-MATLAB程序设计与应用-期末总复习集美大学-MATLAB程序设计与应用-期末总复习V:1.0精细整理,仅供参考集美大学-MATLAB程序设计与应用-期末总复习日期:20xx年X月集美大学MATLAB程序设计与应用期末总复习一、填空题1、MATLAB常用操作界面包括命令窗口、工作空间窗口(浏览器)、历史命令窗口、当前目录窗口、内存数组编辑器、M文件编辑/调试器、

帮助导航/浏览器、图形窗口等。

2、MATLAB中Inf或inf表示无穷大、NaN或nan表示不是一个数、nargout表示函数输出变量数目。

3、MATLAB中逗号主要用作要显示计算结果的指令与其后指令的分隔符;

用作输入量与输入量之间的分隔符;用作数组元素分隔符号。

4、工作空间浏览器主要用于内存变量的查阅、保存和编辑。

5、MATLAB实现将全下标转换为单下标的指令为Sub2ind、据单下标换算出全

下标的指令为Ind2sub。

6、二维数组的标识有“全下标”标识、“单下标”标识、“逻辑1”标识。

7、在一个元胞数组A中寻访第2行第3列元胞元素用A(2,3);寻访数组第

2行第3列元胞中的内容用A{2,3}。

8、MATLAB中clf用于清除图形窗、clc用于清除指令窗中显示内容、clear

用于清除MATLAB工作空间中保存的变量。

二、简答题

1、简述MATLAB历史指令窗的主要作用。

答:历史指令窗记录着用户在MATLAB指令窗中所输入过的所有指令。历史记录包括:每次开启MATLAB的时间,每次开启MATLAB后在指令窗中运行过的所有指令。应用功能有单行或多行指令的复制和运行、生成M文件等。

2、简述空数组的功用。

答:“空”数组的功用:在没有“空”数组参与的运算时,计算结果中的“空”可以合理地解释“所得结果的含义”;运用“空”数组对其他非空数组赋值,可以改变数组的大小,但不能改变数组的维数。

3、简述MATLAB函数的基本结构。

答:典型M函数文件的结构:函数申明(定义)行(Functiondeclarationline)、H1行(Thefirsthelptextline)、在线帮助文本(Helptext)区、编写和修改记录、函数体(Functionbody)。

4、简述绘制二维图形的一般步骤。

三、编程题(1)在同一图上分别用红色实线和绿色虚线绘制y1=sin(x)和y2=cos(x)在区间[0,4*pi]的曲线,并用星号*标出两条曲线的交点以及建立图例。书p123、p126解:clfx=0:pi/200:4*pi;y1=sin(x);y2=cos(x);zz=x(find(abs(y1-y2)<0.005))z=min(zz)plot(x,y1,'r-',x,y2,'g_')holdonplot(zz,sin(zz),'*')legend('sin','cos')(2)分别在同一图形窗的不同子图绘制y=sin(t)sin(9t)和y=sin(t)sin(9t)及其包络线。P121解:t=(0:pi/100:pi)'; y1=sin(t)*[1,-1]; y2=sin(t).*sin(9*t); t3=pi*(0:9)/9; y3=sin(t3).*sin(9*t3);subplot(1,2,1)plot(t,y1,'r:',t,y2,'b',t3,y3,'bo')subplot(1,2,2)plot(t,y2,'b')axis([0,pi,-1,1])(3)某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):price<200没有折扣200≤price<5003%折扣500≤price<10005%折扣1000≤price<25008%折扣2500≤price<500010%折扣5000≤price14%折扣输入所售商品的价格,求其实际销售价格。P172解:price=input('请输入商品价格');switchfix(price/100)case{0,1}%价格小于200rate=0;case{2,3,4}%价格大于等于200但小于500rate=3/100;casenum2cell(5:9)%价格大于等于500但小于1000rate=5/100;casenum2cell(10:24)%价格大于等于1000但小于2500rate=8/100;casenum2cell(25:49)%价格大于等于2500但小于5000rate=10/100;otherwise%价格大于等于5000rate=14/100;endprice=price*(1-rate)%输出商品实际销售价格(4)用符号变量法解如下方程p解:eq1=sym(‘x+2*y+z=1’);eq2=sym(‘2*x+y-2*z=3’);eq3=sym(‘3*x-4*y+2*z=9’);[x,y,z]=solve(a,b,c)(5)将matlab绘图窗口分割为二个区域,在左区域绘出y1曲线,在右区域绘出y2曲线,y1为红色,y2为蓝色,步距0.01.p121解:x1=0:0.01:5;y1=x*exp(-2*x);subplot(1,2,1);plot(x1,y1,’r’);x2=-2:0.01:2;y2=5*cos(3*pi*x2);subplot(1,2,2);plot(x2,y2,’b’);(6)某班有50名学生,进行英语考试,考试成绩为:优秀8人,良好14人,中等20人,及格5人,不及格3人.试绘该班英语考试成绩分布的三维饼图,将优秀块及不及格块分离.p143解:x=[8,14,20,5,3];explode=[1,0,0,0,1];pie3(x,explode)阅读程序(1)写出下列指令运行结果。P51A=[1,2;3,4];B=[-1,-2;2,1];S=3;A.*BA*BS.*AS*B解:ans=-1-464ans=305-2ans=36912ans=-3-663(2)写出下列指令运行结果。A=zeros(2,4); A(:)=1:8; s=[235]; A(s) Sa=[102030]’ A(s)=Sa 解:ans=235Sa=102030A=12030710468(3)下面的函数主要完成什么功能?

functionf=factor(n)ifn<=1f=1;elsef=factor(n-1)*n;end解:功能是利用函数的递归调用,求n!(4)下面的程序完成功能是什么?t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,'-r',t,y0,':b',t,-y0,':b')xlabel(‘\bf\itt’);ylabel(‘\bf\ity’);gridon;解:在同一个图中绘制两个函数,这两个函数分别是:y=e(-t/3)y0=e(-t/3)*sin(3t)其中y是用红色的细实线,而y0是用兰色的虚线绘制,t的区间是(0:4),t的步长为/50,t轴和y轴分别用斜粗题指示,图中有网格表示。(5)写出下列指令运行结果。ch=‘ABc123d4e56Fg9’;subch=ch(1:5)revch=ch(end:-1:1)k=find(ch>=‘a’&ch<=‘z’);ch(k)=ch(k)-(‘a’-‘A’);char(ch)解:结果为ABC123D4E56FG9(6)s1=0;s2=0;n1=0;n2=0x=[1,-4,-8,3,10,-9,7,-3,10,8,-5,-2,2,0];m=length(x);fori=1:mifx(i)<0s1=s1+x(i);n1=n1+1;elses2=s2+x(i);n2=n2+1;endends1,n1,s2,n2,ms1=-31;n1=6;s2=41;n2=8;m=14.1与其他计算机语言相比较,MATLAB语言突出的特点是什么?MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。1.2MATLAB系统由那些部分组成?MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。二、编程题(32分)4、编写程序实现f(n)=f(n-1)+f(n-2)(f(1)=1和f(2)=2)函数。(6分)functionf=fab(n)if(n==1)f=1;elseif(n==2)f=2;elsef=fab(n-1)+fab(n-2);end1,计算与的数组乘积。>>a=[693;275];>>b=[241;468];>>a.*bans=12363842402,对于,如果,,求解X。>>A=[492;764;357];>>B=[372628]’;>>X=A\BX=-0.51184.04271.33183,已知:,分别计算a的数组平方和矩阵平方,并观察其结果。>>a=[123;456;789];>>a.^2ans=149162536496481>>a^2ans=3036426681961021261504,角度,求x的正弦、余弦、正切和余切。>>x=[304560];>>x1=x/180*pi;>>sin(x1)ans=0.50000.70710.8660>>cos(x1)ans=0.86600.70710.5000>>tan(x1)ans=0.57741.00001.7321>>cot(x1)ans=1.73211.00000.57745,将矩阵、和组合成两个新矩阵:(1)组合成一个43的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即(2)按照a、b、c的列顺序组合成一个行矢量,即>>a=[42;57];>>b=[71;83];>>c=[59;62];%(1)>>d=[a(:)b(:)c(:)]d=475586219732%(2)>>e=[a(:);b(:);c(:)]'e=452778135692或利用(1)中产生的d>>e=reshape(d,1,12)ans=4527781356926,将(x-6)(x-3)(x-8)展开为系数多项式的形式。>>a=[638];>>pa=poly(a);>>ppa=poly2sym(pa)ppa=x^3-17*x^2+90*x-1447,求解多项式x3-7x2+2x+40的根。>>r=[1-7240];>>p=roots(r);-0.21510.44590.79490.27078,求解在x=8时多项式(x-1)(x-2)(x-3)(x-4)的值。>>p=poly([1234]);>>polyvalm(p,8)ans=8409,计算多项式的微分和积分。>>p=[4–12–145];>>pder=polyder(p);>>pders=poly2sym(pder)>>pint=polyint(p);>>pints=poly2sym(pint)pders=12*x^2-24*x-14pints=x^4-4*x^3-7*x^2+5*x10,解方程组。>>a=[290;3411;226];>>b=[1366]';>>x=a\bx=7.4000-0.2000-1.400011,求欠定方程组的最小范数解。>>a=[2474;9356];>>b=[85]';>>x=pinv(a)*bx=-0.21510.44590.79490.270712,矩阵,计算a的行列式和逆矩阵。>>a=[42-6;754;349];>>ad=det(a)>>ai=inv(a)ad=-64ai=-0.45310.6562-0.59370.7969-0.84370.9062-0.20310.1562-0.093713y=sin(x),x从0到2,x=0.02,求y的最大值、最小值、均值和标准差。>>x=0:0.02*pi:2*pi;>>y=sin(x);>>ymax=max(y)>>ymin=min(y)>>ymean=mean(y)>>ystd=std(y)ymax=1ymin=-1ymean=2.2995e-017ystd=0.707114,参照课件中例题的方法,计算表达式的梯度并绘图。>>v=-2:0.2:2;>>[x,y]=meshgrid(v);>>z=10*(x.^3-y.^5).*exp(-x.^2-y.^2);>>[px,py]=gradient(z,.2,.2);>>contour(x,y,z)>>holdon>>quiver(x,y,px,py)>>holdoff15,下面三种表示方法有什么不同的含义?(1)f=3*x^2+5*x+2(2)f='3*x^2+5*x+2'(3)x=sym('x')f=3*x^2+5*x+2(1)f=3*x^2+5*x+2表示在给定x时,将3*x^2+5*x+2的数值运算结果赋值给变量f,如果没有给定x则指示错误信息。(2)f='3*x^2+5*x+2'表示将字符串'3*x^2+5*x+2'赋值给字符变量f,没有任何计算含义,因此也不对字符串中的内容做任何分析。(3)x=sym('x')f=3*x^2+5*x+2表示x是一个符号变量,因此算式f=3*x^2+5*x+2就具有了符号函数的意义,f也自然成为符号变量了。16,用符号函数法求解方程at2+b*t+c=0。>>r=solve('a*t^2+b*t+c=0','t')r=[1/2/a*(-b+(b^2-4*a*c)^(1/2))][1/2/a*(-b-(b^2-4*a*c)^(1/2))]17,用符号计算验证三角等式:(应用syms,simple)sin(1)cos(2)-cos(1)sin(2)=sin(1-2)>>symsphi1phi2;>>y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2))y=sin(phi1-phi2)18,求矩阵的行列式值、逆和特征根。>>symsa11a12a>>A=[a11,a12;a21,a22]>>AD=det(A)%行列式>>AI=inv(A)%逆>>AE=eig(A)%特征值A=[a11,a12][a21,a22]AD=a11*a22-a12*a21AI=[-a22/(-a11*a22+a12*a21),a12/(-a11*a22+a12*a21)][a21/(-a11*a22+a12*a21),-a11/(-a11*a22+a12*a21)]AE=[1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)][1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]19,因式分解:>>symsx;>>f=x^4-5*x^3+5*x^2+5*x-6;>>factor(f)ans=(x-1)*(x-2)*(x-3)*(x+1)20,,用符号微分求df/dx。(应用syms,diff)>>symsax;>>f=[a,x^2,1/x;exp(a*x),log(x),sin(x)];>>df=diff(f)df=[0,2*x,-1/x^2][a*exp(a*x),1/x,cos(x)]26,x=[6649715638],绘制饼图,并将第五个切块分离出来。>>x=[6649715638];>>L=[00001];>>pie(x,L)28,有一周期为4的正弦波上叠加了方差为0.1的正态分布的随机噪声的信号,用循环结构编制一个三点线性滑动平均的程序。(提示:①用0.1*randn(1,n)产生方差为0.1的正态分布的随机噪声;②三点线性滑动平均就是依次取每三个相邻数的平均值作为新的数据,如x1(2)=(x(1)+x(2)+x(3))/3,x1(3)=(x(2)+x(3)+x(4))/3……)t=0:pi/50:4*pi;n=length(t);y=sin(t)+0.1*randn(1,n);ya(1)=y(1);fori=2:n-1ya(i)=sum(y(i-1:i+1))/3;endya(n)=y(n);plot(t,y,'c',t,ya,'r','linewidth',2)29,编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。functionc=collatz(n)%collatz%Classic“3n+1”Ploblemfromnumbertheoryc=n;whilen>1ifrem(n,2)==0n=n/2;elsen=3*n+1;endc=[cn];end3.求下列联立方程的解>>a=[34-7-12;5-742;108-5;-65-210];>>b=[4;4;9;4];>>c=a\b4.设,,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。>>A=[14813;-36-5-9;2-7-12-8];>>B=[543-2;6-23-8;-13-97];>>C1=A*B'>>C2=A'*B>>C3=A.*B>>inv(C1)>>inv(C2)>>inv(C3)5.设,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。>>x=linspace(0,2*pi,101);>>y=cos(x)*(0.5+(1+x.^2)\3*sin(x));>>plot(x,y,'r')6.产生8×6阶的正态分布随机数矩阵R1,求其各列的平均值和均方差。并求该矩阵全体数的平均值和均方差。(meanvar)a=randn(8,6)mean(a)var(a)k=mean(a)k1=mean(k)i=ones(8,6)i1=i*k1i2=a-i1i3=i2.*i2g=mean(i3)g2=mean(g)或者u=reshape(a,1,48);p1=mean(u)p2=var(u)7.设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y曲线。>>t=linspace(0,10);>>r1=2;>>x1=(r1*cos(t)+3*t);>>y1=r1*sin(t)+3;>>r2=3;>>x2=(r2*cos(t)+3*t);>>y2=r2*sin(t)+3;>>r3=4;>>x3=(r3*cos(t)+3*t);>>y3=r3*sin(t)+3;>>plot(x1,y1,'r',x2,y2,'b',x3,y3,'m')8.设f(x)=x5-4x4+3x2-2x+6(1)在x=[-2,8]之间取100个点,画出曲线,看它有几个过零点。(提示:用polyval函数)>>x=linspace(2,8,100);>>y=polyval([10-43-26],x);>>plot(x,y,'b',x,0,'y')(2)用roots函数求此多项式的根。t=[10-43-26]p=roots(t)3、下列变量中的最大数是(C),最小的是(D)A.epsB.realminC.realmaxD.-pi4、在MATLAB的若干通用操作指令中,清除内存中的变量的是(A)A.clearB.claC.clfD.clc5、下列表示可以作为MATLAB的变量的是(DF)A.abcd-2B.xyz_2#C.@hD.X_1_aE.forF.for16、在Matlab中变量是不区分大小写的(B)A。正确,B。不正确7、在Matlab中末尾续行的符号是…;注释的符号是%;强行中止Matlab执行的组合键是ctrl+c。8、x=-2.6,y1=fix(x),y2=floor(x),y3=ceil(x),y4=round(x)中结果分别是多少y1=-2y2=-3y3=-2y4=-32.9、分别建立3×3、3×2和与矩

温馨提示

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

最新文档

评论

0/150

提交评论