2.4 矩阵的运算
MATLAB矩阵运算法则,既要符合一维数组运算法则,又要符合线性代数运算规则。只需使用简单的几个函数,即可求解线性代数大部分问题。
2.4.1 矩阵的运算指令
MATLAB矩阵的运算指令及含义如表2-5所示。
表2-5 矩阵运算指令与含义
2.4.2 矩阵的加减法
两个同型矩阵加减法的运算规则是对应元素相加减。若行数和列数不同的两个矩阵进行相加或相减,则显示出错。标量可以同任意矩阵相加减。
【例2-12】 若A、B分别为3阶1方阵和3阶魔方阵,标量k为6,试进行加减运算。
2.4.3 矩阵的乘法
1.两个矩阵相乘
按线性代数中矩阵乘法运算进行,即前面矩阵的各行元素,分别与后面矩阵的各列元素对应相乘并相加。
2.矩阵的数乘
数乘矩阵是数与矩阵每一个元素相乘。
3.两矩阵点乘
按数组运算规则,即A.*B表示A与B对应元素相乘。
【例2-13】 若A、B、k取值同【例2-12】,试进行乘法运算。
2.4.4 矩阵的左除和右除
1.除法运算
除法运算有左除(\)和右除(/)两种。若AB=C,则B=A\C,即B等于A左除C;A=C/B,即A等于C右除B。这两种运算常用于解线性方程组,即X=A\B是方程组AX=B的解,X=B/A是方程组XA=B的解。
2.两矩阵点除
按数组运算规则,即A./B表示A中元素与B中元素对应相除。
【例2-14】 对【例2-13】中的结果D2、D3进行除法运算。
2.4.5 逆矩阵
1.逆矩阵函数
对于n阶方阵A,如果存在AB=BA=I(单位矩阵),则称B为A的逆矩阵。逆矩阵的函数为inv(A),也可以直接用矩阵的左除、右除和幂方运算来求逆矩阵,即A\eye(n)、eye(n)/A和A^(-1)。若A为奇异阵,将给出警告信息。
【例2-15】 对【例2-13】中的结果D3,求其逆矩阵。
上述4种命令运行结果都为
2.广义逆矩阵函数
广义逆矩阵又称伪逆矩阵。当矩阵A的行数与列数不等,或矩阵A的行列式为0时,则不存在逆矩阵。但存在广义逆矩阵P,满足APA=A,PAP=P,(AP)T=AP,(PA)T=PA。广义逆矩阵的函数为pinv(),其用法可参见2.5.4节超定方程组部分。
2.4.6 方阵的行列式
方阵A的行列式,用det(A)函数计算。
【例2-16】 已知矩阵,求矩阵A的行列式。
2.4.7 矩阵的特征值和特征向量
对于n阶方阵A,其特征值和特征向量用函数eig(A)来求。
【例2-17】 求矩阵的特征值和特征向量。
故求得矩阵A的特征值分别为1、2、5,且其对应的特征向量分别为(1 0 0)T、(1 1 0)T和(1 4 4)T。
2.4.8 矩阵元素的求和
对矩阵的元素按列或按行求和,可以利用函数sum()来进行。
例如,对【例2-17】矩阵A,分别按列和行求其和。
2.4.9 矩阵元素的求积
对矩阵的元素按列或按行求积,可以利用函数prod()来进行。
例如,对【例2-16】矩阵A,分别按列和行求其积。
2.4.10 矩阵元素的差分
对矩阵的元素按列或按行计算差分,可以利用函数diff()来进行。
例如,对【例2-16】矩阵A,分别按列和行求出各元素的一次、二次差分。