堂前燕
数学 · 高中 · 线性代数 · 矩阵 · 特征向量 · 几何变换

线性变换 · 把矩阵变成动作

拉 4 个数字 → 坐标网格弯曲、L 形物体变形。理解矩阵到底"在做什么",比死记乘法规则强百倍。

矩阵到底是什么

教科书写道:

M=[abcd],M[xy]=[ax+bycx+dy]M = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad M \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} ax + by \\ cx + dy \end{bmatrix}

公式记得住,但矩阵到底”在做什么”完全不直观

几何视角:矩阵 = 一种动作。这个动作只需要两条信息:

  • 把 î = (1, 0) 送到哪里? 答:(a,c)(a, c),即矩阵的第一列
  • 把 ĵ = (0, 1) 送到哪里? 答:(b,d)(b, d),即矩阵的第二列

剩下的所有点都按”线性组合”跟着走 ——

M[xy]=x[ac]+y[bd]=xMi^+yMj^M \begin{bmatrix} x \\ y \end{bmatrix} = x \cdot \begin{bmatrix} a \\ c \end{bmatrix} + y \cdot \begin{bmatrix} b \\ d \end{bmatrix} = x \cdot M\hat{i} + y \cdot M\hat{j}

整个空间的变换信息,全部压缩在”两个基向量的去处”。

试这些预设

每个预设都是矩阵的不同选择,代表不同的几何动作:

预设矩阵动作
单位[1001]\begin{bmatrix}1&0\\0&1\end{bmatrix}啥也不做
旋转 45°[cosθsinθsinθcosθ]\begin{bmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{bmatrix}整体绕原点逆时针转
旋转 90°[0110]\begin{bmatrix}0&-1\\1&0\end{bmatrix}直角旋转,î → ĵ,ĵ → -î
x 轴镜像[1001]\begin{bmatrix}1&0\\0&-1\end{bmatrix}上下翻转
剪切[10.801]\begin{bmatrix}1&0.8\\0&1\end{bmatrix}上下层水平错动(像扑克牌散开)
非各向同缩[1.5000.5]\begin{bmatrix}1.5&0\\0&0.5\end{bmatrix}x 拉伸 1.5 倍、y 压缩到一半
投影到 x[1000]\begin{bmatrix}1&0\\0&0\end{bmatrix}把所有点压扁到 x 轴
旋转 + 缩放[1.10.60.61.1]\begin{bmatrix}1.1&-0.6\\0.6&1.1\end{bmatrix}旋转 + 略微放大

按一下预设,看 1.5 秒的动画 —— 整个空间连续地从恒等变到目标。

三个关键不变量

det M = 面积缩放因子

把单位正方形 (1,0) (1,1) (0,1) (0,0) 输入 M,得到一个平行四边形。它的有向面积就是 det M。

  • detM=1\det M = 1:面积不变(旋转、剪切)
  • detM=0.5\det M = 0.5:面积缩半
  • detM=1\det M = -1:面积不变但翻转(镜像)
  • detM=0\det M = 0:所有面积塌成 0 ——所有点被压到一条线(或一个点)上,不可逆

试”投影到 x”,看 det = 0 时整个网格塌成横线。

tr M = 对角线之和 = 特征值之和

trM=a+d=λ1+λ2\operatorname{tr} M = a + d = \lambda_1 + \lambda_2,特征值之和。

特征值、特征向量 = “只被拉、不被旋”的方向

如果存在非零向量 vv 满足

Mv=λvMv = \lambda v

vv 就是特征向量λ\lambda 是对应的特征值。几何上:vv 这个方向被 M 作用后还在原方向,只是被拉长 λ\lambda 倍。

观察上面演示:黄色虚线就是当前矩阵的实特征向量方向。

  • 对角矩阵 [a00d]\begin{bmatrix}a&0\\0&d\end{bmatrix}:特征向量就是 î、ĵ
  • 旋转矩阵:无实特征向量(每个方向都在转),黄线消失
  • 镜像矩阵:两个垂直的特征向量,一个 λ=1(镜面内方向),一个 λ=-1(垂直镜面方向)
  • 剪切矩阵:只有一个特征向量方向(沿剪切方向)

复合变换 = 矩阵乘法

如果先做变换 AA 再做 BB合成的变换是矩阵 BABA不是 ABAB!)。

试这个:

  1. 先按”旋转 90°“,记住网格的样子
  2. 按”x 轴镜像”

这是两个独立动作。它们的合成 = “旋转 90° 然后再做 x 轴镜像”,由矩阵乘法 [1001][0110]=[0110]\begin{bmatrix}1&0\\0&-1\end{bmatrix} \cdot \begin{bmatrix}0&-1\\1&0\end{bmatrix} = \begin{bmatrix}0&-1\\-1&0\end{bmatrix} 描述。矩阵乘法的所有规则都是”动作复合”的代数化

真实世界的线性变换

  • 计算机图形:3D 模型每个顶点的变换、相机投影、动画骨骼 = 4×4 矩阵反复相乘
  • 机器学习:神经网络每一层 = y=Wx+by = Wx + b,一次线性变换 + 偏移 + 非线性
  • 物理:旋转动力学、晶体格子、量子态变换都是矩阵
  • 统计:协方差矩阵的特征分解 = PCA 主成分分析
  • 量子力学:观测算符是厄米矩阵,本征值就是观测可能的结果
  • 谷歌 PageRank:网页之间的链接构成巨型矩阵,最大特征值对应的特征向量就是网页排名
  • 音视频:JPEG / MP3 压缩里用的 DCT 也是线性变换

一个不常被讲的洞察

矩阵 = 变换这个视角 (Linear Map View) 远比 “矩阵 = 数字表格” 强大。

  • 求逆矩阵 M1M^{-1}?= 找”逆动作”
  • MkM^k?= 重复 k 次同一动作
  • 矩阵无穷次幂 limkMk\lim_{k \to \infty} M^k?= 看长期行为,由最大特征值决定(PageRank 原理)
  • 对角化 M=PDP1M = PDP^{-1}?= 找到”自然坐标系”,让动作只剩拉伸(D 是对角阵)
  • 奇异值分解(SVD)M=UΣVTM = U\Sigma V^T?= “先转方向,再各向异拉伸,再转方向”

整个线性代数都是把动作(连续的、几何的)变成代数操作(离散的、机械的)。两者完全等价,但前者直观、后者好算。

两者并用,才是真正学会线性代数。