矩阵乘法和逆矩阵

2021-06-28 数学基础 线性代数

# 一、矩阵乘法

我们通过四种方法讨论如何使矩阵 A\boldsymbol{A}B\boldsymbol{B} 相乘得到矩阵 C\boldsymbol{C}

其中 A\boldsymbol{A}m×nm\times{n} 矩阵,而 B\boldsymbol{B}n×pn\times{p} 矩阵,则 C\boldsymbol{C}m×pm\times{p} 矩阵,记 cijc_{ij}为矩阵 C\boldsymbol{C} 中第 ii 行第 jj 列的元素。

# 1.1 标准方法(行乘以列)

矩阵乘法的标准计算方法是通过矩阵 A\boldsymbol{A}ii 行的行向量和矩阵 B\boldsymbol{B}jj 列的列向量点积得到 cijc_{ij}

cij=k=1naikbkj=ai1b1j+ai2b2j+ai3b3j+{c_{ij}}=\sum\limits_{k=1}^n{a_{ik}b_{kj}}=a_{i1}b_{1j}+a_{i2}b_{2j}+a_{i3}b_{3j}+\ldots

# 1.2 列操作

列操作是指矩阵 C\boldsymbol{C} 的第 jj 列是通过矩阵 A\boldsymbol{A} 乘以矩阵 B\boldsymbol{B} 的第 jj 列的列向量得到的。

这表明矩阵 C\boldsymbol{C} 的列向量是矩阵 A\boldsymbol{A} 的列向量的线性组合。

AB=A[b1b2...bp]=[Ab1Ab2...Abp]\boldsymbol{AB}=\boldsymbol{A}\left[{\begin{array}{cc}{\boldsymbol{b}_1}&{\boldsymbol{b}_2}&{...}&{\boldsymbol{b}_p}\end{array}}\right]=\left[{\begin{array}{cc}{\boldsymbol{A}\boldsymbol{b}_1}&{\boldsymbol{A}\boldsymbol{b}_2}&{...}&{\boldsymbol{A}\boldsymbol{b}_p}\end{array}}\right]

上式中 bi,Abi\boldsymbol{b}_i,\boldsymbol{Ab}_i 均为列向量,其中 Abi\boldsymbol{Ab}_i 为矩阵 A\boldsymbol{A} 中列向量的线性组合。

# 1.3 行操作

行操作是指矩阵 C\boldsymbol{C} 的第 ii 行是通过矩阵 A\boldsymbol{A} 的第 ii 行的行向量乘以矩阵 B\boldsymbol{B} 得到的。

这表明矩阵 C\boldsymbol{C} 的行向量是矩阵 B\boldsymbol{B} 行向量的线性组合。

AB=[a1a2am]B=[a1Ba2BamB]\boldsymbol{AB}=\left[{\begin{array}{cc}{\boldsymbol{a}_1}\\{\boldsymbol{a}_2}\\\vdots\\\vdots\\{\boldsymbol{a}_m}\end{array}}\right]\boldsymbol{B}=\left[{\begin{array}{cc}{\boldsymbol{a}_1\boldsymbol{B}}\\{\boldsymbol{a}_2\boldsymbol{B}}\\\vdots\\\vdots\\{\boldsymbol{a}_m\boldsymbol{B}}\end{array}}\right]

上式中 ai,aiB\boldsymbol{a}_i,\boldsymbol{a}_i\boldsymbol{B} 均为行向量,其中 aiB\boldsymbol{a}_i\boldsymbol{B} 为矩阵 B\boldsymbol{B} 中行向量的线性组合。

# 1.4 列乘以行

矩阵 A\boldsymbol{A} 的第 kk 列是一个 m×1m\times{1} 的向量,而矩阵 B\boldsymbol{B} 的第 kk 行是一个 1×p1\times{p} 的向量,两 向量相乘会得到一个矩阵 Ck\boldsymbol{C}_k,将所有的 nn 个矩阵相加即得到 C\boldsymbol{C}

AB=k=1n[a1kamk][bk1bkp]\boldsymbol{AB}=\sum\limits_{k=1}^n{\left[{\begin{array}{cc}a_{1k}\\\vdots\\a_{mk}\end{array}}\right]}\left[{\begin{array}{cc}b_{k1}&\cdots&b_{kp}\end{array}}\right]

可以从矩阵乘法对加法的分配率推导出来。

# 1.5 分块乘法

如果将矩阵 A\boldsymbol{A} 和矩阵 B\boldsymbol{B} 划分为严格匹配的区块,则矩阵乘法可以通过分块的乘法加以实现。

[A1A2A3A4][B1B2B3B4]=[C1C2C3C4]\left[{\begin{array}{cc}\boldsymbol{A}_1&\boldsymbol{A}_2\\\boldsymbol{A}_3&\boldsymbol{A}_4\end{array}}\right]\left[{\begin{array}{cc}\boldsymbol{B}_1&\boldsymbol{B}_2\\\boldsymbol{B}_3&\boldsymbol{B}_4\end{array}}\right]=\left[{\begin{array}{cc}\boldsymbol{C}_1&\boldsymbol{C}_2\\\boldsymbol{C}_3&\boldsymbol{C}_4\end{array}}\right]

