matlab课后习题及答案详解

更新时间:2023-10-14 07:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1章 MATLAB概论

1.1 与其他计算机语言相比较,MATLAB语言突出的特点是什么?

MATLAB具有功能强大、使用方便、输入简捷、库函数丰富、开放性强等特点。 1.2 MATLAB系统由那些部分组成?

MATLAB系统主要由开发环境、MATLAB数学函数库、MATLAB语言、图形功能和应用程序接口五个部分组成。

1.3 安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装? 在安装MATLAB时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装。第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。

1.4 MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?

在MATLAB操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的Close按钮,一个是可以使窗口成为独立窗口的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择Dock ……菜单项就可以将独立的窗口重新防止的桌面上。

1.5 如何启动M文件编辑/调试器?

在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动。在命令窗口中键入edit命令时也可以启动M文件编辑/调试器。

1.6 存储在工作空间中的数组能编辑吗?如何操作?

存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可。

1.7 命令历史窗口除了可以观察前面键入的命令外,还有什么用途?

命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中。

1.8 如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别? 当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成。在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。

1.9 在MATLAB中有几种获得帮助的途径?

在MATLAB中有多种获得帮助的途径:

(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器;

(2)help命令:在命令窗口键入“help” 命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息;

(3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数

(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数。

注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息。

第2章 MATLAB矩阵运算基础

2.1 在MATLAB中如何建立矩阵?>> a=[5 7 3;4 9 1]

2.2 有几种建立矩阵的方法?各有什么优点? 可以用四种方法建立矩阵:

①直接输入法,如a=[2 5 7 3],优点是输入方法方便简捷;

②通过M文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; ③由函数建立,如y=sin(x),可以由MATLAB的内部函数建立一些特殊矩阵; ④通过数据文件建立,该方法可以调用由其他软件产生数据。 2.3 在进行算术运算时,数组运算和矩阵运算各有什么要求?

进行数组运算的两个数组必须有相同的尺寸。进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a与b相乘(a*b)时必须满足a的列数等于b的行数。

2.4 数组运算和矩阵运算的运算符有什么区别?

在加、减运算时数组运算与矩阵运算的运算符相同,乘、除和乘方运算时,在矩阵运算的运算符前加一个点即为数组运算,如a*b为矩阵乘,a.*b为数组乘。

?535??242?????2.5 计算矩阵?374?与?679?之和。

??798????836???573??,并将其赋予变量a? 491??>> a=[5 3 5;3 7 4;7 9 8];

matlab课后习题及答案详解

>> b=[2 4 2;6 7 9;8 3 6]; >> a+b ans =

7 7 7 9 14 13 15 12 14 2.6 求x???4?8i3?5i2?7i1?4i7?5i??的共轭转置。

?3?2i7?6i9?4i3?9i4?4i?>> x=[4+8i 3+5i 2-7i 1+4i 7-5i;3+2i 7-6i 9+4i 3-9i 4+4i]; >> x’ ans =

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.0000i 2.7 计算a???693??241?b?与??468?的数组乘积。

?275???>> a=[6 9 3;2 7 5]; >> b=[2 4 1;4 6 8]; >> a.*b ans =

12 36 3 8 42 40

2.8 “左除”与“右除”有什么区别?

在通常情况下,左除x=a\\b是a*x=b的解,右除x=b/a是x*a=b的解,一般情况下,a\\b?b/a。

?492??37?????2.9 对于AX?B,如果A??764?,B??26?,求解X。

???357???28??>> A=[4 9 2;7 6 4;3 5 7]; >> B=[37 26 28]’;

>> X=A\\B X = -0.5118 4.0427 1.3318

?123???2.10 已知:a??456?,分别计算a的数组平方和矩阵平方,并观察其结果。

??789??>> a=[1 2 3;4 5 6;7 8 9]; >> a.^2 ans =

1 4 9 16 25 36 49 64 81 >> a^2 ans =

30 36 42 66 81 96 102 126 150

2.11 a???125??8?74?,b????,观察a与b之间的六种关系运算的结果。 36?4362????>> a=[1 2 3;4 5 6]; >> b=[8 –7 4;3 6 2]; >> a>b ans =

0 1 0 1 0 1 >> a>=b ans =

matlab课后习题及答案详解

0 1 0 1 0 1 >> a

1 0 1 0 1 0 >> a<=b ans =

1 0 1 0 1 0 >> a==b ans =

0 0 0 0 0 0 >> a~=b ans =

1 1 1 1 1 1

2.12 a??50.20?8?0.7?,在进行逻辑运算时,a相当于什么样的逻辑量。 相当于a=[1 1 0 1 1]。

2.13 在sin(x)运算中,x是角度还是弧度?

在sin(x)运算中,x是弧度,MATLAB规定所有的三角函数运算都是按弧度进行运算。

2.14 角度x??304560?,求x的正弦、余弦、正切和余切。 >> 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.5774

2.15 用四舍五入的方法将数组[2.4568 6.3982 3.9375 8.5042]取整。 >> b=[2.4568 6.3982 3.9375 8.5042]; >> round(b) ans =

2 6 4 9

?912???2.16 矩阵a??563?,分别对a进行特征值分解、奇异值分解、LU分解、QR分解及Chollesky分解。

??827??>> [v,d]=eig(a,b) v =

-0.4330 -0.2543 -0.1744 -0.5657 0.9660 -0.6091 -0.7018 0.0472 0.7736 d =

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)

matlab课后习题及答案详解

u =

-0.5601 0.5320 -0.6350 -0.4762 -0.8340 -0.2788 -0.6779 0.1462 0.7204 s =

15.5234 0 0 0 4.5648 0 0 0 3.3446 v =

-0.8275 0.3917 -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.0000 u =

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.7801 r =

-13.0384 -4.2183 -6.8260 0 -4.8172 -1.0807 0 0 3.7733

>> c=chol(a) c =

3.0000 0.3333 0.6667 0 2.4267 1.1447 0 0 2.2903

2.17 将矩阵a???42??71??59?b?c?、和??83??62?组合成两个新矩阵:

?75?????(1)组合成一个4?3的矩阵,第一列为按列顺序排列的a矩阵元素,第二列为按列顺序排列的b矩阵元素,第三列为按列顺序排列的c矩阵元素,即

?4?5 ??2??775?86?? 19??32?(2)按照a、b、c的列顺序组合成一个行矢量,即 ?452778135692?

>> 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 1 3 5 6 9 2 或利用(1)中产生的d >> e=reshape(d,1,12)

matlab课后习题及答案详解

ans =

4 5 2 7 7 8 1 3 5 6 9 2

第3章 数值计算基础

3.1 将(x-6)(x-3)(x-8)展开为系数多项式的形式。 >> a=[6 3 8]; >> pa=poly(a); >> ppa=poly2sym(pa) ppa =

x^3-17*x^2+90*x-144 3.2 求解多项式x-7x+2x+40的根。 >> r=[1 -7 2 40]; >> p=roots(r); -0.2151 0.4459 0.7949 0.2707

3.3 求解在x=8时多项式(x-1)(x-2) (x-3)(x-4)的值。 >> p=poly([1 2 3 4]); >> polyvalm(p,8) ans = 840

3.4 计算多项式乘法(x+2x+2)(x+5x+4)。 >> c=conv([1 2 2],[1 5 4]) c =

1 7 16 18 8

3.5 计算多项式除法(3x+13x+6x+8)/(x+4)。 >> d=deconv([3 13 6 8],[1 4]) d =

3 1 2

3

2

2

2

3

2

3.6 对下式进行部分分式展开:

3x4?2x3?5x2?4x?6x?3x?4x?2x?7x?25432

>> 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.0722i 0.7916 s =

-1.7680 + 1.2673i -1.7680 - 1.2673i 0.4176 + 1.1130i 0.4176 - 1.1130i -0.2991 k = []

3.7 计算多项式4x4?12x3?14x2?5x?9的微分和积分。 >> p= [4 -12 -14 5 9]; >> pder=polyder(p); >> pders=poly2sym(pder) >> pint=polyint(p); >> pints=poly2sym(pint) pders =

12*x^2-24*x-14 pints =

x^4-4*x^3-7*x^2+5*x

matlab课后习题及答案详解

?290??13?????3.8 解方程组?3411?x??6?。

???226???6?? >> a=[2 9 0;3 4 11;2 2 6]; >> b=[13 6 6]'; >> x=a\\b x = 7.4000 -0.2000 -1.4000

3.9 求欠定方程组??2474??8?x???5?的最小范数解。

?9356??? >> a=[2 4 7 4;9 3 5 6]; >> b=[8 5]';

>> x=pinv(a)*b %伪逆 x = -0.2151 0.4459 0.7949 0.2707

3.10 有一组测量数据如下表所示,数据具有y=x的变化趋势,用最小二乘法求解y。

x y

>> 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=e\\y

>> x1=[1:0.1:5]';

1 1.5 2 3 2.5 5.9 3 3.5 4 4.5 5 2

-1.4 2.7 8.4 12.2 16.6 18.8 26.2 >> y1=[ones(size(x1)) x1.^2]*c; >> plot(x,y,'ro',x1,y1,'k') %平面线图

?42?6???3.11 矩阵a??754?,计算a的行列式和逆矩阵。

??349?? >> 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.0937

3.12 y=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)

matlab课后习题及答案详解

ymax = 1 ymin = -1 ymean = 2.2995e-017 ystd = 0.7071

3.13 x??12345?,y??246810?,计算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.0000

3.14 参照例3-20的方法,计算表达式z?10x3?y5e?x >> 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) %等位线 >> hold on

??2?y2的梯度并绘图。

>> quiver(x,y,px,py) %二维方向箭头图 >> hold off

3.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提供了两种创建符号变量和表达式的函数:sym和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+z

4.2 下面三种表示方法有什么不同的含义? (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,没有任何计算含义,因此也不对字符串中的内容做任何

matlab课后习题及答案详解

分析。

(3)x=sym('x') f=3*x^2+5*x+2

表示x是一个符号变量,因此算式f=3*x^2+5*x+2就具有了符号函数的意义,f也自然成为符号变量了。

4.3 用符号函数法求解方程at+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))]

4.4 用符号计算验证三角等式:

sin(?1)cos(?2)-cos(?1)sin(?2) =sin(?1-?2) >> syms phi1 phi2;

>> y=simple(sin(phi1)*cos(phi2)-cos(phi1)*sin(phi2)) y =

sin(phi1-phi2)

4.5 求矩阵A???a11?a21a12?的行列式值、逆和特征根。 a22??2

>> 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

本文来源:https://www.bwwdw.com/article/t4mf.html

Top