矩阵的逆
矩阵的逆可以通过命令inv()求解,也可以通过矩阵的-1次幂求解
PS:inv是英文逆inverse的缩写
>> A = [2 2 2;1 3 0;4 5 7]
A =
2 2 2
1 3 0
4 5 7
>> inv(A)
ans =
1.5000 -0.2857 -0.4286
-0.5000 0.4286 0.1429
-0.5000 -0.1429 0.2857
矩阵的行列式
使用det()命令可以求解矩阵的行列式
A =
2 2 2
1 3 0
4 5 7
>> det(A)
ans =
14
矩阵的秩
使用rank()命令可以计算矩阵的秩
A =
2 2 2
1 3 0
4 5 7
>> rank(A)
ans =
3
rref()命令
使用rref()命令可以将矩阵转换为最简行阶梯矩阵
A =
2 2 2
1 3 0
4 5 7
>> rref(A)
ans =
1 0 0
0 1 0
0 0 1
矩阵中元素的提取
rref()命令还可以求解矩阵的逆矩阵,为此,我们先得了解矩阵提取
对矩阵使用, : ()等符号可以提取其中的元素
A =
2 2 2
1 3 0
4 5 7
>> A(2,3)
ans =
0
使用:则可以提取该一行或一列
A =
2 2 2
1 3 0
4 5 7
>> A(:,1)
ans =
2
1
4
>> A(1,:)
ans =
2 2 2
使用rref()命令求解矩阵的逆
回忆课本上求解矩阵逆的方法:在矩阵右边增加一个对应的对角矩阵,对其进行初等行变换,将左边部分转换为最简行阶梯型矩阵,右边部分即为所求逆矩阵。
所以,我们先做一矩阵B
A =
2 2 2
1 3 0
4 5 7
>> B = [A eye(3)]
B =
2 2 2 1 0 0
1 3 0 0 1 0
4 5 7 0 0 1
再求其最简行阶梯矩阵
>> C = rref(B)
C =
1.0000 0 0 1.5000 -0.2857 -0.4286
0 1.0000 0 -0.5000 0.4286 0.1429
0 0 1.0000 -0.5000 -0.1429 0.2857
>> inv(A)
ans =
1.5000 -0.2857 -0.4286
-0.5000 0.4286 0.1429
-0.5000 -0.1429 0.2857
右边部分即为所求逆矩阵,可以看到,结果和inv()所求结果相同
利用之前讲过的矩阵的提取可以将结果提取出来
>> C(:,4:end)
ans =
1.5000 -0.2857 -0.4286
-0.5000 0.4286 0.1429
-0.5000 -0.1429 0.2857
rref()命令求解线性方程组
回忆课本知识,求解线性方程组即将系数矩阵或增广矩阵化简为行最简形矩阵,如此就可求出线性方程组的解:
例如,求解该线性方程组:
先创建其增广矩阵:
A = [1 1 5;
2 1 8;
1 2 7;
-1 1 -1];
b = [6 8 10 2]';
M = [A b];
对其使用rref()命令化简为行最简形矩阵,即可求解
>> rref(M)
ans =
1 0 3 2
0 1 2 4
0 0 0 0
0 0 0 0
使用rref()命令求解最大无关向量组
先将列向量写在一个矩阵中,然后进行转置
>> A = [1 -1 2 4;0 3 1 2;3 0 7 14;1 -1 2 0;2 1 5 0]
A =
1 -1 2 4
0 3 1 2
3 0 7 14
1 -1 2 0
2 1 5 0
>> A = A'
A =
1 0 3 1 2
-1 3 0 -1 1
2 1 7 2 5
4 2 14 0 0
使用rref()求解其最简行阶梯矩阵,即可得到其最大无关向量组
>> rref(A)
ans =
1.0000 0 3.0000 0 -0.5000
0 1.0000 1.0000 0 1.0000
0 0 0 1.0000 2.5000
0 0 0 0 0
总结
inv() | 矩阵的逆 |
det() | 矩阵的行列式 |
rref() | 最简行阶梯矩阵 |