其中 C1=A1B1+A2B3\boldsymbol{C}_1=\boldsymbol{A}_1\boldsymbol{B}_1+\boldsymbol{A}_2\boldsymbol{B}_3,计算方法与标准算法中矩阵里元素的操作方式相同。

# 二、逆矩阵

# 2.1 逆矩阵介绍

如果矩阵 A\boldsymbol{A} 是方阵,若存在逆矩阵 A1\boldsymbol{A}^{-1},使得 A1A=I=AA1\boldsymbol{A}^{-1}\boldsymbol{A}=\boldsymbol{I}=\boldsymbol{AA}^{-1},我们称矩阵 A\boldsymbol{A} 可逆(invertible)或者矩阵 A\boldsymbol{A} 非奇异(nonsingular);反之,如果 A\boldsymbol{A} 为奇异(singular),则其没有逆矩阵,且它的行列式为 00

对于可逆矩阵,求它的逆矩阵是一个重要的问题。

[1327][acbd]=[1001]AA1I\begin{array}{l}\left[{\begin{array}{cc}1&3\\2&7\end{array}}\right]\left[{\begin{array}{cc}a&c\\b&d\end{array}}\right]{\rm{=}}\left[{\begin{array}{cc}1&0\\0&1\end{array}}\right]\\\begin{array}{cc}{}&\boldsymbol{A}&{}&{}&{\boldsymbol{A}^{-1}}&{}&{}&{}&\boldsymbol{I}&{}&{}\end{array}\end{array}

从 “列操作” 的角度来看,求逆矩阵过程其实和求 Ax=b\boldsymbol{A}\boldsymbol{x}=\boldsymbol{b} 相同,只是这里 x\boldsymbol{x} 为矩阵 A1\boldsymbol{A}^{-1} 的第 jj 列,而 b\boldsymbol{b} 为单位阵 I\boldsymbol{I} 的第 jj 列,如下所示。

[1327][ab]=[10]\left[{\begin{array}{cc}1&3\\2&7\end{array}}\right]\left[{\begin{array}{cc}a\\b\end{array}}\right]=\left[{\begin{array}{cc}1\\0\end{array}}\right]
[1327][cd]=[01]\left[{\begin{array}{cc}1&3\\2&7\end{array}}\right]\left[{\begin{array}{cc}c\\d\end{array}}\right]=\left[{\begin{array}{cc}0\\1\end{array}}\right]

解这样两个方程就行了,但是这样做低阶矩阵还好,高阶矩阵计算量未免太大了,所以下面来介绍 高斯-若尔当消元法

# 2.2 高斯-若尔当消元法

对于前面的二阶矩阵,求逆相当于两组方程,而高斯-若尔当消元法可以同时处理两个方程:

[13271001][13011021][10017321]AIIA1\left[{\begin{array}{c:c}\begin{matrix}1&3\\2&7\\\end{matrix}&\begin{matrix}1&0\\0&1\\\end{matrix}\end{array}}\right]\to\left[{\begin{array}{c:c}\begin{matrix}1&3\\0&1\\\end{matrix}&\begin{matrix}1&0\\-2&1\\\end{matrix}\end{array}}\right]\to\left[{\begin{array}{c:c}\begin{matrix}1&0\\0&1\\\end{matrix}&\begin{matrix}7&-3\\-2&1\\\end{matrix}\end{array}}\right]\\\begin{array}{cc}\boldsymbol{A}&{}&{}&\boldsymbol{I}&{}&{}&{}&{}&{}&{}&{}&{}&{}&{}&{}&{}&{}&\boldsymbol{I}&{}&{}&\boldsymbol{A}^{-1}\end{array}

在用高斯消元法得到上三角矩阵之后,按照若尔当的做法继续消元,用第一行减去第二行的若干倍,最后原矩阵变为单位阵,这时右侧的矩阵即为逆矩阵,下面来检验一下该方法的正确性。

A\boldsymbol{A} 进行一系列消元操作,相当于左乘消元矩阵 E\boldsymbol{E},此时消元的结果为 EA=I\boldsymbol{E}\boldsymbol{A}=\boldsymbol{I},因为右侧矩阵也进行了同样消元操作,也等于左乘矩阵 E\boldsymbol{E},则右侧矩阵为 EI=E\boldsymbol{E}\boldsymbol{I}=\boldsymbol{E}。由 EA=I\boldsymbol{E}\boldsymbol{A}=\boldsymbol{I} 可知这里的 E\boldsymbol{E} 就是 A\boldsymbol{A} 的逆矩阵,因此右侧矩阵给出的就是逆矩阵 E=A1\boldsymbol{E}=\boldsymbol{A}^{-1}

E[AI]=[EAEI]=[IA1]\boldsymbol{E}\left[\begin{array}{c|c}\boldsymbol{A}&\boldsymbol{I}\end{array}\right]=\left[\begin{array}{c|c}\boldsymbol{EA}&\boldsymbol{EI}\end{array}\right]=\left[\begin{array}{c|c}\boldsymbol{I}&\boldsymbol{A}^{-1}\end{array}\right]

# 三、参考资料

Last Updated: 2023-01-28 4:31:25