L3-矩阵的乘法和逆

linear-algebra

L3-矩阵的乘法和逆

参考

矩阵乘法

两矩阵相乘 AB=CAB=C,其中 AA 是一个 m×nm \times n 矩阵,BB 是一个 n×pn \times p 矩阵,并以 CijC_{ij} 表示矩阵 CC 的第 ii 行、第 jj 列的元素 entry

可以有 4 方式去理解:

  • 标准方法(行向量与列向量相乘,点乘,依次求出各元素)
  • 矩阵各列的线性组合(矩阵与列向量相乘,依次求出各列)
  • 矩阵各行的线性组合(行向量与矩阵相乘,依次求出各行)
  • 列向量与行向量相乘(得到多个矩阵,再求和)

标准方法(row times column)

左乘矩阵的行向量与右乘矩阵的列向量相乘得到结果矩阵的相应元素。

Am×nBn×p=[a11a12a1nai1ai2ainam1am2amn][b11b1jb1pb21b2jb2pbn1bnjbnp]=[c11c12c1pc21c22c2pcijcm1cm2cmp]=C\begin{aligned} A_{m\times n} B_{n\times p} & = \begin{bmatrix} a_{11} & a_{12}& \cdots & a_{1n} \\ \vdots & \vdots & \ddots & \vdots \\ {\color{Red}a_{i1}} & {\color{Red}a_{i2}} & {\color{Red}\cdots} & {\color{Red}a_{in}} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} \begin{bmatrix} b_{11} & \cdots & {\color{Red}b_{1j}} & \cdots & b_{1p} \\ b_{21} & \cdots & {\color{Red}b_{2j}} & \cdots & b_{2p} \\ \vdots & \vdots & {\color{Red}\vdots} & \ddots & \vdots \\ b_{n1} & \cdots & {\color{Red}b_{nj}} & \cdots & b_{np} \end{bmatrix} & = \begin{bmatrix} c_{11} & c_{12} & \cdots & \cdots & \cdots & c_{1p} \\ c_{21} & c_{22} & \cdots & \cdots & \cdots & c_{2p} \\ \vdots & \vdots & \vdots & \vdots & \vdots &\vdots \\ \vdots & \vdots & \vdots & {\color{Red}c_{ij}} & \vdots & \vdots \\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ c_{m1} & c_{m2} & \cdots & \cdots & \cdots & c_{mp} \end{bmatrix} & = C \end{aligned}

矩阵 CCCijC_{ij} 元素是左乘矩阵 AA 的第 ii 行(向量)与右乘矩阵 BB 的第 jj 列(向量)点乘求得

Cij=[ai1ai2ain][b1jb2jbnj]\begin{aligned} C_{ij} &= \begin{bmatrix} {\color{Red}a_{i1}}& {\color{Red}a_{i2}}& {\color{Red}\cdots} & {\color{Red}a_{in}} \end{bmatrix} \begin{bmatrix} {\color{Red}b_{1j}}\\ {\color{Red}b_{2j}}\\ {\color{Red}\vdots}\\ {\color{Red}b_{nj}} \end{bmatrix} \end{aligned}

Cij=k=1naikbkjC_{ij} = \sum_{k=1}^{n} a_{ik}b_{kj}

提示

以上的行向量左乘列向量,也可以看作矩阵与列向量的乘法

矩阵各列的线性组合(columns)

矩阵与列向量相乘的角度考虑,结果矩阵的各列是基于右乘矩阵相应的列作为系数,左乘矩阵各列进行线性组合而得的。

矩阵 CC 的第 jj 列是矩阵 AA 与矩阵 BB 的第 jj 列相乘得到的。因此可以将矩阵 AA 和 矩阵 BB 相乘得到矩阵 CC 看作是矩阵 CC 各列是矩阵 AA 各列的线性组合

AB=[][col1col2colp]=[Acol1Acol2Acolp]=C\begin{aligned} AB & = \begin{bmatrix} \cdots & \cdots & \cdots \\ \vdots & \ddots & \vdots \\ \cdots & \cdots & \cdots \end{bmatrix} \begin{bmatrix} \vdots & \vdots & \cdots & \vdots \\ {\color{Red} col1} & {\color{Green} col2} & \cdots & {\color{Orange} colp} \\ \vdots& \vdots & \cdots & \vdots \end{bmatrix} &= \begin{bmatrix} \vdots & \vdots & \cdots & \vdots \\ A {\color{Red} col1} & A {\color{Green} col2} & \cdots & A {\color{Orange} colp} \\ \vdots & \vdots & \cdots & \vdots \end{bmatrix} & = C \end{aligned}

矩阵各行的线性组合(rows)

