文章目录
1. 矩阵乘法 Matrix multiplication
我们通过四种方法讨论如何使矩阵 A 与 B 相乘得到矩阵 C。 其中 A 为m*n(m 行 n 列)矩阵,而 B 为 n*p 矩阵,则 C 为 m*p 矩阵,记 c i j c_{ij} cij 为矩阵 C 中第 i i i行第 j j j列的元素。
1.1 标准方法(行乘以列)
矩阵乘法的标准计算方法是通过矩阵 A 第
i
i
i行的行向量和矩阵 B 第
j
j
j列的列向量点积得到
c
i
j
c_{ij}
cij。
c
i
j
=
∑
k
=
1
N
a
i
k
∗
b
k
j
c_{ij}=\sum_{k=1}^{N}a_{ik}*b_{kj}
cij=k=1∑Naik∗bkj
1.2 列向量的线性组合
把矩阵B拆分成若干个列向量 ( b 1 , b 2 , … , b p ) (b_1, b_2,\dots,b_p) (b1,b2,…,bp)。所以矩阵相乘等价于将矩阵A分别与B中的每个列向量相乘,则 A ∗ B = ( A ∗ b 1 , A ∗ b 2 , … , A ∗ b p ) A*B=(A*b_1,A*b_2,\dots,A*b_p) A∗B=(A∗b1,A∗b2,…,A∗bp)。
那么矩阵A与每个列向量相乘就是矩阵A中的列向量的线性组合,具体可参考MIT线性代数笔记一 行图像和列图像。
直观来看是左旋(逆时针旋转)。
1.3 行向量的线性组合
把矩阵A拆分成若干个行向量 ( a 1 , a 2 , … , a m ) T (a_1,a_2,\dots,a_m)^T (a1,a2,…,am)T。所以矩阵相乘等价于将矩阵A的行向量分别与B相乘,则 A ∗ B = ( a 1 ∗ B , a 2 ∗ B , … , a m ∗ B ) T A*B=(a_1*B,a_2*B,\dots,a_m*B)^T A∗B=(a1∗B,a2∗B,…,am∗B)T。需要注意的是, a 1 ∗ B a_1*B a1∗B得到是一个行向量。
行向量与矩阵B相乘就是矩阵B中的行向量的线性组合,具体可参考MIT线性代数笔记二 矩阵消元。
直观来看是右旋(顺时针旋转)。
1.4 分块乘法
A B = ( A 1 A 2 A 3 A 4 ) ∗ ( B 1 B 2 B 3 B 4 ) = ( A 1 A 3 ) ∗ ( B 1 B 2 ) + ( A 2 A 4 ) ∗ ( B 3 B 4 ) AB= \begin{gathered} \begin{pmatrix} A_{1} & A_{2} \\ A_{3} & A_{4} \end{pmatrix} \end{gathered} * \begin{gathered} \begin{pmatrix} B_{1} & B_{2} \\ B_{3} & B_{4} \end{pmatrix} \end{gathered} = \begin{gathered} \begin{pmatrix} A_{1} \\ A_{3} \end{pmatrix} \end{gathered} * \begin{gathered} \begin{pmatrix} B_{1} & B_{2} \end{pmatrix} \quad \end{gathered} + \begin{gathered} \begin{pmatrix} A_{2} \\ A_{4} \end{pmatrix} \end{gathered} * \begin{gathered} \begin{pmatrix} B_{3} & B_{4} \end{pmatrix} \quad \end{gathered} AB=(A1A3A2A4)∗(B1B3B2B4)=(A1A3)∗(B1B2)+(A2A4)∗(B3B4)
A B = ( A 1 B 1 A 1 B 2 A 3 B 1 A 3 B 2 ) + ( A 2 B 3 A 2 B 4 A 4 B 3 A 4 B 4 ) AB= \begin{gathered} \begin{pmatrix} A_{1}B_1 & A_{1}B_{2} \\ A_{3}B_{1} & A_{3}B_{2} \end{pmatrix} \end{gathered} + \begin{gathered} \begin{pmatrix} A_{2}B_3 & A_{2}B_{4} \\ A_{4}B_{3} & A_{4}B_{4} \end{pmatrix} \end{gathered} AB=(A1B1A3B1A1B2A3B2)+(A2B3A4B3A2B4A4B4)
A B = ( A 1 B 1 + A 2 B 3 A 1 B 2 + A 2 B 4 A 3 B 1 + A 4 B 3 A 3 B 2 + A 4 B 4 ) AB= \begin{gathered} \begin{pmatrix} A_{1}B_1 + A_{2}B_3 & A_{1}B_{2} + A_{2}B_{4} \\ A_{3}B_{1} + A_4B_3& A_{3}B_{2}+A_4B_4 \end{pmatrix} \end{gathered} AB=(A1B1+A2B3A3B1+A4B3A1B2+A2B4A3B2+A4B4)
如果将矩阵 A \bold A A和矩阵 B \bold B B划分为严格匹配的区块,则矩阵乘法可以通过分块的乘法加以实现。
C
\bold C
C矩阵前的符号为等号,其中
C
1
=
A
1
B
1
+
A
2
B
3
C_1=A_1B_1+A_2B_3
C1=A1B1+A2B3,计算方法与标准算法中矩阵里元素的操作方式相同。
分块相乘要能进行,自然每个小块也必须满足矩阵乘法的合法性,即第一个矩阵的列数=第二个矩阵的行数。因此,矩阵分块是否合理只要看第一个矩阵列的划分是否和第二个矩阵行的划分匹配。
2. 逆矩阵
如果逆矩阵存在,则满足下列等式:
A
−
1
A
=
A
A
−
1
=
I
A^{-1}A=AA^{-1}=I
A−1A=AA−1=I
2.1 逆矩阵的定义
奇异矩阵即为不可逆矩阵。
A
A
A为奇异阵,则方程
A
x
=
0
Ax=0
Ax=0 存在非零解
x
x
x。例如:
(
1
3
2
6
)
(
−
3
1
)
=
(
0
0
)
\begin{gathered} \begin{pmatrix} 1 & 3 \\ 2 & 6 \end{pmatrix} \end{gathered} \begin{gathered} \begin{pmatrix} -3 \\ 1 \end{pmatrix} \end{gathered} = \begin{gathered} \begin{pmatrix} 0 \\ 0 \end{pmatrix} \end{gathered}
(1236)(−31)=(00)
在这个二阶矩阵的例子中,两个列向量是共线的。不可逆矩阵中总有列向量在线性组合中是没有贡献的,等价的说法还有:不可逆矩阵的列向量可以通过线性组合得到零向量。再次凸显出了列向量作为空间的基向量的这一思维的重要性。
2.2 高斯-若尔当消元法 Gauss-Jordan Elimination
首先说一下为什么Jordan没有翻译成乔丹(简单来说是因为法语和英语发音不同),具体可参考链接:https://www.zhihu.com/question/40837690。
在原矩阵右侧加上了增广矩阵
I
I
I,然后将A转换成单位矩阵后则增广矩阵也就变成了逆矩阵。
E
[
A
∣
I
]
=
[
E
A
∣
E
I
]
=
[
I
∣
A
−
1
]
E[A|I]=[EA|EI]=[I|A^{-1}]
E[A∣I]=[EA∣EI]=[I∣A−1]
很显然E变成了 A − 1 A^{-1} A−1,所以结果是正确的。