2.5 如何对矩阵进行运算
1.矩阵的加减法运算
在MATLAB中,数值矩阵是一种特殊的数值数组。在进行矩阵加减法运算的时候,参与运算的矩阵也需要遵循“维度相同”的规则,即具有相同的行数与列数。当矩阵与数值型数据之间进行加减法运算时,运算不需要遵循此规则,而是将矩阵的元素均与该数值型数据进行加减运算,并返回新矩阵。矩阵加减法运算演示如图2.17所示。
图2.17 矩阵加减法运算演示
经验分享:由图2.17中的(A+C)-(C+A)示例结果可以得出结论——矩阵的加减法运算满足交换律。读者可以自行验证矩阵加减法是否满足结合律。
2.矩阵的乘法运算
MATLAB中矩阵的乘法运算遵循线性代数理论体系。在矩阵之间进行乘法运算时尤其需要注意非方阵矩阵在维度上的匹配。矩阵乘法运算演示如图2.18所示。
图2.18 矩阵乘法运算演示
经验分享:如图2.18所示,矩阵与数值型数据之间的乘法运算满足分配律。此外,(A+C)×B-(A×B+C×B)的运算示例也反映出矩阵之间的乘法运算满足右分配律。对于两个2×3矩阵的乘法运算A×C,由于矩阵A的列数3与矩阵C的行数2不相等,即矩阵A与矩阵C尽管在维度上相同,但是参与乘法运算时维度不匹配,因此造成了MATLAB编译错误。读者可以在保证矩阵维度匹配的前提下,自行检验矩阵乘法是否满足交换律与左结合律(即形如:A×(B+C)=A×B+A×C)。
3.矩阵的除法运算
MATLAB中的矩阵除法运算被细分为左除与右除运算。对于参与矩阵除法运算的两个对象A与B而言,若均为数值型标量,则左除与右除运算是等价的。然而,对于一般的二维矩阵A和B而言,左除与右除运算在对矩阵A和B的维度匹配上存在不同的要求,具体可由图2.19的矩阵除法运算演示说明。
经验分享:由图2.19的矩阵除法运算演示,可以看到矩阵A、B、C的维度分别为2×3、3×3、2×2。根据左除运算A\B是Ax=B的逆运算以及右除运算B/A是xA=B的逆运算的规则,可以归纳出左除与右除运算对运算矩阵在维度匹配上的不同要求:左除运算要求左矩阵的行数与右矩阵的行数相等,而右除运算要求左矩阵的列数与右矩阵的列数相等。因此,在进行右除运算A/B时,右除运算正常进行。在将矩阵A转置以后,再进行右除运算,则会产生维度不匹配的错误。在进行左除运算B\A时,会产生维度不匹配的错误,而左除运算C\A则可顺利进行。
图2.19 矩阵除法运算演示
4.矩阵的幂运算
MATLAB中矩阵的幂运算对方阵有效,因为对于非方阵而言,相邻的运算矩阵无法满足“维度匹配”的要求,即左侧矩阵的列数不等于相邻右侧矩阵的行数,因此幂运算无法进行。矩阵的幂运算演示如图2.20所示。
图2.20 矩阵幂运算演示
5.矩阵的转置
图2.21演示了求矩阵转置的运算。
6.方阵的行列式
函数:det
格式:d=det(X)
说明:返回方阵X的多项式的值。
图2.22演示了求方阵的行列式。
图2.21 求矩阵转置的运算
图2.22 求方阵的行列式
经验分享:若矩阵A的元素为实数,则与线性代数中矩阵的转置相同;若A为复数矩阵,则A转置后的元素由A对应元素的共轭复数构成。
7.矩阵的逆
函数:inv
格式:Y=inv(X)
说明:求方阵X的逆矩阵。若X为奇异阵或近似奇异阵,将给出警告信息。
图2.23演示了求矩阵的逆矩阵。
8.矩阵的迹
函数:trace
格式:b=trace(A)
说明:返回矩阵A的迹,即A的对角线元素之和。
图2.24演示了求矩阵的迹。
图2.23 求矩阵的逆矩阵
图2.24 求矩阵的迹
9.矩阵的秩
函数:rank
格式:k=rank(A)
说明:求矩阵A的秩。
图2.25演示了求矩阵的秩。
10.矩阵的特征值
函数:eig
格式:d=eig(A)
说明:求矩阵A的特征值d,以向量形式存放。
图2.26演示了求矩阵的特征值。
图2.25 求矩阵的秩
图2.26 求矩阵的特征值