实验二 Matlab矩阵的初等运算实验目的:掌握Matlab的运算方法
实验内容:
在Matlab命令窗口输入:
H1=ones(3,2) H2=zeros(2,3) H3=eye(4)
观察以上各输入结果,并在每式的后面标注其含义。
>> format compact
>> H1=ones(3,2),disp('3行2列的全1矩阵') H1 =
1 1
1 1
1 1
3行2列的全1矩阵
>> H2=zeros(2,3),disp('2行3列的全零矩阵') H2 =
0 0 0
0 0 0
2行3列的全零矩阵
>> H3=eye(4),disp('4阶的单位矩阵') H3 =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
4阶的单位矩阵
已知
123
456
??
=??
??
Q,[]
789
=
P,
1
??
=??
??
R,3
=
S,试把这四个矩阵组合为
一个大矩阵,看看有几种组合方式?8
>> format compact
>> Q=[1 2 3;4 5 6];P=[7 8 9];R=[1;0]; S=3; >> [Q,R;P,S]
ans =
1 2 3 1
4 5 6 0
7 8 9 3
>> [R,Q;P,S]
ans =
1 1
2 3
0 4 5 6
7 8 9 3
>> [Q,R;S,P]
ans =
1 2 3 1
4 5 6 0
3 7 8 9
>> [R,Q;S,P]
ans =
1 1
2 3
0 4 5 6
3 7 8 9 >> [S,P;R,Q]
ans =
3 7 8 9
1 1
2 3
0 4 5 6 >> [S,P;Q,R]
ans =
3 7 8 9
1 2 3 1
4 5 6 0 >> [P,S;R,Q]
ans =
7 8 9 3
1 1
2 3
0 4 5 6 >> [P,S;Q,R]
ans =
7 8 9 3
1 2 3 1 4 5 6 0
建立一个字符串向量,删除其中的大写字母。提示:利用find函数和空矩阵。>> a='ABCDefgijKLMN123'
a =
ABCDefgijKLMN123
>> k=find(a>='A'&a<='Z')
k =
1 2 3 4 10 11 12 13
>> a(k)=[]
a =
efgij123
在命令窗中分别输入who和whos,观察检查结果是否与所得结果相符。
>> who
Your variables are:
H1 H2 H3 P Q R S a ans k
>> whos
Name Size Bytes Class Attributes
H1 3x2 48 double
H2 2x3 48 double
H3 4x4 128 double
P 1x3 24 double
Q 2x3 48 double
R 2x1 16 double
S 1x1 8 double
a 1x8 16 char
ans 3x4 96 double
k 1x8 64 double
已知矩阵
13125
4709
7162
82113
??
??
??
=
??
??
??
S,计算以下表达式的结果,体会*,^,sqrtm,expm
与.*,.^,sqrt,exp的区别。
(1) r1=S^2, r2=2.^S , r3=S.^2,
(2) u1=sqrtm(S), v1=u1*u1
(3) u2=sqrt (S), v2=u2.*u2
(4) u3=expm(S), v3=logm(u3)
(5) u4=exp(S), v4=log(u4)
>> S=[1 3 12 5;4 7 0 9;7 1 6 2;8 2 11 3]
S =
1 3 1
2 5
4 7 0 9
7 1 6 2
8 2 11 3
>> r1=S^2
r1 =
137 46 139 71
104 79 147 110
69 38 142 62
117 55 195 89
>> r2=2.^S
r2 =
2 8 4096 32
16 128 1 512
128 2 64 4
256 4 2048 8 >> r3=S.^2
r3 =
1 9 144 25
16 49 0 81
49 1 36 4
64 4 121 9
>> u1=sqrtm(S)
u1 =
+ - - -
+ + + -
- + + +
- + - +
>> v1=u1*u1
v1 =
- + - +
+ - - +
+ - + -
+ - -
>> u2=sqrt (S)
u2 =
>> u3=expm(S)
u3 =
+008 *
>> v3=logm(u3)
v3 =
>> u4=exp(S)
u4 =
+005 *
>> v4=log(u4)
v4 =
1 3 1
2 5
4 7 0 9
7 1 6 2
8 2 11 3
对中定义的矩阵S完成以下变换,输出变换后的矩阵:
(1) 将矩阵S上下翻转
(2) 将矩阵S左右翻转
(3) 将矩阵S重组为一个2行8列的矩阵
(4) 将矩阵S整体逆时针旋转90°
(5) 提取矩阵S对角线上的元素
(6) 建立一个对角阵T,对角线上的元素为S对角线上的元素,其余元素为0
(7) 取出矩阵S的左下三角部分
(8) 取出矩阵S的右上三角部分
(9) 把矩阵S的元素按列取出排成一行
>> S=[1 3 12 5;4 7 0 9;7 1 6 2;8 2 11 3] S =
1 3 1
2 5
4 7 0 9
7 1 6 2
8 2 11 3 >> flipud(S)
ans =
8 2 11 3
7 1 6 2
4 7 0 9
1 3 1
2 5
>> fliplr(S)
ans =
5 12 3 1
9 0 7 4
2 6 1 7
3 11 2 8
>> reshape(S,2,8)
ans =
1 7 3 1 1
2 6 5 2
4 8 7 2 0 11 9 3
>> rot90(S)
ans =
5 9 2 3
12 0 6 11
3 7 1 2
1 4 7 8 >> diag(S)
ans =
1
7
6
3
>> T=diag(S)
T =
1
7
6
3 >> T=diag(T)
T =
1 0 0 0
0 7 0 0
0 0 6 0
0 0 0 3 >> tril(S)
ans =
1 0 0 0
4 7 0 0
7 1 6 0
8 2 11 3 >> triu(S)
ans =
1 3 1
2 5
0 7 0 9
0 0 6 2
0 0 0 3
>> S(:)'
ans =
1 4 7 8 3 7 1
2 12 0 6 11 5 9 2 3
已知矩阵A=[1 3 5],B=[2 4 6]
(1) 求C=A+B,D=A-2,E=B-A
>> format compact
>> A=[1 3 5],B=[2 4 6]
A =
1 3 5
B =
2 4 6 >> C=A+B,D=A-2,E=B-A C =
3 7 11
D =
-1 1 3
E =
1 1 1 >> %都是按元素群运算
(2) 求F1=A*3,F2=A.*B,F3=A./B,F4=A.\B,F5=B.\A,F6=B.^A,F7=2./B,
F8=B.\2.
>> F1=A*3
F1 =
3 9 15
>> %按矩阵运算
>> F2=A.*B
F2 =
2 12 30
>> %按元素群运算A点乘B
>> F3=A./B
F3 =
>> %按元素群运算A各个元素右除B
>> F4=A.\B
F4 =
>> %按元素群运算A各个元素左除B
>> F5=B.\A
F5 =
>> %按元素群运算B各个元素左除A
>> F6=B.^A
F6 =
2 64 7776
>> %按元素群运算B各个元素的A次幂
>> F7=2./B
F7 =
>> %按元素群运算2右除B
>> F8=B.\2
F8 =
>> %按元素群运算B各个元素左除2
(3) 求Z1=A*B’,Z2=B’*A观察以上各输出结果,比较各种运算的区别,并在每式的后面标注其含义。
>> Z1=A*B'
Z1 =
44
>> %按矩阵运算A乘以B的转置
>> Z2=B'*A
Z2 =
2 6 10
4 12 20
6 18 30
>> %按元素群运算B的转置乘以A
已知矩阵
14813
3659
27128
??
??
=---
??
??
---
??
I,
5432
6238
1397
-
??
??
=--
??
??
--
??
J,求H1=I*J’,
H2=I’*J,H3=I.*J并求它们的逆阵。(1)H1=I*J’
>> format compact
>> I=[1 4 8 13;-3 6 -5 9;2 -7 -12 -8]
I =
1 4 8 13
-3 6 -5 9
2 -7 -12 -8
>> J=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7] J =
5 4 3 -2
6 -2 3 -8
-1 3 -9 7
>> H1=I*J' H1 =
19 -82 30
-24 -117 129
-38 54 29 >> det(H1)
ans =
+004
>> inv(H1)
ans =
(2)H2=I’*J
>> H2=I'*J
H2 =
-15 16 -24 36
63 -17 93 -105
22 6 117 -60
127 10 138 -154
>> det(H2)
ans =
因为H2的行列式接近于零,H2没有逆矩阵
(3)H3=I.*J
>> H3=I.*J
H3 =
5 1
6 24 -26
-18 -12 -15 -72
-2 -21 108 -56
>> pinv(H3)
ans =
因为H3为一个非满秩的矩阵,所以H3没有逆矩阵,而有一个伪逆矩阵.
已知矩阵
1.1 3.2 3.40.6
0.6 1.10.6 3.1
1.30.6 5.50.0
-
??
??=-
??
??
??C
(1) 用指令检查C的阶数;
>> format compact
>> C=[ ; ; ]
C =
0 >> [m,n]=size(C)
m =
3
n =
4
矩阵C是一个3行4列的矩阵.
(2) 找出C(2, 3)的值;
>> C(2,3)
ans =
(3) 找出值为的元素的下标。>> [a,b]=find(C==
a =
2
3
1
b =
1
2
4
a为行下标,b为列下标。
求下列表达式的值。
(1)
2
2sin85
1
1
z
e
=
+
,注意:Matlab当中三角函数的运算按弧度进行。
>> Z1=2*sin(85*pi/180)/(1+exp(2)) Z1 =
(2)
(
1
2ln
2
z x
=,其中
212
0.455
i
+
??
=??
-??
x
>> format compact >> x=[2 1+2i; 5] x =
+
>> Z2=1/2*log(x+sqrt(1+x)) Z2 =
+
(3) ()0.30.23sin 0.32
a a
e e z a -=
?+ , 3.0, 2.9, 2.8,...,2.8,2.9,3.0a =--- >> format compact >> a=:: a =
Columns 1 through 9
Columns 10 through 18
Columns 19 through 27
Columns 28 through 36
0 Columns 37 through 45
Columns 46 through 54
Columns 55 through 61
>> Z3=(exp.*a)-exp.*a))/2.*sin(a+ Z3 =
Columns 1 through 9
Columns 10 through 18
Columns 19 through 27
Columns 28 through 36
0 Columns 37 through 45
Columns 46 through 54
Columns 55 through 61
求下列联立方程的解
3x + 4y - 7z - 12w = 4 5x - 7y + 4z + 12w = -3 x + 8z - 5w = 9
-6x + 5y - 2z + 10w = -8
解:令A=[3 4 -7 -12;5 -7 4 12;1 0 8 -5;-6 5 -2 10] X=[x;y;z;w] B=[4;-3;9;-8] X=A\B >> format compact
>> A=[3 4 -7 -12;5 -7 4 12;1 0 8 -5;-6 5 -2 10];B=[4;-3;9;-8]; X=A\B X =
(1) 列写2×2阶的单位矩阵I ,4×4阶的魔方矩阵M 和4×2阶的全幺矩阵A ,
全零矩阵B 。 >> format compact
>> I=eye(2),A=ones(4,2),B=zeros(4,2),M=magic(4) I = 1 0 0 1 A = 1 1 1 1 1 1 1 1 B = 0 0 0 0 0 0 0 0 M = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
(2) 将这些矩阵拼接为6×6阶的矩阵C :
'I A C B M ??
=??
??
>> format compact
>> I=eye(2);A=ones(4,2);B=zeros(4,2);M=magic(4);C=[I,A';B,M] C =
1 0 1 1 1 1 0 1 1 1 1 1 0 0 16
2
3 13 0 0 5 11 10 8
0 0 9 7 6 12
0 0 4 14 15 1
(3) 取出C的第2,4,6行,组成3×6阶的矩阵C1,取出第2,,4,6列,组
成6×3阶的矩阵C2。
>> format compact
>> C1=C([2,4,6,],:),C2=C(:,[2,4,6,])
C1 =
0 1 1 1 1 1
0 0 5 11 10 8
0 0 4 14 15 1
C2 =
0 1 1
1 1 1
0 2 13
0 11 8
0 7 12
0 14 1
(4) 求D=C1C2及D1 =C2C1。
>> format compact
>> D=C1*C2, D1=C2*C1
D =
1 35 35
0 313 281
0 281 345
D1 =
0 0 9 25 25 9
0 1 10 26 26 10
0 0 62 204 215 29
0 0 87 233 230 96
0 0 83 245 250 68
0 0 74 168 155 113