资源描述
MATLAB语言与控制系统仿真实训教程-参考答案-第2章
2.12 MATLAB语言的数值运算-实训
2.12.1实训目的
1.学会矩阵的建立方法及其矩阵的转置、相乘、求逆等运算;
2.识别了解特殊矩阵;
3.学会求解方程与方程组;
4.学会通过编程解决一些实际问题;
2.12.2实训内容
1.矩阵建立及其运算
求
(1)
(2)
(3)
(4)
(5)
(6)
>> A1=-5:4;
>> A2=0.1:0.1:1.0;
>> A3=sqrt(A2);
>> A4=exp(A2);
>> A5=2.^(A2);
>> format bank
>> D1=A1+A2
D1 =
-4.90 -3.80 -2.70 -1.60 -0.50 0.60 1.70 2.80 3.90 5.00
>> D2=A3-A2
D2 =
0.22 0.25 0.25 0.23 0.21 0.17 0.14 0.09 0.05 0
>> D3=1./A4
D3 =
0.90 0.82 0.74 0.67 0.61 0.55 0.50 0.45 0.41 0.37
>> D4=A4.*A5
D4 =
1.18 1.40 1.66 1.97 2.33 2.76 3.27 3.87 4.59 5.44
>> D5=3*A5
D5 =
3.22 3.45 3.69 3.96 4.24 4.55 4.87 5.22 5.60 6.00
>> D6=A1.^2
D6 =
25.00 16.00 9.00 4.00 1.00 0 1.00 4.00 9.00 16.00
2.建立矩阵
(1)矩阵B的逆矩阵
(2)矩阵B对应的行列式
>> B=[0:2:8;-6:-2;15,9,5,13,3;2,4,11,6,10;12,7,8,1,14]
B =
0 2.00 4.00 6.00 8.00
-6.00 -5.00 -4.00 -3.00 -2.00
15.00 9.00 5.00 13.00 3.00
2.00 4.00 11.00 6.00 10.00
12.00 7.00 8.00 1.00 14.00
>> inv(B)
ans =
-0.18 0.29 0.11 0.07 0.07
0.31 -0.72 -0.20 -0.23 -0.07
-0.21 0.11 0.03 0.21 -0.02
0.05 0.11 0.08 0.02 -0.04
0.12 0.04 -0.02 -0.06 0.06
>> det(B)
ans =
-17568.00
(3)利用矩阵元素的提取方法建立以下矩阵
①矩阵b01:矩阵B的3~4行元素;
②矩阵b02:矩阵B的2~5列元素;
③矩阵b03:由矩阵B的1~3行2~4列交叉点所对应的元素组成;
>> B=[0:2:8;-6:-2;15,9,5,13,3;2,4,11,6,10;12,7,8,1,14];
>> b01=B(3:4,:)
b01 =
15.00 9.00 5.00 13.00 3.00
2.00 4.00 11.00 6.00 10.00
>> b02=B(:,2:5)
b02 =
2.00 4.00 6.00 8.00
-5.00 -4.00 -3.00 -2.00
9.00 5.00 13.00 3.00
4.00 11.00 6.00 10.00
7.00 8.00 1.00 14.00
>> b03=B(1:3,2:4)
b03 =
2.00 4.00 6.00
-5.00 -4.00 -3.00
9.00 5.00 13.00
3.矩阵的转置与翻转
已知矩阵,求取以下矩阵观察并记录。
(1) m1=rot90(m,1)
(2)m2=rot90(m,2)
(3)m3=rot90(m,-1)
(4)m4=fliplr(m)
(5)m5=flipud(m)
(6) 求矩阵m的转置矩阵
>> m=[1:5;6:10;11:15]
m =
1.00 2.00 3.00 4.00 5.00
6.00 7.00 8.00 9.00 10.00
11.00 12.00 13.00 14.00 15.00
>> m1=rot90(m,1)
m1 =
5.00 10.00 15.00
4.00 9.00 14.00
3.00 8.00 13.00
2.00 7.00 12.00
1.00 6.00 11.00
>> m2=rot90(m,2)
m2 =
15.00 14.00 13.00 12.00 11.00
10.00 9.00 8.00 7.00 6.00
5.00 4.00 3.00 2.00 1.00
>> m3=rot90(m,-1)
m3 =
11.00 6.00 1.00
12.00 7.00 2.00
13.00 8.00 3.00
14.00 9.00 4.00
15.00 10.00 5.00
>> m4=fliplr(m)
m4 =
5.00 4.00 3.00 2.00 1.00
10.00 9.00 8.00 7.00 6.00
15.00 14.00 13.00 12.00 11.00
>> m5=flipud(m)
m5 =
11.00 12.00 13.00 14.00 15.00
6.00 7.00 8.00 9.00 10.00
1.00 2.00 3.00 4.00 5.00
>> m'
ans =
1.00 6.00 11.00
2.00 7.00 12.00
3.00 8.00 13.00
4.00 9.00 14.00
5.00 10.00 15.00
4.基本矩阵运算
(1) 创建数值矩阵
①在命令窗口按照表2-5中从左到右顺序依次执行相关命令,将结果记录在表2-5中。
表2-5
指令
a=[1 2 3; 4 5 6; 7 8 9]
a(3,2)
a(:,1)
a(1:2,2:3)
结果
1.00 2.00 3.00
4.00 5.00 6.00
7.00 8.00 9.00
8.00
1.0
4.00
7.00
2.00 3.00
5.00 6.00
>> a=[1 2 3; 4 5 6; 7 8 9]
a =
1.00 2.00 3.00
4.00 5.00 6.00
7.00 8.00 9.00
>> a(3,2)
ans =
8.00
>> a(:,1)
ans =
1.00
4.00
7.00
>> a(1:2,2:3)
ans =
2.00 3.00
5.00 6.00
②在命令窗口按照表2-6中从左到右顺序依次执行相关命令,将结果记录在表2-6中。
表2-6
指令
t=0:5
u=0:0.5:4
b=[1 1+2i;3+4i 3]
结果
0 1 2 3 4 5
0 0.5 1 1.5 2 2.5 3 3.5 4
1.00 1.00 + 2.00i
3.00 + 4.00i 3.00
>> t=0:5
t =
0 1.00 2.00 3.00 4.00 5.00
>> t=0:0.5:4
t =
0 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00
>> format short
>> b=[1 1+2i;3+4i 3]
b =
1.0000 1.0000 + 2.0000i
3.0000 + 4.0000i 3.0000
(2) 按表2-7要求创建并观察记录特殊矩阵,将结果记于表2-7中。
表2-7
备注
全1矩阵
全0矩阵
单位矩阵
魔术矩阵
均匀分布随机矩阵
指令
a1=ones(3,4)
a2=zeros(2,3)
a3=eye(4)
a4=magic(4)
a5=rand(3)
结果
备注
正态分布随机矩阵
范得蒙矩阵
希尔伯特矩阵
托普利兹矩阵
帕斯卡矩阵
指令
a6=randn(4)
a7= vander([1 5 6 2])
a8=hilb(4)
a9=toeplitz(1:6)
pascal(5)
结果
>> a1=ones(3,4)
a1 =
1 1 1 1
1 1 1 1
1 1 1 1
>> a2=zeros(2,3)
a2 =
0 0 0
0 0 0
>> a3=eye(4)
a3 =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> a4=magic(4)
a4 =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> a5=rand(3) %每次运行结果不一样
a5 =
0.4447 0.9218 0.4057
0.6154 0.7382 0.9355
0.7919 0.1763 0.9169
>> a6=randn(4) %每次运行结果不一样
a6 =
-0.4326 -1.1465 0.3273 -0.5883
-1.6656 1.1909 0.1746 2.1832
0.1253 1.1892 -0.1867 -0.1364
0.2877 -0.0376 0.7258 0.1139
>> a7= vander([1 5 6 2])
a7 =
1 1 1 1
125 25 5 1
216 36 6 1
8 4 2 1
>> a8=hilb(4)
a8 =
1.0000 0.5000 0.3333 0.2500
0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667
0.2500 0.2000 0.1667 0.1429
>> a9=toeplitz(1:6)
a9 =
1 2 3 4 5 6
2 1 2 3 4 5
3 2 1 2 3 4
4 3 2 1 2 3
5 4 3 2 1 2
6 5 4 3 2 1
>> pascal(5)
ans =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
(3) 练习矩阵运算
键入
a=[0 1 0;0 0 1;-6 –11 -6];
b=[1 2;3 4;5 6];
c=[1 1 0;0 1 1];
d=[1 3; 2 7];
e=[2 5;-3 0];
按表2-8要求的相应运算,将结果记于表2-8中。
表2-8
备注
矩阵加减运算
矩阵乘方运算
矩阵乘法运算
矩阵点运算
矩阵除运算
指令
a1= d+e
a2=e+0.6
a3=d-1
a4=a^2
a5=d^0.5
a6=d^-1
v1=c*a
v2=d*e
v3=c*a*b
v4=d.^2
v5=e./d
v6=d.*e
v7=d/e
v8=d\e
v9=d/5
结果
备注
矩阵转置
矩阵翻转
矩阵行列式
矩阵的秩
矩阵的迹
指令
v10=d’
v11=fliplr(d)
v12=flipud(d)
v13=rot90(d)
v14=det(d)
v15=det(e)
v16=rank(d)
v17=rank(e)
v18=trace(d)
v19=trace(e)
结果
>> a=[0 1 0;0 0 1;-6 -11 -6];
>> b=[1 2;3 4;5 6];
>> c=[1 1 0;0 1 1];
>> d=[1 3; 2 7];
>> e=[2 5;-3 0];
>> a1=d+e
a1 =
3 8
-1 7
>> a2=e+0.6
a2 =
2.6000 5.6000
-2.4000 0.6000
>> a3=d-1
a3 =
0 2
1 6
>> a4=a^2
a4 =
0 0 1
-6 -11 -6
36 60 25
>> a5=d^0.5
a5 =
0.6325 0.9487
0.6325 2.5298
>> a6=d^-1
a6 =
7 -3
-2 1
>> v1=c*a
v1 =
0 1 1
-6 -11 -5
>> v2=d*e
v2 =
-7 5
-17 10
>> v3=c*a*b
v3 =
8 10
-64 -86
>> v4=d.^2
v4 =
1 9
4 49
>> v5=e./d
v5 =
2.0000 1.6667
-1.5000 0
>> v6=d.*e
v6 =
2 15
-6 0
>> v7=d/e
v7 =
0.6000 0.0667
1.4000 0.2667
>> v8=d\e
v8 =
23 35
-7 -10
>> v9=d/5
v9 =
0.2000 0.6000
0.4000 1.4000
>> v10=d'
v10 =
1 2
3 7
>> v11=fliplr(d)
v11 =
3 1
7 2
>> v12=flipud(d)
v12 =
2 7
1 3
>> v13=rot90(d)
v13 =
3 7
1 2
>> v14=det(d)
v14 =
1
>> v15=det(e)
v15 =
15
>> v16=rank(d)
v16 =
2
>> v17=rank(e)
v17 =
2
>> v18=trace(d)
v18 =
8
>> v19=trace(e)
v19 =
2
5. 方程与方程组的求解
(1)方程的求解
编写程序求解下面的方程并记录结果
>> a=[1 11 -26 31 -62 79 -1269];
>> roots(a)
ans =
-13.1834
2.8288
1.1835 + 2.2645i
1.1835 - 2.2645i
-1.5062 + 1.7156i
-1.5062 - 1.7156i
(2)方程组的求解
编写程序求解下面的方程组并记录结果
①
>> a=[1 2 -2.6 11;2 -3 36 -5;1 1 3.3 -6;3 4 -7 0];
>> b=[70;-31;62;103];
>> a\b
ans =
-49.6171
77.2426
8.1599
-1.2411
②
>> a=[0.6 -1.8 0;-0.5 1.8 -0.6;0 -2.8 1.6];
>> b=[3;6;0];
>> inv(a)*b
ans =
-29.0000
-11.3333
-19.8333
>> a\b
ans =
-29.0000
-11.3333
-19.8333
③
整理为:
>> A=[2 1 -1 -1;1 0 2 0;1 -2 0 0;0 2 0 4];
>> B=[0;18;0;6];
>> A\B
ans =
3.2308
1.6154
7.3846
0.6923
6. 输入矩阵a,b,c,d, 编程求解以下问题
(1) 、、、
(2) 的逆矩阵、的逆矩阵;
(3) 与
(4) 、
(5) 、
解:>> a=[1 7 13 4;4 3 2 7;2 8 -5 9;3 -9 5 8];
>> b=[4 9 1 -11;10 8 4 -7;13 6 6 9;11 13 8 6];
>> c=[2 5 8 6];
>> d=[2;-8;7;-3];
>> a+b
ans =
5 16 14 -7
14 11 6 0
15 14 1 18
14 4 13 14
>> a-b
ans =
-3 -2 12 15
-6 -5 -2 14
-11 2 -11 0
-8 -22 -3 2
>> a*d
ans =
25
-23
-122
89
>> c*b
ans =
228 184 118 51
>> inv(a) %的逆矩阵
ans =
-0.1098 0.4731 -0.2142 -0.1181
0.0271 0.0299 0.0201 -0.0623
0.0604 -0.0102 -0.0322 0.0150
0.0339 -0.1374 0.1230 0.0899
>> inv(b) %的逆矩阵
ans =
0.1031 -0.0364 0.1881 -0.1357
0.2271 -0.2266 0.0892 0.0180
-0.5710 0.5312 -0.4772 0.2886
0.0804 -0.1504 0.0980 -0.0084
>> a*b
ans =
287 195 139 81
149 163 84 -5
122 169 76 -69
75 89 61 123
>> a.*b
ans =
4 63 13 -44
40 24 8 -49
26 48 -30 81
33 -117 40 48
>> a/b
ans =
-5.4089 4.6812 -4.9983 3.7093
0.5145 -0.8161 0.7520 0.0297
5.6016 -5.8957 4.3582 -1.6460
-3.9460 3.3833 -1.8404 0.8069
>> a./b
ans =
0.2500 0.7778 13.0000 -0.3636
0.4000 0.3750 0.5000 -1.0000
0.1538 1.3333 -0.8333 1.0000
0.2727 -0.6923 0.6250 1.3333
>> a*a
ans =
67 96 -18 202
41 -10 83 111
51 -83 112 91
1 -38 36 58
>> a.^2
ans =
1 49 169 16
16 9 4 49
4 64 25 81
9 81 25 64
7. 解决问题
现有圆柱形橡皮泥材料,直径125cm,长160cm,现用该材料加工实心球,每套12个,半径从3cm开始递增以0.2cm为步长,问总共可以加工多少套?
程序为:
r1=125/2; % 根据直径求出半径
h1=160; % 圆柱体长度
v=pi*r1^2*h1 % 圆柱体总的体积
r=3:0.2:5.2 % 每套球的半径范围
v2=4/3*pi*r.^3 % 每套球的体积矩阵
v3=sum(v2) % 每套12个球的体积之和
n=v/v3 % 总共可加工的套数(小数)
round(n) % 总共可加工的套数(取整数)
分析以上程序根据你的理解给每一行程序加上注释并运行程序看总共可以加工的套数为多少。
>> r1=125/2; % 根据直径求出半径
h1=160; % 圆柱体长度
v=pi*r1^2*h1 % 圆柱体总的体积
r=3:0.2:5.2 % 每套球的半径范围
v2=4/3*pi*r.^3 % 每套球的体积矩阵
v3=sum(v2) % 每套12个球的体积之和
n=v/v3 % 总共可加工的套数(小数)
round(n) % 总共可加工的套数(取整数)
v =
1.9635e+006
r =
3.0000 3.2000 3.4000 3.6000 3.8000 4.0000 4.2000 4.4000 4.6000 4.8000 5.0000 5.2000
v2 =
113.0973 137.2583 164.6362 195.4322 229.8473 268.0826 310.3391 356.8179 407.7201 463.2467 523.5988 588.9774
v3 =
3.7591e+003
n =
522.3377
ans =
522
>>总共可以加工的套数为522套。
8.最佳售房问题
某用户现有一栋楼房需要处理,如果现在就出售,可得总收入100万元(人民币)。如果现在不出售,而作为其它用途,n 年后再出售,n年末可得总收入(万元)。而银行年利率为。由于某种原因在存款时只能采用存期一年自动转存方式。分别取n=1,2,…,10,试计算并比较用户在两种方案下的收益,如果该用户在8年后将资金用作其它投资,应该选用哪一种方案收益更大,8年末资金总额为多少比另外一种方案多收益多少。
第一种方案:过n年再出售,原来的100万到第n年时增值为:
第二种方案:现在出售得本金100万元并存入银行。由于银行年利率为,按照复利计算公式,第n年连本带利资金总额为:
>>n=1:10;
y1=100*exp(sqrt(n-0.9)/7);
y2=100*(1+0.05).^n;
[n;y1;y2;y1-y2]
1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00
104.62 116.16 123.00 128.60 133.54 138.07 142.31 146.32 150.17 153.87
105.00 110.25 115.76 121.55 127.63 134.01 140.71 147.75 155.13 162.89
-0.38 5.91 7.24 7.05 5.92 4.06 1.60 -1.42 -4.97 -9.02
数据分析:该用户在8年后将资金用作其它投资,应该选择第二种方案,到时资金总额为147.75万,比另外一种方案多收益1.42万元。
若银行利率,试重新考虑两种方案的优劣,通过编程解决并依据仿真结果进行数据的简要分析。
>> n=1:10;
y1=100*exp(sqrt(n-0.9)/7);
y2=100*(1+0.045).^n;
[n;y1;y2;y1-y2]
ans =
1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00
104.62 116.16 123.00 128.60 133.54 138.07 142.31 146.32 150.17 153.87
104.50 109.20 114.12 119.25 124.62 130.23 136.09 142.21 148.61 155.30
0.12 6.96 8.88 9.35 8.93 7.85 6.22 4.11 1.56 -1.43
数据分析:该用户在8年后将资金用作其它投资,应该选择第一种方案(投资方案),到时资金总额为146.32万,比第二种方案(存款方案)多收益4.11万元。
9. 编写程序,完成以下表格,保留两位小数。
表2-9常用锐角三角函数对照表
sin()
0.09
0.17
0.26
0.34
0.42
0.50
0.57
0.64
0.71
0.77
0.82
cos()
1.00
0.98
0.97
0.94
0.91
0.87
0.82
0.77
0.71
0.64
0.57
tan()
0.09
0.18
0.27
0.36
0.47
0.58
0.70
0.84
1.00
1.19
1.43
cot()
11.43
5.67
3.73
2.75
2.14
1.73
1.43
1.19
1.00
0.84
0.70
>> a=5*pi/180:5*pi/180:55*pi/180;
>> [sin(a);cos(a);tan(a);cot(a)]
ans =
0.09 0.17 0.26 0.34 0.42 0.50 0.57 0.64 0.71 0.77 0.82
1.00 0.98 0.97 0.94 0.91 0.87 0.82 0.77 0.71 0.64 0.57
0.09 0.18 0.27 0.36 0.47 0.58 0.70 0.84 1.00 1.19 1.43
11.43 5.67 3.73 2.75 2.14 1.73 1.43 1.19 1.00 0.84 0.70
表2-10 函数计算
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
>> t=0.1:0.1:1.0;
>> [t;exp
展开阅读全文