《matlab经典习题及解答41062.doc》由会员分享,可在线阅读,更多相关《matlab经典习题及解答41062.doc(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章 MATLAB概论1.1 与其他计算机语言相比较,MATLAB语言突出的特点是什么?MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。1.2 MATLAB系统由那些部分组成?MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的
2、过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock 菜单项就可以将独立的窗口重新防止的桌面上。1.5 如何启动M文件编辑/调试器?在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit
3、命令时也可以启动M文件编辑/调试器。1.6 存储在工作空间中的数组能编辑吗?如何操作?存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面
4、的file菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。1.9 在MATLAB中有几种获得帮助的途径?在MATLAB中有多种获得帮助的途径:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器;(2)help命令:在命令窗口键入“help” 命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息;(3)l
5、ookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。第2章 MATLAB矩阵运算基础2.1 在MATLAB中如何建立矩阵,并将其赋予变量a? a=5 7 3;4 9 12.2 有几种建立矩阵的方法?各有什么优点?可以用四种方法建立矩阵:直接输入法,如a=2 5 7 3,优点是输入方法方便简捷;通过M文件建立矩阵,该方法适用于建立尺寸较大的矩
6、阵,并且易于修改;由函数建立,如y=sin(x),可以由MATLAB的内部函数建立一些特殊矩阵;通过数据文件建立,该方法可以调用由其他软件产生数据。2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求?进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a与b相乘(a*b)时必须满足a的列数等于b的行数。2.4 数组运算和矩阵运算的运算符有什么区别?在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。2.5 计算矩阵与之和。 a=5 3 5;3 7 4;7 9
7、8; b=2 4 2;6 7 9;8 3 6; a+bans = 7 7 7 9 14 13 15 12 142.6 求的共轭转置。 x=4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i; xans = 4.0000 - 8.0000i 3.0000 - 2.0000i 3.0000 - 5.0000i 7.0000 + 6.0000i 2.0000 + 7.0000i 9.0000 - 4.0000i 1.0000 - 4.0000i 3.0000 + 9.0000i 7.0000 + 5.0000i 4.0000 - 4.0000i2.7
8、计算与的数组乘积。 a=6 9 3;2 7 5; b=2 4 1;4 6 8; a.*bans = 12 36 3 8 42 402.8 “左除”与“右除”有什么区别?在通常情况下,左除x=ab是a*x=b的解,右除x=b/a是x*a=b的解,一般情况下,abb/a。2.9 对于,如果,求解X。 A=4 9 2;7 6 4;3 5 7; B=37 26 28; X=ABX = -0.5118 4.0427 1.33182.10 已知:,分别计算a的数组平方和矩阵平方,并观察其结果。 a=1 2 3;4 5 6;7 8 9; a.2ans = 1 4 9 16 25 36 49 64 81 a2
9、ans = 30 36 42 66 81 96 102 126 1502.11 ,观察a与b之间的六种关系运算的结果。 a=1 2 3;4 5 6; b=8 7 4;3 6 2; abans = 0 1 0 1 0 1 a=bans = 0 1 0 1 0 1 a a a=bans = 0 0 0 0 0 0 a=bans = 1 1 1 1 1 12.12 ,在进行逻辑运算时,a相当于什么样的逻辑量。相当于a=1 1 0 1 1。2.13 在sin(x)运算中,x是角度还是弧度?在sin(x)运算中,x是弧度,MATLAB规定所有的三角函数运算都是按弧度进行运算。2.14 角度,求x的正弦、
10、余弦、正切和余切。 x=30 45 60; x1=x/180*pi; sin(x1)ans = 0.5000 0.7071 0.8660 cos(x1)ans = 0.8660 0.7071 0.5000 tan(x1)ans = 0.5774 1.0000 1.7321 cot(x1)ans = 1.7321 1.0000 0.57742.15 用四舍五入的方法将数组2.4568 6.3982 3.9375 8.5042取整。 b=2.4568 6.3982 3.9375 8.5042; round(b)ans = 2 6 4 92.16 矩阵,分别对a进行特征值分解、奇异值分解、LU分解、
11、QR分解及Chollesky 分解。 v,d=eig(a,b)v = -0.4330 -0.2543 -0.1744 -0.5657 0.9660 -0.6091 -0.7018 0.0472 0.7736d = 13.5482 0 0 0 4.8303 0 0 0 3.6216 a=9 1 2;5 6 3;8 2 7; u,s,v=svd(a)u = -0.5601 0.5320 -0.6350 -0.4762 -0.8340 -0.2788 -0.6779 0.1462 0.7204s = 15.5234 0 0 0 4.5648 0 0 0 3.3446v = -0.8275 0.391
12、7 -0.4023 -0.3075 -0.9156 -0.2592 -0.4699 -0.0907 0.8781 l,u=lu(a)l = 1.0000 0 0 0.5556 1.0000 0 0.8889 0.2041 1.0000u = 9.0000 1.0000 2.0000 0 5.4444 1.8889 0 0 4.8367 q,r=qr(a)q = -0.6903 0.3969 -0.6050 -0.3835 -0.9097 -0.1592 -0.6136 0.1221 0.7801r = -13.0384 -4.2183 -6.8260 0 -4.8172 -1.0807 0 0
13、 3.7733 c=chol(a)c = 3.0000 0.3333 0.6667 0 2.4267 1.1447 0 0 2.29032.17 将矩阵、和组合成两个新矩阵:(1)组合成一个43的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即 (2)按照a、b、c的列顺序组合成一个行矢量,即 a=4 2;5 7; b=7 1;8 3; c=5 9;6 2;% (1) d=a(:) b(:) c(:) d = 4 7 5 5 8 6 2 1 9 7 3 2% (2) e=a(:);b(:);c(:) e = 4 5 2 7 7 8
14、1 3 5 6 9 2 或利用(1)中产生的d e=reshape(d,1,12) ans = 4 5 2 7 7 8 1 3 5 6 9 2第6章 数值计算基础3.1 将(x-6)(x-3)(x-8)展开为系数多项式的形式。 a=6 3 8; pa=poly(a); ppa=poly2sym(pa) ppa = x3-17*x2+90*x-1443.2 求解多项式x3-7x2+2x+40=0的根。 r=1 -7 2 40; p=roots(r); -0.2151 0.4459 0.7949 0.27073.3 求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值。 p=poly
15、(1 2 3 4); polyvalm(p,8) ans = 8403.4 计算多项式乘法(x2+2x+2)(x2+5x+4)。 c=conv(1 2 2,1 5 4) c = 1 7 16 18 83.5 计算多项式除法(3x3+13x2+6x+8)/(x+4)。 d=deconv(3 13 6 8,1 4) d = 3 1 23.6 对下式进行部分分式展开: a=1 3 4 2 7 2; b=3 2 5 4 6; r,s,k=residue(b,a) r = 1.1274 + 1.1513i 1.1274 - 1.1513i -0.0232 - 0.0722i -0.0232 + 0.07
16、22i 0.7916 s = -1.7680 + 1.2673i -1.7680 - 1.2673i 0.4176 + 1.1130i 0.4176 - 1.1130i -0.2991 k = 3.7 计算多项式的微分和积分。 p=4 12 14 5; pder=polyder(p); pders=poly2sym(pder) pint=polyint(p); pints=poly2sym(pint) pders = 12*x2-24*x-14 pints = x4-4*x3-7*x2+5*x3.8 解方程组。 a=2 9 0;3 4 11;2 2 6; b=13 6 6; x=ab x =
17、7.4000 -0.2000 -1.40003.9 求欠定方程组的最小范数解。 a=2 4 7 4;9 3 5 6; b=8 5; x=pinv(a)*b x = -0.2151 0.4459 0.7949 0.27073.10 有一组测量数据如下表所示,数据具有y=x2的变化趋势,用最小二乘法求解y。x11.522.533.544.55y-1.42.735.98.412.216.618.826.2 x=1 1.5 2 2.5 3 3.5 4 4.5 5 y=-1.4 2.7 3 5.9 8.4 12.2 16.6 18.8 26.2 e=ones(size(x) x.2 c=ey x1=1:
18、0.1:5; y1=ones(size(x1),x1.2*c; plot(x,y,ro,x1,y1,k)3.11 矩阵,计算a的行列式和逆矩阵。 a=4 2 -6;7 5 4 ;3 4 9; ad=det(a) ai=inv(a) ad = -64 ai = -0.4531 0.6562 -0.5937 0.7969 -0.8437 0.9062 -0.2031 0.1562 -0.09373.12 y=sin(x),x从0到2p,Dx=0.02p,求y的最大值、最小值、均值和标准差。 x=0:0.02*pi:2*pi; y=sin(x); ymax=max(y) ymin=min(y) ym
19、ean=mean(y) ystd=std(y) ymax = 1 ymin = -1 ymean = 2.2995e-017 ystd = 0.70713.13 ,计算x的协方差、y的协方差、x与y的互协方差。 x=1 2 3 4 5; y=2 4 6 8 10; cx=cov(x) cy=cov(y) cxy=cov(x,y) cx = 2.5000 cy = 10 cxy = 2.5000 5.0000 5.0000 10.00003.14 参照例3-20的方法,计算表达式的梯度并绘图。 v = -2:0.2:2; x,y = meshgrid(v); z=10*(x.3-y.5).*ex
20、p(-x.2-y.2); px,py = gradient(z,.2,.2); contour(x,y,z) hold on quiver(x,y,px,py) hold off3.15 有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:pi/5:4*pi,用三次样条法进行插值。 x0=0:pi/5:4*pi; y0=sin(x0).*exp(-x0/10); x=0:pi/20:4*pi; y=spline(x0,y0,x); plot(x0,y0,or,x,y,b)第4章 符号数学基础4.1 创建符号变量有几种方法?MATLAB提供了两种创建符号变量和表达式的函数:sy
21、m和syms。sym用于创建一个符号变量或表达式,用法如x=sym(x) 及 f=sym(x+y+z),syms用于创建多个符号变量,用法如syms x y z。 f=sym(x+y+z)相当于 syms x y z f= x+y+z4.2 下面三种表示方法有什么不同的含义?(1)f=3*x2+5*x+2(2)f=3*x2+5*x+2(3)x=sym(x) f=3*x2+5*x+2(1)f=3*x2+5*x+2表示在给定x时,将3*x2+5*x+2的数值运算结果赋值给变量f,如果没有给定x则指示错误信息。(2)f=3*x2+5*x+2表示将字符串3*x2+5*x+2赋值给字符变量f,没有任何计
22、算含义,因此也不对字符串中的内容做任何分析。(3)x=sym(x) f=3*x2+5*x+2表示x是一个符号变量,因此算式f=3*x2+5*x+2就具有了符号函数的意义,f也自然成为符号变量了。4.3 用符号函数法求解方程at2+b*t+c=0。 r=solve(a*t2+b*t+c=0,t) r = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)4.4 用符号计算验证三角等式: sin(j1)cos(j2)-cos(j1)sin(j2) =sin(j1-j2) syms phi1 phi2; y=simple(sin(phi1)*cos
23、(phi2)-cos(phi1)*sin(phi2) y = sin(phi1-phi2)4.5 求矩阵的行列式值、逆和特征根。 syms a11 a12 a21 a22; A=a11,a12;a21,a22 AD=det(A) % 行列式 AI=inv(A) % 逆 AE=eig(A) % 特征值 A = a11, a12 a21, a22 AD = a11*a22-a12*a21 AI = -a22/(-a11*a22+a12*a21), a12/(-a11*a22+a12*a21) a21/(-a11*a22+a12*a21), -a11/(-a11*a22+a12*a21) AE =
24、1/2*a11+1/2*a22+1/2*(a112-2*a11*a22+a222+4*a12*a21)(1/2) 1/2*a11+1/2*a22-1/2*(a112-2*a11*a22+a222+4*a12*a21)(1/2)4.6 因式分解: syms x; f=x4-5*x3+5*x2+5*x-6; factor(f) ans = (x-1)*(x-2)*(x-3)*(x+1)4.7 ,用符号微分求df/dx。 syms a x; f=a, x2, 1/x; exp(a*x), log(x), sin(x); df=diff(f) df = 0, 2*x, -1/x2 a*exp(a*x)
25、, 1/x, cos(x)4.8 求代数方程组关于x,y的解。 S=solve(a*x2+b*y+c=0,b*x+c=0,x,y); disp(S.x=) , disp(S.x) disp(S.y=) , disp(S.y) S.x= -c/b S.y= -c*(a*c+b2)/b34.9 符号函数绘图法绘制函数x=sin(3t)cos(t),y=sin(3t)sin(t)的图形,t的变化范围为0,2p。 syms t ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),0,pi) 4.10 绘制极坐标下sin(3*t)*cos(t)的图形。 syms t ezpol
26、ar(sin(3*t)*cos(t)第5章 基本图形处理功能5.1 绘制曲线,x的取值范围为-5,5。 x=-5:0.2:5; y=x.3+x+1; plot(x,y)5.2 有一组测量数据满足,t的变化范围为010,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线。 t=0:0.5:10; y1=exp(-0.1*t); y2=exp(-0.2*t); y3=exp(-0.5*t); plot(t,y1,-ob,t,y2,:*r,t,y3,-.g)5.3 在5.1题结果图中添加标题,并用箭头线标识出各曲线a的取值。 title(ityrm=e-itat) title
27、(ityrm=e-itat,FontSize,12) text(t(6),y1(6),leftarrowitarm=0.1,FontSize,11) text(t(6),y2(6),leftarrowitarm=0.2,FontSize,11) text(t(6),y3(6),leftarrowitarm=0.5,FontSize,11)5.4 在5.1题结果图中添加标题和图例框。 title(ityrm=e-itat,FontSize,12) legend(a=0.1,a=0.2,a=0.5)5.5表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。第1次第2次第3
28、次第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(y,stack)5.6 x= 66 49 71 56 38,绘制饼图,并将第五个切块分离出来。 x=66 49 71 56 38; L=0 0 0 0 1; pie(x,L)5.7 ,当x和y的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。 x,y=meshgrid(-2:.2:2); z=x.*exp(-
29、x.2-y.2); mesh(x,y,z) subplot(2,2,1), plot3(x,y,z) title(plot3 (x,y,z) subplot(2,2,2), mesh(x,y,z) title(mesh (x,y,z) subplot(2,2,3), surf(x,y,z) title(surf (x,y,z) subplot(2,2,4), surf(x,y,z), shading interp title(surf (x,y,z), shading interp)5.8 绘制peaks函数的表面图,用colormap函数改变预置的色图,观察色彩的分布情况。 surf(pea
30、ks(30); colormap(hot) colormap(cool) colormap(lines) 5.9 用sphere函数产生球表面坐标,绘制不通明网线图、透明网线图、表面图和带剪孔的表面图。 x,y,z=sphere(30); mesh(x,y,z) mesh(x,y,z),hidden off surf(x,y,z) z(18:30,1:5)=NaN*ones(13,5); surf(x,y,z)5.10 将5.9题中的带剪孔的球形表面图的坐标改变为正方形,以使球面看起来是圆的而不是椭圆的,然后关闭坐标轴的显示。 axis square axis off第6章 高级图形处理功能6
31、.1 轴对象是使用的最多的图形对象之一,那么轴对象是哪个对象的子对象,又是那些对象的父对象? 轴对象是图形窗口对象的子对象,是图像、灯光、线、块、矩形、表面、字的父对象。6.2 什么是图形句柄?图形句柄有什么用途? 图形句柄是每个图形对象从产生时起就被赋予的一个唯一的标识。利用图形句柄既可以操纵一个已经存在的图形对象的属性,也可以在建立图形对象时指定属性的值,特别是对指定对象句柄的操作不会影响同时存在的其他对象,这是非常有用的。6.3 如何设置和获取指定句柄对象的属性值?一图形窗口对象的句柄为h,先查询该窗口对象可以设置的各种属性,再将窗口的灰色背景设置为白色背景。 (1)利用set(句柄,属
32、性名称,属性值)语句可以设置指定对象的属性,get(句柄,属性名称)语句可以获得指定对象的属性。(2) set(h)AlphamapBackingStore: on | off CloseRequestFcn: string -or- function handle -or- cell arrayColorColormapCurrentAxesCurrentCharacterCurrentObject 从列出的属性内容可以看到,设置背景颜色的属性名为Color,因此 set(h,color,w)即可将图形窗口的背景色改为白色。6.4 已知三维图形视角的缺省值是方位角为-37.5,仰角为30,将
33、观察点顺时针旋转20角的命令是什么? view(-57.5,30)6.5画一双峰曲面(peaks)图,加灯光light,改变光源的位置观察图形的变化。 surf(peaks) shading interp lighting phong light(Position,-3 -2 1); light(Position,-1 0 1);6.6 在双峰曲面上改变不同的光照模式,观察效果。 surf(peaks) shading interp light(Position,-3 -2 1); lighting flat lighting gouraud lighting phong lighting n
34、one6.7 用subplot语句在一个图形窗口上开多个大小不等的子窗口进行绘图并添加注释,见图。 subplot(position,0.1,0.15,0.3,0.65) hist(randn(1,1000),20); xlabel(直方图) subplot(position,0.45,0.52,0.25,0.28) xp,yp,zp=peaks; contour(xp,yp,zp,15,k) hold on pcolor(xp,yp,zp) shading interp hold off axis off text(-1.2,-4,伪彩色图) subplot(position,0.72,0.
35、5,0.25,0.3) sphere(25); axis equal,axis(-0.75,0.75,-0.75,0.75,-0.75,0.75) light(Position,1 3 2); light(Position,-3 -1 3); material shiny axis off text(-0.8,-0.7,-1,三维图) subplot(position,0.45,0.15,0.5,0.25) t=0:pi/15:pi; y=sin(4*t).*sin(t)/2; plot(t,y,-bs,LineWidth,2,. %设置线型 MarkerEdgeColor,k,. %设置标记
36、点边缘颜色 MarkerFaceColor,y,. %设置标记点填充颜色 MarkerSize,5) axis(0,3.14,-0.5,0.5) xlabel(带标记点的线图) subplot(position,0.1,0.9,0.8,0.1) text(0.25,0.2,多窗口绘图示例,. fontsize,25,fontname,隶书,color,b) axis off6.8 用c,hc=contour(peaks(30)语句绘制双峰曲面的等高线图,通过控制图形句柄的方法将第四条等高线加粗为2磅,将第六条等高线表示为虚线,在第十条等高线上加星号标记 c,hc=contour(peaks(30); set(hc(4),linewidth,2)