行向量与矩阵相乘的角度考虑,结果矩阵的各行是基于左乘矩阵相应的行作为系数,右乘矩阵各行进行线性组合而得的。

矩阵 CC 的第 ii 行是矩阵 AA 的第 ii 行与矩阵 BB 相乘得到的。因此可以将矩阵 AA 和矩阵 BB 相乘得到矩阵 CC 看作是矩阵 CC 各行是矩阵 BB 各行的线性组合

AB=[row1row2rowm][]=[row1Brow2BrowmB]=C\begin{aligned} AB & = \begin{bmatrix} \cdots & {\color{Red} row1} & \cdots \\ \cdots & {\color{Green} row2} & \cdots \\ \vdots & \vdots & \vdots \\ \cdots & {\color{Orange} rowm} & \cdots \end{bmatrix} \begin{bmatrix} \cdots & \cdots & \cdots \\ \vdots & \ddots & \vdots \\ \cdots & \cdots & \cdots \end{bmatrix} & = \begin{bmatrix} \cdots & {\color{Red} row1} B & \cdots \\ \cdots & {\color{Green} row2} B & \cdots \\ \vdots & \vdots & \vdots \\ \cdots & {\color{Orange} rowm} B & \cdots \end{bmatrix} & = C \end{aligned}

列向量乘行向量(column times row)

左乘矩阵的第 kk 列向量与相应的右乘矩阵的第 kk 行向量相乘,得到一个矩阵,再将所有得到的矩阵相加求和得到最终的结果矩阵。

AB=k=1n[a1kamk][bk1bkn]=C\begin{aligned} AB &= \sum_{k=1}^{n} \begin{bmatrix} a_{1k}\\ \vdots\\ a_{mk} \end{bmatrix} \begin{bmatrix} b_{k1}& \dots & b_{kn} \end{bmatrix} &= C \end{aligned}

例如 A3×2A_{3 \times 2}B2×2B_{2 \times 2} 相乘,分别将左乘矩阵的第一列向量与右乘矩阵的第一行向量相乘,左乘矩阵的第二列向量与右乘矩阵的第二行向量相乘,分别得到两个矩阵;最后将这两个矩阵相加就可以得到结果。

[273849][1600]=[237][16]+[789][00]=[212318424]+[000000]=[212318424]\begin{aligned} \begin{bmatrix} {\color{Red} 2} & {\color{Green} 7} \\ {\color{Red} 3} & {\color{Green} 8} \\ {\color{Red} 4} & {\color{Green} 9} \end{bmatrix} \begin{bmatrix} {\color{Red} 1} & {\color{Red} 6} \\ {\color{Green} 0} & {\color{Green} 0} \end{bmatrix} & = \begin{bmatrix} {\color{Red} 2} \\ {\color{Red} 3} \\ {\color{Red} 7} \end{bmatrix} \begin{bmatrix} {\color{Red} 1} & {\color{Red} 6} \end{bmatrix} + \begin{bmatrix} {\color{Green} 7} \\ {\color{Green} 8} \\ {\color{Green} 9} \end{bmatrix} \begin{bmatrix} {\color{Green} 0} & {\color{Green} 0} \end{bmatrix}\\ &= \begin{bmatrix} {\color{Red} 2} & {\color{Red} 12} \\ {\color{Red} 3} & {\color{Red} 18} \\ {\color{Red} 4} & {\color{Red} 24} \end{bmatrix} + \begin{bmatrix} {\color{Green} 0} & {\color{Green} 0} \\ {\color{Green} 0} & {\color{Green} 0} \\ {\color{Green} 0} & {\color{Green} 0} \end{bmatrix} \\ & = \begin{bmatrix} 2 & 12 \\ 3 & 18 \\ 4 & 24 \end{bmatrix} \end{aligned}

分块乘法

分块乘法 block multiplication,可以将矩阵的多个元素的部分区域作为一个整体元素看待,基于标准方法(row times column)可以得到类似的乘法规律

将矩阵 AA 和矩阵 BB 分别划分为四个块,相乘得到矩阵 CC

AB=[A1A2A3A4][B1B2B3B4]=[A1B1+A2B3]=C\begin{aligned} AB & = \begin{bmatrix} {\color{Red}A_{1}} & {\color{Red}A_{2}} \\ A_{3} & A_{4} \end{bmatrix} \begin{bmatrix} {\color{Red}B_{1}} & B_{2} \\ {\color{Red}B_{3}} & B_{4} \end{bmatrix}\\ & = \begin{bmatrix} {\color{Red}A_{1} B_{1} + A_{2} B_{3}} & \dots \\ \dots & \dots \end{bmatrix}\\ & = C \end{aligned}
提示

对两个矩阵进行分块时,要求块内部元素的维度满足矩阵相乘的维度要求。

矩阵的逆

