过去学习线性代数的经历,我们常常都是被灌输矩阵乘法的计算规则-行乘列、逐元素相加。机械式的教学忽略了其背后的深刻几何意义,在我过去的理解中,线性代数就是试卷上试题上,不明白学的意义在哪里。通过3Blue1Brown《线性代数的本质》系列视频,我们理解到:矩阵乘法本质上是线性变换的复合,通过理解矩阵乘法与线性变换之间的内在联系,从"算数操作"到"几何思维"。
3Blue1Brown《线性代数的本质》线性组合、张成空间与基
1、回顾一下过去学的 矩阵*矩阵计算规则
设矩阵 A A A 的大小为 m × n m \times n m×n,矩阵 B B B 的大小为 n × p n \times p n×p,则它们的乘积 C = A B C = AB C=AB 是一个 m × p m \times p m×p 的矩阵。
⚠️ 注意:只有当第一个矩阵的列数等于第二个矩阵的行数时,矩阵乘法才有定义。
矩阵乘法的结果中,元素 c i j c_{ij} cij 是矩阵 A A A 的第 i i i 行与矩阵 B B B 的第 j j j 列对应元素乘积之和:
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∑naikbkj
即:
c i j = a i 1 b 1 j + a i 2 b 2 j + ⋯ + a i n b n j c_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j} + \cdots + a_{in}b_{nj} cij=ai1b1j+ai2b2j+⋯+ainbnj
设:
A = [ 1 2 3 4 ] , B = [ 5 6 7 8 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix},\quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} A=[1324],B=[5768]
则 C = A B C = AB C=AB 为:
C = [ 1 ⋅ 5 + 2 ⋅ 7 1 ⋅ 6 + 2 ⋅ 8 3 ⋅ 5 + 4 ⋅ 7 3 ⋅ 6 + 4 ⋅ 8 ] = [ 19 22 43 50 ] C = \begin{bmatrix} 1\cdot5 + 2\cdot7 & 1\cdot6 + 2\cdot8 \\ 3\cdot5 + 4\cdot7 & 3\cdot6 + 4\cdot8 \end{bmatrix} = \begin{bmatrix} 19 & 22 \\ 43 & 50 \end{bmatrix} C=[1⋅5+2⋅73⋅5+4⋅71⋅6+2⋅83⋅6+4⋅8]=[19432250]
2、线性变换和矩阵
在 3Blue1Brown《线性代数的本质》矩阵与线性变换 文中已经知道:
一个矩阵代表的是一个线性变换。每个矩阵都描述了空间如何被拉伸、旋转、剪切或投影的操作
例如,二维空间中的一个 2 × 2 2 \times 2 2×2 矩阵
A = [ a b c d ] A = \begin{bmatrix} a & b \\ c & d \end{bmatrix} A=[acbd]
其实是:标准基向量 i ⃗ = ( 1 , 0 ) \vec{i} = (1,0) i =(1,0) 被映射到了 ( a , c ) (a,c) (a,c),而 j ⃗ = ( 0 , 1 ) \vec{j} = (0,1) j =(0,1) 被映射到了 ( b , d ) (b,d) (b,d)。整个平面的变换由这两个基向量的去向完全决定。
这种"以基向量的变换定义整个空间变换"的思想,是理解线性代数几何本质的关键。
3、变换的复合:先A后B,等于什么?
假设有两个线性变换:
- 第一个变换由矩阵 A A A 表示,
- 第二个变换由矩阵 B B B 表示。
如果先对空间应用 A A A,再应用 B B B,整体效果相当于矩阵乘积 B A BA BA 所对应的变换。
注意顺序:先A后B → 对应 B A BA BA 。为什么是 B A BA BA 而不是 A B AB AB?这和函数复合的顺序一致:
( B ∘ A ) ( v ⃗ ) = B ( A ( v ⃗ ) ) (B \circ A)(\vec{v}) = B(A(\vec{v})) (B∘A)(v )=B(A(v ))
也就是说,输入向量 v ⃗ \vec{v} v 先被 A A A 变换,结果再被 B B B 变换。因此,总变换对应的是 B A BA BA。
矩阵乘法,是为了让乘积矩阵能正确表示两个线性变换的复合效果。
为什么是 B A BA BA 而不是 A B AB AB,顺序很重要。举个例子。
基向量是:
i ^ = [ 1 0 ] , j ^ = [ 0 1 ] \hat{i} = \begin{bmatrix} 1 \\ 0 \end{bmatrix},\quad \hat{j} = \begin{bmatrix} 0 \\ 1 \end{bmatrix} i^=[10],j^=[01]
假设有两个变换:
-
A A A:逆时针旋转90度
A = [ 0 − 1 1 0 ] A = \begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} A=[01−10] -
B B B:沿x轴拉伸2倍
B = [ 2 0 0 1 ] B = \begin{bmatrix} 2 & 0 \\ 0 & 1 \end{bmatrix} B=[2001]
比较 B A BA BA 和 A B AB AB:
- B A BA BA:先旋转,再拉伸x轴 → 原来的y方向(旋转后变成-x方向)不会被拉伸,原x方向旋转成了y方向,不受影响。
- A B AB AB:先拉伸,再旋转 → x方向先被拉长,然后旋转到y方向。
变换的顺序影响最终结果,矩阵乘法不满足交换律( A B ≠ B A AB \ne BA AB=BA)。
4、总结
理解 C = A B C = AB C=AB,可以想象是一个舞者在跳舞,首先跳了 A A A动作,再跳了 B B B动作, C C C就是整体的编舞。
矩阵不是单纯的数字和试卷上的试题,而是空间的舞蹈。
矩阵乘法不是枯燥的运算,而是舞蹈动作的衔接与编排。