乘法和逆矩阵 matrix multiplication and inverses
乘法和逆矩阵 matrix multiplication and inverses
首先说一下矩阵乘法。在之前的篇章里已经说明过一些矩阵的乘法的理解,在这一篇对整个矩阵乘法做一个概括,并提出新的理解。
我们考虑矩阵乘法:
这里\(\symbfit A\)为\(m\)行\(n\)列的矩阵,\(\symbfit B\)为\(n\)行\(p\)列的矩阵,则\(\symbfit C\)为\(m\)行\(p\)列的矩阵。
倘若要求解\(\symbfit C\)的第\(i\)行第\(j\)列的数值(记为\(\mathbf{c}_{i,j}\)),那么应该让\(\symbfit A\)的第\(i\)行的各个元素分别乘以\(\symbfit B\)的第\(j\)列的各个对应元素。即:
\(\symbfit C\)中每个元素都可以这么计算。这就是矩阵乘法的第一种方法。
再考虑矩阵乘以一列,比如\(\symbfit A\)乘以\(\symbfit B\)的第\(1\)列,这样就可以得到\(\symbfit C\)的第一列。这既可以用上面的第一种方法延展而来,也可以理解为之前所说的矩阵乘以一个列向量(\(\symbfit B\)可以考虑为\(p\)个单独的列向量),那么这就是\(\symbfit A\)各列的线性组合。由此可以得到矩阵乘法的第二种方法:\(\symbfit C\)即为\(\symbfit A\)各列的线性组合,而\(\symbfit B\)中数字告诉是怎样的线性组合。
同理,可以得到矩阵乘法的第三种方法:\(\symbfit C\)即为\(\symbfit B\)各行的线性组合,而\(\symbfit A\)中数字告诉是怎样的线性组合。
接下来再考虑这么一件事:由上述得到矩阵乘法的第二和三种方法,\(\symbfit A\)的一列(\(m\times1\))乘以\(\symbfit B\)的一行(\(1\times p\))呢?举例:
可以发现,结果的列是原列的倍数,行是原行的倍数。
先给出矩阵乘法的第四种方法:\(\symbfit A\)各列与\(\symbfit B\)各行的乘积之和。
再考虑一个例子,对上述等式做个扩展:
事实上,\(\symbfit C\)可以看作一个行空间,即行所有可能的线性组合。该行空间是一个直线,是行向量\((1,6)\)上的直线,所有行都在此直线上;同理,可以看作为一个列空间,是列向量\((2,3,4)\)上的直线,所有列都在此直线上。
最后再说一下分块乘法(block multiplication):对于运算\(\symbfit A \symbfit B\),可以将\(\symbfit A\)和\(\symbfit B\)分别分成多块,这些块的大小可不相等如[1]:
推荐参考【2.5】矩阵分块相乘 - 知乎这篇文章进一步学习。
接下来讨论矩阵的逆。
若对于方阵\(\symbfit A\),存在\(\symbfit A^{-1}\)满足下面的等式:
其中左边为左逆,右边为右逆(\(\symbfit A\symbfit A^{-1}=(\symbfit A^{-1})^{-1}\symbfit A^{-1}\)),则称矩阵\(\symbfit A\)可逆(invertible)或非奇异(non-singular)。
先考虑奇异矩阵,即没有逆的情况。
举例:\(\mathbf A=\begin{bmatrix}1&3\\2&6\end{bmatrix}\)。假设\(\mathbf A\)乘以某矩阵得到\(\symbfit I\)。那么我们考虑列,结果中的列都应该是\(\mathbf A\)中相应列的倍数(在之前矩阵乘法中得到的结论),而单位矩阵\(\symbfit I\)的第一列为\(\begin{bmatrix}1\\0\end{bmatrix}\),不可能是\(\mathbf A\)各列线性组合而来的,因为\(\mathbf A\)中两列共线,其所有线性组合都在这条直线上,而(1,0)不在。那么我们可以得出一个结论:
如果存在向量\(\symbfit x\),且\(\symbfit x\neq \symbfit 0\),使得\(\symbfit A\symbfit x=\symbfit 0\),则称这样的矩阵\(\symbfit A\)没有逆。
例如刚才例子的\(\mathbf A\),如果\(\mathbf x\)取\(\begin{bmatrix}3\\-1\end{bmatrix}\),则有
简单用反证法证明一下:如果\(\symbfit A\)可逆,那么\({\symbfit A}^{-1}\symbfit A\symbfit x=\symbfit 0\)即\(\symbfit I\symbfit x=\symbfit 0\),即\(\symbfit x= \mathbf 0\),与\(\symbfit x\neq \symbfit 0\)矛盾,因此原假设成立。这也不难理解,因为若存在向量\(\symbfit x\),且\(\symbfit \neq \symbfit 0\),使得\(\symbfit A\symbfit x=\symbfit 0\),则就可以表明\(\symbfit A\)各列经线性组合可以得到零向量,即各列共线(\(\symbfit x\)为行向量,而且这样\(\symbfit x\)应该放在\(\symbfit A\)的左边)或\(\symbfit A\)各行经线性组合可以得到零向量,即各行共线(\(\symbfit x\)为列向量)(这两个实质上是一样的)。
现在考虑可逆的情况,那么我们如何求解逆矩阵呢?假设如下情况:
\(\mathbf A\)乘以\(\mathbf A^{-1}\)的第\(j\)列等于单位矩阵第\(j\)列。
下面讨论高斯-若尔当消元法(Gauss-Jordan Elimination),它可以用来同时处理两个方程组,也可以用来求解矩阵的逆。
处理一个方程组:\(\begin{bmatrix}1 & 3 \\2 & 7\end{bmatrix}\begin{bmatrix}a \\b\end{bmatrix}=\begin{bmatrix}1 \\0\end{bmatrix}\),\(\begin{bmatrix}1 & 3 \\2 &7\end{bmatrix}\begin{bmatrix}c \\d\end{bmatrix}=\begin{bmatrix}0 \\1\end{bmatrix}\)。倘若我们想同时计算这两个方程组,那么我们可以写出增广矩阵:
化成左边为单位矩阵\(\mathbf I\),右边为另一个矩阵的形式,实际上,右边的矩阵就是\(\mathbf A\)的逆矩阵\(\mathbf A^{-1}\)。我们对上式的一系列操作可以归结为左乘了一个消元矩阵\(\mathbf E\),使得\(\mathbf E\mathbf A=\mathbf I\),那么可以推出\(\mathbf E=\mathbf A^{-1}\),显然我们就实现了
这样就可以简单地计算出逆矩阵了。
这里为了简便,分别将\(\symbfit A\)和\(\symbfit B\)分别分为\(4\)块。 ↩︎

浙公网安备 33010602011771号