上一节将「作用相反」的初等矩阵记为 E1E^{-1} 称为 EE 的逆矩阵,可以拓展到一般的矩阵,当矩阵 AA 是可逆矩阵 invertible matrix/非奇异矩阵 non-singular matrix 时,它存在左逆矩阵 A1A^{-1}满足 A1A=IA^{-1}A=I

提示

如果 AA方阵,则满足 A1A=IA^{-1}A=IAA1=IAA^{-1}=I,即 (可逆)方阵的左逆和右逆相同

逆矩阵的求解

已知方阵 AA 为可逆矩阵,求解其逆矩阵

A=[1327]\begin{aligned} A & = \begin{bmatrix} 1 & 3 \\ 2 & 7 \end{bmatrix} \end{aligned}

假设方阵的逆为

A1=[acbd]\begin{aligned} A^{-1} &= \begin{bmatrix} a&c \\ b&d \end{bmatrix} \end{aligned}

根据 AA1=IAA^{-1}=I 可得

[1327][acbd]=[1001]\begin{aligned} \begin{bmatrix} 1 & 3\\ 2 & 7 \end{bmatrix} \begin{bmatrix} a&c \\ b&d \end{bmatrix} &= \begin{bmatrix} 1&0 \\ 0&1 \end{bmatrix} \end{aligned}

以矩阵各列的线性组合来考虑矩阵相乘可得两个方程组

  • 方程组一:
[1327][ab]=[10]\begin{aligned} \begin{bmatrix} 1 & 3\\ 2 & 7 \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} &= \begin{bmatrix} 1 \\ 0 \end{bmatrix} \end{aligned}
  • 方程组二:
[1327][cd]=[01]\begin{aligned} \begin{bmatrix} 1 & 3\\ 2 & 7 \end{bmatrix} \begin{bmatrix} c \\ d \end{bmatrix} &= \begin{bmatrix} 0 \\ 1 \end{bmatrix} \end{aligned}

使用高斯-若尔当能 Gauss–Jordan 消元法同时求解两个(或多个)方程组,过程类似于高斯消元法求解一个方程组:

  • 使用增广矩阵表示多个方程组,并通过多个消元矩阵的变换,将系数矩阵转换为单位矩阵
  • 增广矩阵右侧部分就是逆矩阵 A1A^{-1}

基于两个方程组得到的增广矩阵 (AI)(A|I)

[13271001]\begin{bmatrix} \begin{array}{c:c} \begin{matrix} 1 & 3 \\ 2 & 7 \end{matrix} & \begin{matrix} 1 & 0 \\ 0 & 1 \end{matrix} \end{array} \end{bmatrix}

使用消元矩阵对增广矩阵左侧的部分进行变换,使其转换为单位矩阵

[13271001][13011021][10017321]\begin{bmatrix} \begin{array}{c:c} \begin{matrix} 1 & 3 \\ 2 & 7 \end{matrix} & \begin{matrix} 1 & 0 \\ 0 & 1 \end{matrix} \end{array} \end{bmatrix} \Rightarrow \begin{bmatrix} \begin{array}{c:c} \begin{matrix} 1 & 3 \\ 0 & 1 \end{matrix} & \begin{matrix} 1 & 0 \\ -2 & 1 \end{matrix} \end{array} \end{bmatrix} \Rightarrow \begin{bmatrix} \begin{array}{c:c} \begin{matrix} 1 & 0 \\ 0 & 1 \end{matrix} & \begin{matrix} 7 & -3 \\ -2 & 1 \end{matrix} \end{array} \end{bmatrix}

则增广矩阵右侧部分就是逆矩阵 [7321]\begin{bmatrix}7&-3\\-2&1\end{bmatrix}

高斯-若尔当能消元法求解出逆矩阵的原理

消元法使用(一系列)初等矩阵 EE 与增广矩阵 [AI][A|I] 相乘,对其进行变换,即 E[AI]=[I?]E[A|I]=[I|{\color{Red}?}]

根据分块乘法规则可知(虽然实际上 E[AI]E[A|I] 是列向量与行向量相乘) EA=IEA=I,而 A1A=IA^{-1}A=I,所以消元矩阵 EE 就是 AA 的可逆矩阵,即 E=A1E=A^{-1}

根据分块乘法的规则,有 ?=EI=E{\color{Red}?}=EI=E,而前面的分析可知 E=A1E=A^{-1} 所以增广矩阵经过消元法最后得到的右半部分就是 AA 的可逆矩阵

注意

以上求解方法只能针对方阵,因为需要将原矩阵 AA 与单位矩阵 II 构造为一个增广矩阵,需要保证它们的维度相匹配


Copyright © 2024 Ben

Theme BlogiNote

Icons from Icônes