《matlab练习题及答案.pdf》由会员分享,可在线阅读,更多相关《matlab练习题及答案.pdf(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章MATLAB概论1.1 与其他计算机语言相比较,MATLAB语言突出的特点是什么?答:MATLAB语言有一下特点:1、起点局I。2、人机界面适合科技人员。3、强大而简易的作图功能。4、智能化程度高。5、功能丰富,可扩展性强。1.2 MATLAB系统由那些部分组成?答:MATLAB系统主要由开发环境、MATLAB数学函数库、MMATLAB语言、图形功能和应用程序接口五个部分组成。1.3 安 装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?答:在 安 装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平
2、台(即MATLAB选 项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?答:在MATLAB操作桌面上有五个窗口。在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按 钮,一个是可以使窗口成为独立窗口的Undock按 钮,点 击Undock按钮就可以使该窗口脱离桌面成为独立窗口。在独立窗口的Desktop菜单中选择Dock 项就可以将独立的窗口重新放置到桌面上。1.5 如何启动M文件编辑/调试器?答:在操
3、作桌面上选择 建立新文件 或 打开文件 操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。1.6 存储在工作空间中的数组能编辑吗?如何操作?答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜
4、索路径上的文件有什么区别?答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够 被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。1.9 在MATLAB中有几种获得帮助的途径?答(1)帮助浏览器:选 择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器。(2)help命 令:在命令窗口键入help命令可以列出
5、帮助主题,键 入help函数名 可以得到指定函数的在线帮助信息。(3)lookfor命 令:在命令窗口键入lookfor关键词 可以搜索出一系列与给定关键词相关的命令和函数。(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。注 意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。第2章 MATLAB矩阵运算基础2.1在 MATLAB中如何建立矩阵/7,并将其赋予变量a?4 9 1答:在 Command Window窗口输入操作:a=5 7 3;4 9 12.2 有几种建立矩阵的方法?各有什么
6、优点?答(1)直接输入法,如 a=l 2 3 4,优点是输入方法方便简捷;(2)通过M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改;(3)由函数建立,如 y=sin(x),可以由MATLAB的内部函数建立一些特殊矩阵;(4)通过数据文件建立,该方法可以调用由其他软件产生数据。2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求?答:进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与 b 相乘(a*b)时必须满足a 的列数等于b 的行数。2.4数组运算和矩阵运算的运算符有什么区别?答:在加、减运算时数组运算与矩阵运算的运算符相同,
7、乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。52.5计算矩阵373795 24与68 84 27 9之和。3 6里 a=5 3 b=2 45;3 7 4;7 9 8;2;6 7 9;8 3 6;a+bans=7 7 79 14 1315 12 142.6求1=4+8i3+2i3+5i7-6i2-7i l+4i9+4i 3-9i7-5i4+4i的共粒转置。农口 x=4+8i 3+5i 2-7i xl+4i 7-5 i;3+2i 7-6i 9+4i 3-9i 4 4 4 i;ans=4.0000-8.000013.0000-2.OOOOi3.0
8、000-5.OOOOi7.0000+6.OOOOi2.0000+7.OOOOi9.0000-4.OOOOi1.0000-4.0000i3.0000+9.OOOOi7.0000+5.0000i4.0000-4.000012.7计算;与,=:6 8的数组乘积。农1=1 a=6b=2a.*b9 3;24 1;47 5;6 8;ans12836423402.8 左除 与 右除 有什么区别?答:在通常情况下,左除x=ab是a*x=b的解,分母在左边。右除x=b/a是x*a=b的解,分母在右边。一般情况下,abwb/a。4 9 22.9 对于 AX=3,如果 A=7 6 43 5 7378=26,求解X2
9、8型口 A=4 9 2;7 6 4;3 5 7;B=37 26 2 8;X=AB-0.51184.04271.331812.10 已知:=472 35 6,分别计算a的数组平方和矩阵平方,并观察其结果。8 9答:a的数组的平方:a=l 2 3;4 5 6,7 8 9;a.2ans=1 4 916 25 3649 64 81a 的矩阵的平方:aA230 36 4266 81 96102 126 1502.11 4=1:51,;7:,观察a 与 6 之间的六种关系运算的结果。3 6-4J 3 6 2圣口 a=l 2 3;4 5 6;b=8-7 4;3 6 2;abans=0 1 01 0 1 a=
10、b0 1 01 0 11 0 10 1 0 a t i t le y=exp(-a*t+l)?)2.21在5.1题结果图中添加标题),=对 和图例框。2.22表中列出了 4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。第1次第2次第3次第4次第5次第6次观测点1367428观测点2673247观测点3972584观测点4643274 y=3 6 9 6;6 7 7 4;7 3 2 3;4 2 5 2;2 4 8 7;8 7 4 4;bar(y)bar(%stack)2.23 x=66 49 71 56 38,绘制饼图,并将第五个切块分离出来。x=66 49 71 56 38
11、;L=0 0 0 0 1;pie(x3 L)14%20%25%2.24 z=2 ,当x和y的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。x,y=meshgrid(-2:.2:2);z=x.*exp(-x.A2-y.*2);mesh(x,y,z)subplot(2,2,1),p lo t3(x,y3 z)title C plot3(x,y,z)*)subplot(2,2,2),mesh(x,y,z)title (*mesh(x,y,z),)subplot(2,2,3),surf(x,%z)title (f surf(x,y,z)
12、,)subplot(2,2,4),surf(x,y,z),shading interp title (?surf(x,%z),shading interp)况。plot3(x,y,z)mesh(x,y,z)surf(x,y,z)2.25绘 制 peaks函数的表面图,用 coIorm叩函数改变预置的色图,观察色彩的分布情 surf(peaks(30);0 0 colormap(lines)2.2用sphere函 数 产 生 球 表 面 坐 标,绘 制 不 通 明 网 线 图、透 明 网 线 图、表面图和带剪孔的 表 面 图。x,%z=sphere(30);meshCx,y,z)mesh(x,y
13、,z)3 hidden off z(18:30,1:5)=NaN*ones(13,5);surf(x,y3 z)2.27将 5.9题中的带剪孔的球形表面图的坐标改变为正方形,以使球面看起来是圆的而不是椭圆的,然后关闭坐标轴的显示。axis square axis off第3章 符号数学基础(补充)3.1创建符号变量有几种方法?答:MATLAB提供了两种创建符号变量和表达式的函数:sym和 symsosym用于创建一个符号变量或表达式用法如x=sym(x)及 f=sym(x+y+z),syms用于创建多个 符号变量,用法如syms xy zof=sym(,x+y+z)相当于syms x y zf
14、=x+y+z3.2 下面三种表示方法有什么不同的含义?(1)f=3*xA2+5*x+2(2)f=3*xA2+5*x+2(3)x=sym(x)f=3*xA2+5*x+2答:(1)f=3*xA2+5*x+2表示在给定x时,将3*x2+5*x+2的数值运算结果赋值给变量f,如果没有给定x则指 瀚 误 信 息。(2)f=3*x、2+5*x+2表示将字符串3*xA2+5*x+2,赋值给字符变量f,没有任何计算含义,因此也不对字符串中的内容做任何 分析。(3)x=sym(x)f=3*xA2+5*x+2表示x是一个符号变量,因此算式f=3*x2+5*x+2就具有了符号函数的意义力也自然成为符号变量了。3.3
15、 用符号函数法求解方程a+b+c=O。答:r=solve(y a*t*2+b*t+c=0,t )r=1/2/a*(-b+(bA2-4*a*c)*(1/2)1/2/a*(-b-(bA2-4*a*c)A(1/2)3.4 用符号计算验证三角等式:sin(o)cos(g)-cos(仰)sin(经)=sin(仰-四)syms phil phi2;y=simple(sin(phi 1)*cos(phi2)-cos(phi 1)*sin(phi2)y=sin(phil-phi2)3.5求矩阵A 的行列式值、逆和特征根。a2 a22里u syms al 1 al2 a2 1 a2 2;A=all,al2;a2
16、 1,a2 2 A=all,al2 a2 1,a2 2 AD=det(A)AD=alI*a2 2-al2*a2 1 AI=inv(A)AI=a2 2/(all*a2 2-al2*a2 1),-a2 1/(all*a2 2-a a2 1),AE=eig(A)AE =%行列式%逆-al2/(alI*a2 2-al2*a2 1)all/(all*a2 2-al2*a2 1)%特征值l/2*all+l/2*a2 2+l/2*(all*2-2 all*a2 2+a2 2*2-K*al2*a2 1)*(1/2)l/2*all+l/2*a2 2-l/2*(air2-2*all*a2 2+a2 2*2+4*a
17、l2*a2 1)*(l/2)3.6 因式分解:X,-+5x2+5x 6生口 syms x;f=x A4-5*xA 3+5*xA 2+5*x-6;facto r(f)ans=(x-l)*(x-2)*(x-3)*(x+l)2 13.7 f=a x 7,用符号微分求df/dx。eax log(x)sin(x)牧口 syms a x;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),l/x,cos(x)3.8 求 代 数 方 程 组 刀+=关于x,y的解。x+y=0农口 S=solve(a*x*2+b*y4-
18、c=0,9 b*x+c=0,x,y);disp(Sx=),disp(S.x)S.x=-c/b disp(S.y=*)s disp(S.y)S.y=-c*(a*c+bA2)/b*33.9符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t 的变化范围为0,2 兀 。答:syms t ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),0,p i)3.10绘制极坐标下sin(3*t)*cos(t)的图形。去P=I syms t ezpolar(sin(3*t)*cos(t)第 4 章MATLAB其他函数库4.1将(x-6)(x-3
19、)(x-8)展开为系数多项式的形式。彦1=1 a=6 3 8;pa=poly(a);pp a=p oly2 sym(p a)PPa=xA3-17*xA2+90*x-1444.2求解多项式 正7层+2x+40的根。效口 r=l-7 2 40;p=roots(r)P=5.00004.0000-2.00004.3求解在后8时多项式(x-l)(x-2)(x-3)(x-4)的值。里 p=poly(l 2 3 4 );polyvalm(p,8)ans=8404.4计算多项式乘法(+2x+2)(g+5x+4)。农口 c=conv(1 2 2,1 5 4)c=1 7 16 18 84.5计算多项式除法(3M+
20、13解+6x+8)/(x+4)。林口 d=deconv(3 13 6 8,1 4)d=3124.6对下式进行部分分式展开:3 1+2/+5*2+4*+6x5+3x4+4x3+2x2+7x+2圣口 a=l 3 4 2 7 2;b=3 2 5 4 6;r,s,k=residue(b,a)r=1.1274+1.1513i1.1274-1.1513i-0.0232-0.0722i-0.0232+0.0722i0.7916-1.7680+1.26731-1.76801.267310.4176+1.1130i0.41761.1130i-0.29914.7计算多项式4 P -121-14x2+5x+9的微分
21、和积分。彦口 p=4-12-14 5;pder=polyder(p);pders=poly2sym(pder)pders=12*x*2-24*x-14 pint=polyint(p);pint s=poly2sym(pint)pints=xA4-4*x*3-7*xA2+5*x杰口 290134.8解方程组3411x=62266 a=2 9 0;3 4 11;2 2 6;b=13 6 6;x=abx=7.4000-0.2000-1.40004.9求欠定方程组二:7 的最小范数解。9 3 5 6 5答:a=2 4 7 4;9 3 5 6 ;b=8 5 ;x=pin v(a)*bx=-0.21 5
22、10.4 4 5 90.7 9 4 90.27 0 74.10有一组测量数据如下表所示,数据具有片N 的变化趋势,用最小二乘法求解%Xi1.522.533.544.55y-1.42.735.98.412.216.618.826.2里1=1 x=l 1.5 2 25 3 35 4 4.5 5 ;y=-1.4 2.7 3 5.9 8.4 1 2.2 1 6.6 1 8.8 26.2 e=o n e s(size(x)x.*2;c=e y;xl=l:0.1:5 1,;yl=o n e s(size(xl),xl.*2*c;pl o t(x,%ro s xl,yl,k )4 2-64.11 矩阵”7
23、5 43 4 9计算a 的行列式和逆矩阵。农i=i a=4 2-6;7 5 4;3 4 9;ad=det(a)ad=-64 ai=inv(a)ai=-0.45310.6562-0.59370.7969-0.84380.9063-0.20310.1563-0.09384.1 2 片 sin,x 从 0 到 2 兀,AmO.02 兀,求y 的最大值、最小值、均值和标准差。募口 x=0:0.02*pi:2*pi;y=sin(x);ymax=max(y)ymax=1 ymin=min(y)ymin=-1 ymean=mean(y)ymean=2.2995e-017 ystd=std(y)ystd=0.
24、70714.13 x=l 2 3 4 5,y=2 4 6 8 10,计 算X的协方差、/的协方差、X与/的互协方差。冬口 x=l 2 3 4 5;y=2 4 6 8 10;cx=cov(x)cy=cov(y)cxy=cov(x,y)ex=2.500010exy=2.5000 5.00005.0000 10.00004.14参照例3-2 0的方法,计算表达式:=ioG-y5卜4产的梯度并绘图。生口 V=-2:0.2:2;x,y=meshgrid(v);z=10*(x.A 3-y.*5).*exp(-x.*2-y.*2);px,py=gradient(z,2,2);contour(x,y,z)ho
25、ld onquiver(x,y,px,py)hold off4.15有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:pi/5:4*pi,用三次样条法进行插值。区口 x0=0:pi/5:4*pi;yO=sin(xO).*exp(-x0/10);x=0:pi/20:4*pi;y=spline(xO,yO,x);plot(x03 y0$ors x,y,b)M文件编程1命令文件与函数文件的主要区别是什么?答(1)命令文件是一系列命令的组合,函数文件的第一行必须用function说明;(2)命令文件没有输入参数,也不用返回参数,函数文件可以接受输入参数,也可以返回参数;(3)命令文
26、件处理的变量为工作空间变量,函数文件处理的变量为函数内部的局部变量,也可以处理全局变量。2如何定义全局变量?答:用关键字global可以把一个变量定义为全局变量,在M文件中定义全局变量时,如果在当前工作空间已经存在了相同的变量,系统将会给出警告,说明由于将该变量定义为全局变 量,可能会使变量的值发生改变,为避免发生这种情况,应该在使用变量前先将其定义为全局变量。3如 果x是一个结构型数组,如何观察其中的内容?结果数组用于存储一组相关的数据元素(域),这些元素可以是不同类型、不同尺寸的,结构数组不能用数组编辑器观察和修改其中的元素。对于明为x的结构型数组,可以直接键入x以观察其中所包含的域名及内
27、容,也可以键入x.域名观察指定域名的内容,例如xX=name:linecolor:reddata:1 2.7000 3 5.9000 8.4000 12.2000 16.6000 18.8000 26.2000 x.colorans=red4 if语句有几种表现形式?答(1)if表达式语句体end(2)i f表达式语句体1else语句体2end(3)i f表达式1语句体1elseif表达式2语句体2end(4)i f表达式1语句体1elseif表达式2语句体2else语句体3end5说明break语句和return语句的用法。答:break语句用于终止for循环和while循环的执行。如果遇到
28、break语句,则退出循环体,继续执行循环体外的下一行语句。在嵌套循环中,break只存在于最内层的循环中。return语句用于终止当前的命令序列,并返回到调用的函数或键盘,也用于终止keyboad方式,在MATLAB中,被调用的函数运行结束后会自动返回调用函数,使用return语句时将return插入被调用函数的某一位置,根据某种条件迫使被调用函数提前结束并返回调用函数。6 有一周期为4兀的正弦波上叠加了方差为0.1的正态分布的随机噪声的信号,用循环结构编制一个三点线性滑动平均的程序。(提示:用0.1*randnQ,n)产生方差为0.1的正态分布的随 机 噪 声;三点线性滑动平均就是依次取每
29、三个相邻数的平均值作为新的数据,如xl(2)=(x(l)+x(2)+x(3)/3,xl(3)=(x(2)+x(3)+x(4)/3)里 t=0:pi/50:4*pi;n=length(t);y=sin(t)+0.l*randn(l$n);ya(l)=y(l);for i=2:n-lya(i)=sum(y(i-1:i+1)/3;end ya(n)=y(n);plot(t,y,c,t,ya,r linewidth,2)7编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为L里1=1 function c=collatz(n)%collatz%Class
30、ic 3n+l Ploblem from number theoryc=n;while nlif rem(n,2)=0n=n/2;elsen=3*n+l;endc=c n;end8有一组学生的考试成绩(见表),根据规定,成绩在100分时为满分,成绩在90-99之间时为优秀,成绩在80-89分之间时为良好,成绩在60-79分之间为及格,成绩在60分以下时为不及格,编制一个根据成绩划分等级的程序。学生姓名王张刘李陈杨于黄郭赵成 绩728356941008896685465庄口 Name二王,张 划李,陈榻 于/黄 郭/赵 Marks=72,83,56,94,100,88,96,68,5%65;n=
31、1 engt h(Mark s);for i=l:nai=89+i;bi=79+i;ci=69+i;di=59+i;end;c=d,c;for i=l:n学生姓名 得分 等级switch Marks(i)case 100%得分为100时Rank(i,:)=,满分;case a%得分在9099之间Rank(/:)=优秀;case b%得分在8089之间Rank(i,:)=,良好;case c%得分在6079之间Rank(i,:)=,及格;otherwise%得分低于60。Rankdj:)=不及格;endend dispC )disp(学 生 姓 名 得 分等级 );disp(-,)for i=l
32、:10;disp(f?9Name(i),num2 st r(Marks(i),Rank(i,:);end王72及格张83良好刘56不及格李94优秀陈100满分杨88良好于96优秀黄68及格郭54不及格赵65及格9编写一段程序,能够把输入的摄氏温度转化成华氏温度,也能把华氏温度转换成摄氏温度。答:k=input(选择转换方式(1 一摄氏转换为华氏,2华氏转换为摄氏):,);if k=l&k=2disp(清指定转换方式)breakendtixinput(输入待转变的温度(允许输入数组):);if k=ltout=tin*9/5+32;%摄氏转换为华氏kl=2;elseif k=2tout=(tin
33、-32)*5/9;%华氏转换为摄氏kl=l;endst r=C F;disp(转换前的温度 转换后的温度 )disp(U 7 9 num2 str(tin)3 str(k,:),num2 str(tout),str(klj:)选择转换方式(1 一摄氏转换为华氏,2-华氏转换为摄氏):10 keyboard命令的作用是什么?当在函数中使用keyboard命令时,是否可以在工作空间浏览器中观察和修改函数中的局部变量?退出keyboard状态的命令是什么?编一个函数文件,在其中设置keyboard,观察变量情况。答:当运行中的程序遇到keyboard命令时会暂时停止运行,将控制权交给键盘,这时命令窗
34、口的提示符变为K,可以在命令窗口或工作空间浏览器中观察和修改变量内容,如果keyboard命令设置在函数中,则可以观察和修改函数中的局部变量,检查或修改完成后,键入return命令,退出keyboard状态,控制权交还给系统,程序将继续运行。第9章Simulink基础9.1 什么是 Simulink?答:Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持连续的、离散的或二者混合的线性和非线性系统,也支持具有多种采样速率的多速率系统。9.2 如何进行下列操作:(1)翻 奔 专 模 块(2)给模型窗口加标题(3)指定仿真时间(4)设置示波器的显示刻度答(1)翻转模块翻 转:将
35、鼠标指针指向要翻转的模块并按下鼠标右键,在弹出的菜单中选择Format栏中的Flip Block项,模块将翻转180,每选择一次模块都将翻转180,该操作也可以在菜单栏中的Format菜单中进行。(2)给模型窗口加标题在模型窗口的上方双击鼠标左键,会出现的一个文本输入框,输入文字并通过Format菜单中的选项改变字体的颜色和大小,就可以做出一个好看的标题。(在模型窗口的任意地方都可以通过双击鼠标左键后输入文字为模型窗口添加说明)(3)指定仿真时间选择Simulation菜单打开参数设置对话框,在Solver页面中第一项Simulation time中通过输入开始时间和结束时间来确定仿真时间。(
36、4)设置示波器的显示刻度双击示波器模块弹出示波器显示窗口,在坐标轴区域内的任意位置单击鼠标右键,在弹出的菜单中选择Axes properties菜单项弹出示波器坐标轴属性对话框,可以设置Y轴显示的范围。9.3 有传递函数如下的控制系统,用Simulink建立系统模型,并对系统的阶跃响应进行仿真。答:G(s)=-s2+45+80.140.120.10.080.060.040.020Transfer Fen9.4建立一个简单模型,用信号发生器产生一个幅度为2V、频率为0.5Hz的正弦波,并叠加一个0.1V的噪声信号,将叠加后的信号显示在示波器上并传送到工作空间。废1=1 9.5 建立一个简单模型,产生一组常数(1x5),再将该常数与其5倍的结果合成一个二维数组,用数字显示器显示出来。生口 Display9.6 建立一个模拟系统,将摄氏温度转换为华氏温度(Tf=9/5Tc+32 X林口 Constant9.7 建立二阶系统G(S)=一 巴 7的脉冲响应模型,设s=10Hz,观察当0 1时系统的响应。答:Generator=0.029.8 皮球以15米/秒的速度从10米高的地方落下,建立显示球弹跳轨迹的模型。里i=i