说到矩阵乘法,首先想到的就是“左行右列”,
[
2
1
3
3
1
4
5
7
12
]
×
[
x
1
x
2
x
3
]
=
[
2
x
1
+
x
2
+
3
x
3
3
x
1
+
x
2
+
4
x
3
5
x
1
+
7
x
2
+
12
x
3
]
\left[ \begin{matrix} 2 & 1 & 3 \\ 3 & 1 & 4 \\ 5 & 7 & 12 \end{matrix} \right] \times \left[ \begin{matrix} {x_1} \\ {x_2} \\ {x_3} \\ \end{matrix} \right] = \left[ \begin{matrix} {2x_1}+{x_2} +3{x_3}\\ 3{x_1}+{x_2}+4{x_3} \\ 5{x_1}+7{x_2}+12{x_3} \\ \end{matrix} \right]
⎣⎡2351173412⎦⎤×⎣⎡x1x2x3⎦⎤=⎣⎡2x1+x2+3x33x1+x2+4x35x1+7x2+12x3⎦⎤
学过线性代数的人应该都能完成上面的计算,但是只会进行简单的计算对于我们理解矩阵的本质是远远不够的,也就是说,将矩阵的乘法简单的理解为两个矩阵进行“左行右列”的计算是一种很“低级”的认知(Gilbert Strang说的)。
那么问题来了,既然这样看太低级了,那该怎么看?
答案就是:应该将矩阵乘法看作向量级的乘。
同样是上面的例子:
[
2
1
3
3
1
4
5
7
12
]
×
[
x
1
x
2
x
3
]
=
[
2
3
5
]
x
1
+
[
1
1
7
]
x
2
+
[
3
4
12
]
x
3
\left[ \begin{matrix} 2 & 1 & 3 \\ 3 & 1 & 4 \\ 5 & 7 & 12 \end{matrix} \right] \times \left[ \begin{matrix} {x_1} \\ {x_2} \\ {x_3} \\ \end{matrix} \right] = \left[ \begin{matrix} 2\\ 3\\ 5\\ \end{matrix} \right] {x_1} + \left[ \begin{matrix} 1\\ 1\\ 7\\ \end{matrix} \right] {x_2} + \left[ \begin{matrix} 3\\ 4\\ 12\\ \end{matrix} \right] {x_3}
⎣⎡2351173412⎦⎤×⎣⎡x1x2x3⎦⎤=⎣⎡235⎦⎤x1+⎣⎡117⎦⎤x2+⎣⎡3412⎦⎤x3
这样表示又有什么独特的呢?这样表示出来,矩阵乘法就和空间联系起来了。观察等号的右边,是矩阵的三个列向量和x的乘积的和,由于x可取任意向量,这表示的就是矩阵的列向量的生成空间,这里举例的向量都是三维的,你可以想象每一个列向量都表示三维空间中一个的方向,x表示在该方向上的长度,这样随着x的改变,列向量和x的乘积之和即可表示出列向量的所有线性组合,即列向量的生成空间。
说到空间,又不得不提到基这个概念,可以把基理解为空间的”坐标轴向量”,比如二维空间中
[
1
0
]
\left[ \begin{matrix}1 \\0 \\ \end{matrix} \right]
[10]
[
0
1
]
\left[ \begin{matrix}0 \\ 1 \\ \end{matrix} \right]
[01]就是一组最常用的基,上面我们提到右边表示的是矩阵的列向量的生成空间,那列向量就是列向量生成空间的基吗?答案是不一定。比如上面我们举的例子,容易发现,第三个列向量可表示为前两个列向量的和,这也就违背了基的性质——一组基里面的任意一部分向量都是线性无关的,那我们只保留两个线性无关的列向量就可以认为是列向量的一组基,我们尝试用基分解矩阵,那就有下面的等式:
[
2
1
3
3
1
4
5
7
12
]
=
[
2
1
3
1
5
7
]
×
[
1
0
1
0
1
1
]
\left[ \begin{matrix} 2 & 1 & 3 \\ 3 & 1 & 4 \\ 5 & 7 & 12 \end{matrix} \right] = \left[ \begin{matrix} 2 & 1\\ 3 & 1 \\ 5 & 7 \\ \end{matrix} \right] \times \left[ \begin{matrix} 1 & 0 & 1\\ 0 & 1 & 1 \\ \end{matrix} \right]
⎣⎡2351173412⎦⎤=⎣⎡235117⎦⎤×[100111]
使用我们提出的将矩阵乘法看作向量级的乘来看上面的矩阵的乘就很容易理解:
[
2
1
3
1
5
7
]
×
[
1
0
1
0
1
1
]
=
[
[
2
3
5
]
∗
1
+
[
1
1
7
]
∗
0
[
2
3
5
]
∗
0
+
[
1
1
7
]
∗
1
[
2
3
5
]
∗
1
+
[
1
1
7
]
∗
1
]
\left[ \begin{matrix} 2 & 1\\ 3 & 1 \\ 5 & 7 \\ \end{matrix} \right] \times \left[ \begin{matrix} 1 & 0 & 1\\ 0 & 1 & 1 \\ \end{matrix} \right] = \left[ \begin{matrix} \left[ \begin{matrix} 2 \\ 3 \\ 5 \end{matrix} \right] *1 + \left[ \begin{matrix} 1 \\ 1 \\ 7 \end{matrix} \right] *0 & \left[ \begin{matrix} 2 \\ 3 \\ 5 \end{matrix} \right] *0 + \left[ \begin{matrix} 1 \\ 1 \\ 7 \end{matrix} \right] *1 & \left[ \begin{matrix} 2 \\ 3 \\ 5 \end{matrix} \right] *1 + \left[ \begin{matrix} 1 \\ 1 \\ 7 \end{matrix} \right] *1 \end{matrix} \right]
⎣⎡235117⎦⎤×[100111]=⎣⎡⎣⎡235⎦⎤∗1+⎣⎡117⎦⎤∗0⎣⎡235⎦⎤∗0+⎣⎡117⎦⎤∗1⎣⎡235⎦⎤∗1+⎣⎡117⎦⎤∗1⎦⎤
=
[
[
1
0
1
]
∗
2
+
[
0
1
1
]
∗
1
[
1
0
1
]
∗
3
+
[
0
1
1
]
∗
1
[
1
0
1
]
∗
5
+
[
0
1
1
]
∗
7
]
=\left[ \begin{matrix} \left[ \begin{matrix} 1 & 0 & 1 \end{matrix} \right] *2 + \left[ \begin{matrix} 0 &1 & 1 \end{matrix} \right] *1 & \\ \left[ \begin{matrix} 1 & 0 & 1 \end{matrix} \right] *3 + \left[ \begin{matrix} 0 & 1 & 1 \end{matrix} \right] *1 & \\ \left[ \begin{matrix} 1 & 0 & 1 \end{matrix} \right] *5 + \left[ \begin{matrix} 0 &1 & 1 \end{matrix} \right] *7 \end{matrix} \right]
=⎣⎡[101]∗2+[011]∗1[101]∗3+[011]∗1[101]∗5+[011]∗7⎦⎤
=
[
2
1
3
3
1
4
5
7
12
]
= \left[ \begin{matrix} 2 & 1 & 3 \\ 3 & 1 & 4 \\ 5 & 7 & 12 \end{matrix} \right]
=⎣⎡2351173412⎦⎤
这个等式还有一个奇特的地方就在于,等式左边的第一个矩阵的行向量组是线性无关的,并且它的组合能表示出所有行向量,所以它是行向量的一组基,同理第二个矩阵是列向量生成空间的一组基。一组基中的向量的个数,表示该生成空间的维数,在本例中等于2。由于矩阵的行秩等于列向量生成空间的维数(同理列秩就等于行向量生成的空间的维数),所以这也可以得出矩阵的行秩和列秩是相等的。再回头看刚在那个问题,什么时候列向量就是列向量生成空间的一组基,答案就是当矩阵的列向量线性无关时,这时矩阵的列向量生成空间的维数就等于列向量的个数,这时矩阵的秩就等于列数,矩阵也就被称为满秩阵。
从简单的矩阵乘法就能引申出这么多东西,不得不说老师是真的厉害,手动点赞。
以上内容来自以下课程中的Lecture 1: The Column Space of A Contains All Vectors Ax:课程链接