第 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 中如何建立矩阵
375
194
,并将其赋予变量 a?
>> 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 为数组乘。
2.5 计算矩阵
535
473
897
与
242
976
638
之和。
>> a=[5 3 5;3 7 4;7 9 8];
>> b=[2 4 2;6 7 9;8 3 6];
>> a+b
ans =
7
9
15
7
14
12
7
13
14
2.6 求
x
i53i84
i57
i44i93i49i67i23
i41i72
的共轭转置。
>> 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 - 5.0000i
2.0000 + 7.0000i
1.0000 - 4.0000i
3.0000 - 2.0000i
7.0000 + 6.0000i
9.0000 - 4.0000i
3.0000 + 9.0000i
7.0000 + 5.0000i
4.0000 - 4.0000i
2.7 计算
a
396
572
与
b
142
864
的数组乘积。
>> a=[6 9 3;2 7 5];
>> b=[2 4 1;4 6 8];
>> a.*b
ans =
12
8
36
42
3
40
2.8 “左除”与“右除”有什么区别?
在通常情况下,左除 x=a\b 是 a*x=b 的解,右除 x=b/a 是 x*a=b 的解,一般情况下,a\bb/a。
2.9 对于
AX ,如果
B
A
294
467
753
,
B
37
26
28
,求解 X。
,分别计算 a 的数组平方和矩阵平方,并观察其结果。
>> A=[4 9 2;7 6 4;3 5 7];
>> B=[37 26 28]’;
>> X=A\B
X =
-0.5118
4.0427
1.3318
2.10 已知:
a
321
654
987
>> a=[1 2 3;4 5 6;7 8 9];
>> a.^2
ans =
4
25
64
9
36
81
1
16
49
>> a^2
ans =
30
66
102
36
81
126
42
96
150
,
b
8
3
47
2
6
,观察 a 与 b 之间的六种关系运算的结果。
a
2.11
21
63
5
4
>> a=[1 2 3;4 5 6];
>> b=[8 –7 4;3 6 2];
>> a>b
ans =
0
1
>> a>=b
ans =
0
1
>> a> a<=b
ans =
1
0
>> a==b
ans =
0
0
>> a~=b
ans =
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
a
02.05
2.12
8
相当于 a=[1 1 0 1 1]。
7.0
,在进行逻辑运算时,a 相当于什么样的逻辑量。
2.13 在 sin(x)运算中,x 是角度还是弧度?
在 sin(x)运算中,x 是弧度,MATLAB 规定所有的三角函数运算都是按弧度进行运算。
45
60
,求 x 的正弦、余弦、正切和余切。
2.14 角度
30x
>> x=[30 45 60];
>> x1=x/180*pi;
>> sin(x1)
ans =
0.7071
0.8660
0.7071
0.5000
1.0000
1.7321
0.5000
>> cos(x1)
ans =
0.8660
>> tan(x1)
ans =
0.5774
>> cot(x1)
ans =
1.7321
1.0000
0.5774
2.15 用四舍五入的方法将数组[2.4568 6.3982
>> b=[2.4568
>> round(b)
ans =
8.5042];
6.3982
3.9375
2
6
4
9
3.9375
8.5042]取整。
,分别对 a 进行特征值分解、奇异值分解、LU 分解、QR 分解及 Chollesky 分解。
a
2.16 矩阵
219
365
728
>> [v,d]=eig(a,b)
v =
d =
-0.4330
-0.5657
-0.7018
13.5482
0
0
-0.2543
0.9660
0.0472
0
4.8303
0
-0.1744
-0.6091
0.7736
0
0
3.6216
>> a=[9 1 2;5 6 3;8 2 7];
>> [u,s,v]=svd(a)
u =
0.5320
-0.8340
0.1462
-0.6350
-0.2788
0.7204
-0.5601
-0.4762
-0.6779
15.5234
0
0
s =
v =
0
4.5648
0
-0.8275
-0.3075
-0.4699
0.3917
-0.9156
-0.0907
>> [l,u]=lu(a)
l =
u =
1.0000
0.5556
0.8889
9.0000
0
0
0
1.0000
0.2041
1.0000
5.4444
0
>> [q,r]=qr(a)
q =
-0.6903
0.3969
0
0
3.3446
-0.4023
-0.2592
0.8781
0
0
1.0000
2.0000
1.8889
4.8367
-0.6050
-0.3835
-0.6136
-0.9097
0.1221
-0.1592
0.7801
r =
-13.0384
0
0
-4.2183
-4.8172
0
-6.8260
-1.0807
3.7733
>> c=chol(a)
c =
3.0000
0
0
0.3333
2.4267
0
0.6667
1.1447
2.2903
2.17 将矩阵
a
24
57
、
b
17
38
和
c
95
26
组合成两个新矩阵:
(1)组合成一个 43 的矩阵,第一列为按列顺序排列的 a 矩阵元素,第二列为按列顺序排列的 b 矩阵
元素,第三列为按列顺序排列的 c 矩阵元素,即
574
685
912
237
(2)按照 a、b、c 的列顺序组合成一个行矢量,即
296531877254
>> a=[4 2;5 7];
>> b=[7 1;8 3];
>> c=[5 9;6 2];
% (1)
>> d=[a(:) b(:) c(:)]
d =
4
5
2
7
7
8
1
3
5
6
9
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)
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 求解多项式 x3-7x2+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 计算多项式乘法(x2+2x+2)(x2+5x+4)。
>> c=conv([1 2 2],[1 5 4])
c =
1
7
16
18
8
3.5 计算多项式除法(3x3+13x2+6x+8)/(x+4)。
>> d=deconv([3 13 6 8],[1 4])
d =
3
1
2
3.6 对下式进行部分分式展开:
4
2
4
6
x
7
x
2
3
2
x
4
3
x
5
4
x
3
x
3
5
x
2
2
x
x
>> 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
3.7 计算多项式
4
14
2
x
5
x
9
的微分和积分。
k =
[]
3
x
x
4
12
>> p=[4 –12 –14 5];
>> 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
。
3.8 解方程组
x
0
11
6
92
43
22
13
6
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 求欠定方程组
4742
6539
x
8
5
的最小范数解。
>> 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=x2 的变化趋势,用最小二乘法求解 y。
x
y
1
-1.4
1.5
2.7
2
3
2.5
5.9
3
8.4
3.5
12.2
4
16.6
4.5
18.8
5
26.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))
>> c=e\y
>> x1=[1:0.1:5]';
x.^2]