矩阵作为线性变换
矩阵不是数字表格 -- 它们是变换空间的机器。本章展示如何将旋转、缩放、剪切、反射和投影视为矩阵,以及为什么矩阵乘法意味着变换的复合。
一切从一句话开始
打开任何一本传统教材,矩阵都会被介绍成"一张排成矩形的数字表格"。你被告知要怎么相加、相乘、求逆,却从来没有人解释为什么乘法规则要写成那样,为什么 $AB$ 一般不等于 $BA$。
本章只想把那个被符号掩盖掉的秘密讲清楚:
矩阵是一个把空间变形的函数。
每一个 $m\times n$ 的矩阵都是一台机器:吃进一个 $n$ 维向量,吐出一个 $m$ 维向量。一旦你看见这一点,那些奇怪的规则就不再奇怪了——它们只是"基向量被搬到哪里去了"的记账方式。
本章我们会:
- 给出线性变换的定义,并刻画它的几何指纹;
- 证明"一个矩阵完全由它对基向量的作用决定";
- 用统一的"前后对照"图,把旋转、缩放、剪切、反射、投影看个遍;
- 推导出"矩阵乘法 = 变换的复合",从而立刻解释非交换性;
- 讨论逆矩阵(撤销变换)、核与像,以及矩阵奇异时究竟发生了什么。
前置知识。 第 1 章(向量、加法、数乘)和第 2 章(线性无关、基、张成空间)。
1. 矩阵是一个函数
请你暂时忘记"矩阵是一张数表"。矩阵 $A$ 本质上是一个函数:
$$ A: \mathbb{R}^{n} \longrightarrow \mathbb{R}^{m}, \qquad \vec{v} \mapsto A\vec{v}. $$你给它一个向量,它返回另一个向量。本章接下来要回答的,就是"这种函数能做哪些事"。
复印机类比。 把复印机的缩放旋钮拨到 150%,原稿上每一个点都被映射到距离中心 1.5 倍远的地方。这就是一种特定的变换——均匀缩放。矩阵代表的是一个更丰富的"几何机器园":旋转、剪切、反射、投影,以及它们的任意组合。
什么样的函数才算"线性"?
矩阵不是任意函数,它正好对应那些保持向量加法和数乘的函数。形式化地说,变换 $T$ 是线性的,当且仅当:
$$ T(\vec{u} + \vec{v}) = T(\vec{u}) + T(\vec{v}) \qquad \text{(加法保持)} $$$$ T(c\,\vec{v}) = c\,T(\vec{v}) \qquad \text{(数乘保持)} $$这两条代数条件有一个非常醒目的几何指纹——只要看整数网格被允许怎么变形,就一目了然。

线性变换可以对上面这张图做任何事情,前提是:
- 原点不动。 $T(\vec{0}) = \vec{0}$(把 $c=0$ 代入数乘条件即可证)。
- 直线还是直线。 不能弯曲。
- 平行线仍然平行,间距仍然均匀。 变形之后还是网格——可能歪了、拉了、甚至被压扁,但每一个格子仍是同形状的平行四边形。
橡皮膜类比。 想象这张图画在一块钉在原点的橡皮膜上。你可以拉它、转它、剪切它、甚至把它压平,但你不能撕、不能折。能做的就是线性变换;做不到的(撕、折)就不是。
不属于线性变换的反例
知道什么不是线性变换同样重要:
- 平移。 $T(\vec{v}) = \vec{v} + \vec{b}$ 把原点搬走了,违反 $T(\vec{0}) = \vec{0}$。它是仿射变换,不是线性变换。(稍后我们会用齐次坐标"救它一命"。)
- 弯曲。 任何把直线变成曲线的变换。
- 平方或分量乘积。 例如 $T(x, y) = (x^{2}, y)$ 或 $T(x, y) = (xy, y)$,违反加法保持性。
2. 关键洞察:列向量就是基向量"的目的地"
下面这句话是整章最重要的一句,请读两遍:
一个矩阵完全由它把基向量送到哪里来决定;矩阵的列恰好就是这些落点。
理由如下。在 $\mathbb{R}^{2}$ 中,标准基是 $\hat{\imath} = (1, 0)$ 与 $\hat{\jmath} = (0, 1)$。任何向量都能分解成:
$$ \vec{v} = \begin{pmatrix} x \\ y \end{pmatrix} = x\,\hat{\imath} + y\,\hat{\jmath}. $$如果 $T$ 是线性变换,加法和数乘性质强制要求:
$$ T(\vec{v}) = T(x\,\hat{\imath} + y\,\hat{\jmath}) = x\,T(\hat{\imath}) + y\,T(\hat{\jmath}). $$也就是说,只要知道两个向量 —— $\hat{\imath}$ 落在哪、$\hat{\jmath}$ 落在哪——你就知道整个平面里每一个向量的去处。把这两个落点按列堆起来,就是矩阵:
$$ A = \Big[\;T(\hat{\imath})\;\Big|\;T(\hat{\jmath})\;\Big] = \begin{pmatrix} a & b \\ c & d \end{pmatrix}, $$而恒等式 $A\vec{v} = x\,T(\hat{\imath}) + y\,T(\hat{\jmath})$ 正是矩阵-向量乘法的定义:
$$ \begin{pmatrix} a & b \\ c & d \end{pmatrix}\begin{pmatrix} x \\ y \end{pmatrix} = x\begin{pmatrix} a \\ c \end{pmatrix} + y\begin{pmatrix} b \\ d \end{pmatrix} = \begin{pmatrix} ax + by \\ cx + dy \end{pmatrix}. $$这条公式的右边请你当成配方来读:矩阵乘向量就是"把矩阵的各列按 $\vec{v}$ 的分量加权求和"。一旦把这一点内化,你就不再"算"矩阵乘法,而是开始读矩阵。
例题
设 $T$ 把 $\hat{\imath} \mapsto (2, 1)$,$\hat{\jmath} \mapsto (-1, 3)$。则
$$ A = \begin{pmatrix} 2 & -1 \\ 1 & 3 \end{pmatrix}, \qquad A\begin{pmatrix} 3 \\ 2 \end{pmatrix} = 3\begin{pmatrix} 2 \\ 1 \end{pmatrix} + 2\begin{pmatrix} -1 \\ 3 \end{pmatrix} = \begin{pmatrix} 4 \\ 9 \end{pmatrix}. $$不需要背公式——只是"3 份第一列加 2 份第二列"而已。
3. 二维变换图谱
为了建立直觉,下面五种变换我们都用同一种格式来看:左边保留原始的单位网格,右边画出变换后的网格;$\hat{\imath}$ 用蓝色、$\hat{\jmath}$ 用紫色箭头标出,绿色的单位正方形用来观察面积如何变化。
3.1 旋转
让 $\hat{\imath}$ 沿单位圆走一圈:逆时针转 $\theta$ 角后,它落到 $(\cos\theta, \sin\theta)$。同理 $\hat{\jmath}$ 从 $90^{\circ}$ 走到 $90^{\circ} + \theta$,落到 $(-\sin\theta, \cos\theta)$。把它们按列拼起来:
$$ R_{\theta} = \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{pmatrix}. $$
几个值得记住的特例:
| 角度 | 矩阵 | 效果 |
|---|---|---|
| $90^{\circ}$ | $\begin{pmatrix}0&-1\\1&0\end{pmatrix}$ | 逆时针四分之一圈 |
| $180^{\circ}$ | $\begin{pmatrix}-1&0\\0&-1\end{pmatrix}$ | 半圈(等于取负) |
| $-90^{\circ}$ | $\begin{pmatrix}0&1\\-1&0\end{pmatrix}$ | 顺时针四分之一圈 |
游戏开发的视角。 2D 游戏里每一次按"左转",玩家朝向向量都被乘上 $R_{\Delta\theta}$。旋转保持长度和角度,所以角色转身时不会被拉变形。
3.2 缩放
要在 $x$ 方向放大 $s_{x}$ 倍、在 $y$ 方向放大 $s_{y}$ 倍,只需要让 $\hat{\imath} \mapsto (s_{x}, 0)$、$\hat{\jmath} \mapsto (0, s_{y})$:
$$ S = \begin{pmatrix} s_{x} & 0 \\ 0 & s_{y} \end{pmatrix}. $$
单位正方形变成了 $s_{x} \times s_{y}$ 的矩形,面积放大了 $s_{x}s_{y}$ 倍。这个乘积就是行列式——下一章的主角。
Photoshop 里"调整图像大小"做的事情就是这个:每个像素坐标都被同一个对角矩阵 $S$ 乘了一下。
3.3 剪切
水平剪切让 $\hat{\imath}$ 不动,$\hat{\jmath} \mapsto (k, 1)$——它把单位正方形的"屋顶"横向推:
$$ H = \begin{pmatrix} 1 & k \\ 0 & 1 \end{pmatrix}. $$
变换后 $x$ 坐标变成 $x + ky$:一个点站得越高,被推得越远。斜体字就是最经典的例子——字母底部钉在原地,顶部往右倾倒。风吹高草则是垂直方向的同类变换。
请注意 $\det H = 1$:剪切不会改变面积,尽管形状被扭得很厉害。
3.4 反射
反射就是把某个方向取反,列依然在回答"基向量去哪了":
| 反射轴 | 矩阵 | 效果 |
|---|---|---|
| 关于 $x$ 轴 | $\begin{pmatrix}1&0\\0&-1\end{pmatrix}$ | 上下翻转 |
| 关于 $y$ 轴 | $\begin{pmatrix}-1&0\\0&1\end{pmatrix}$ | 左右翻转 |
| 关于直线 $y = x$ | $\begin{pmatrix}0&1\\1&0\end{pmatrix}$ | $x$、$y$ 互换 |
| 关于原点 | $\begin{pmatrix}-1&0\\0&-1\end{pmatrix}$ | 等价于 $180^{\circ}$ 旋转 |
反射的行列式为 $-1$:面积没变,但方向反了(右手系变成左手系)。这一负号正是反射区别于旋转的本质特征。
3.5 投影
把整个平面投到 $x$ 轴上,意味着 $\hat{\imath} \mapsto (1, 0)$ 不变,而 $\hat{\jmath} \mapsto (0, 0)$ 被压扁:
$$ P_{x} = \begin{pmatrix} 1 & 0 \\ 0 & 0 \end{pmatrix}. $$整张二维平面被压成一条一维直线。这正是头顶正午阳光下的"投影成影子"。更一般地,在原点穿过、方向为单位向量 $\vec{u}$ 的直线上投影,对应矩阵 $P = \vec{u}\vec{u}^{\!\top}$。
投影是我们见到的第一种会丢失信息的变换:$(1, 2)$ 和 $(1, 99)$ 都投到 $(1, 0)$。这正是它不可逆的根源——下一节我们会用奇异矩阵把这种"压扁"现象彻底讲清楚。
小结表
| 变换 | 矩阵 | 行列式 | 是否可逆 |
|---|---|---|---|
| 旋转 $\theta$ | $\begin{pmatrix}\cos\theta&-\sin\theta\\\sin\theta&\cos\theta\end{pmatrix}$ | $+1$ | 是 |
| 缩放 $(s_{x}, s_{y})$ | $\operatorname{diag}(s_{x}, s_{y})$ | $s_{x}s_{y}$ | 当两者都非零时 |
| 水平剪切 | $\begin{pmatrix}1&k\\0&1\end{pmatrix}$ | $+1$ | 是 |
| 任意反射 | 多种形式 | $-1$ | 是(自身就是它的逆) |
| 投影到一条直线 | 秩 1 | $0$ | 否 |
4. 矩阵乘法 = 变换的复合
现在我们终于可以解释那条乘法规则。
情景。 先做 $A$,再做 $B$:
$$ \vec{v} \;\xrightarrow{A}\; A\vec{v} \;\xrightarrow{B}\; B(A\vec{v}). $$我们想要用一个矩阵把这两步合并。无论它长什么样,对任意 $\vec{v}$ 都必须等于 $B(A\vec{v})$。矩阵乘法就是按照这个目标定义出来的,使得这个矩阵恰好是 $BA$:
$$ B(A\vec{v}) \;\equiv\; (BA)\vec{v}. $$注意:这个等式不是要去证明的定理,而是矩阵乘法的设计规范。那条看起来很奇怪的"行乘列"算法,正是当你具体回答"$\hat{\imath}$ 先经过 $A$、再经过 $B$ 之后跑到了哪"时自然落出来的结果。
从右往左读的口诀。 在 $CBA\vec{v}$ 这样的表达式里,最右边的矩阵最先作用。读法是"先 $A$、再 $B$、最后 $C$"。这跟中文(和英文)从左到右的语序正好相反,是图形学代码里 bug 高发的来源——所以每次写下这种式子都值得在心里默念一遍。
顺序为什么重要:用图说话
取 $A = R_{45^{\circ}}$(逆时针转 45 度)和 $B = \operatorname{diag}(2, 1)$($x$ 方向拉 2 倍)。先 $A$ 后 $B$:

第三幅图你可以从三个角度去读,三种解读完全一致:
- 几何上。 先把单位正方形转 45 度,再把转过的图形横向拉伸。
- 代数上。 $BA = \begin{pmatrix}2&0\\0&1\end{pmatrix}\begin{pmatrix}\frac{\sqrt{2}}{2}&-\frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2}&\frac{\sqrt{2}}{2}\end{pmatrix} = \begin{pmatrix}\sqrt{2}&-\sqrt{2}\\\frac{\sqrt{2}}{2}&\frac{\sqrt{2}}{2}\end{pmatrix}$。
- 从列读。 $BA$ 的第一列等于 $B$ 作用在 $A$ 的第一列上,也就是 $B$ 作用在 $A\hat{\imath}$ 上——也就是 $\hat{\imath}$ 经过两次变换后的最终落点。第二列同理。
把顺序反过来——先 $B$ 后 $A$:
$$ A B = \begin{pmatrix}\frac{\sqrt{2}}{2}&-\frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2}&\frac{\sqrt{2}}{2}\end{pmatrix}\begin{pmatrix}2&0\\0&1\end{pmatrix} = \begin{pmatrix}\sqrt{2}&-\frac{\sqrt{2}}{2}\\\sqrt{2}&\frac{\sqrt{2}}{2}\end{pmatrix} \neq BA. $$几何上:先把正方形拉成宽长方形再旋转,得到的平行四边形和"先转再拉"完全不一样。矩阵乘法不交换,是因为变换的复合本身就不交换。 故事到此结束。
结合律带来的实际收益
矩阵乘法满足结合律:$(AB)C = A(BC)$。这不只是代数上的小性质——它是 3D 图形跑得快的根本原因。
一个典型场景里,每个顶点都要被缩放、旋转、平移:
$$ M = T \cdot R \cdot S. $$如果你有一百万个顶点,绝对不要先把 $S$ 作用一遍、再把 $R$ 作用一遍、再把 $T$ 作用一遍(那是 300 万次矩阵-向量乘法)。正确做法是先把 $M$ 算出来,然后对每个顶点只做一次 $M\vec{v}$——三倍加速,外加更好的数值条件数。GPU 的整套渲染管线就是围绕这一点设计的。
5. 单位矩阵与逆矩阵:什么也不做,与撤销
单位矩阵
“什么都不做”——把每个向量映射回它自己——对应的矩阵就是单位矩阵:
$$ I = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}. $$几何上,前后两幅网格图完全一样:

它满足 $IA = AI = A$ 对任何 $A$ 都成立——是矩阵世界里"乘以 1"的角色。
逆矩阵
如果 $A$ 代表一个变换,逆矩阵 $A^{-1}$ 就代表撤销它的那个变换:
$$ A^{-1} A \;=\; A A^{-1} \;=\; I. $$一旦你从几何角度想,下面几个例子都一目了然:
- $R_{\theta}^{-1} = R_{-\theta}$(往反方向再转回去)。
- $\operatorname{diag}(s_{x}, s_{y})^{-1} = \operatorname{diag}(1/s_{x}, 1/s_{y})$,前提是两个因子都非零。
- 反射的逆是它自己——反射两次就回到原位。
什么时候才存在逆?
不是所有变换都能撤销。投影把 $y$ 方向的信息丢掉了,所以任何会丢失维度的变换都没有逆。$(1, 2)$ 与 $(1, 5)$ 都被投到 $(1, 0)$,仅凭 $(1, 0)$ 你无从恢复原来的 $y$。
干净的判据——下一章会正式建立——是:
$A$ 可逆 $\iff$ $A$ 不会把任何方向压扁 $\iff$ $\det(A) \neq 0$。
$2 \times 2$ 逆矩阵公式
对于 $A = \begin{pmatrix} a & b \\ c & d \end{pmatrix}$,若 $\det(A) = ad - bc \neq 0$,则
$$ A^{-1} = \frac{1}{ad - bc}\begin{pmatrix} d & -b \\ -c & a \end{pmatrix}. $$(把它和 $A$ 乘开,会得到 $I$,建议自己验证一遍。)
6. 奇异矩阵:当平面被压扁
这一节是几何视角真正展现威力的地方。考虑
$$ S = \begin{pmatrix} 1 & 2 \\ 2 & 4 \end{pmatrix}. $$第二行是第一行的两倍,第二列也是第一列的两倍。代数上 $\det(S) = 1\cdot 4 - 2\cdot 2 = 0$。几何上:

平面上的每一个点都被送到了同一条直线 $y = 2x$ 上——也就是列向量 $(1, 2)$ 张成的那条线。单位正方形被压成一段长度有限、面积为零的线段。右图里的橙色"变换后网格"全部叠在那条线上,因为所有输入都被映射到那条线上去了。
这就是奇异(不可逆)矩阵。现在我们要给两个有趣的子空间起名字。
核:被压成零的方向
矩阵 $A$ 的核(或叫零空间)是被它送到零向量的所有向量:
$$ \ker(A) = \{\,\vec{v} : A\vec{v} = \vec{0}\,\}. $$对上面的 $S$,所有形如 $\vec{v} = t\,(2, -1)$ 的向量都满足 $S\vec{v} = \vec{0}$——这正是图中那条灰色虚线箭头标的"kernel direction"(核方向)。这个核是一条 1 维直线。
直觉:核就是矩阵把哪些方向消灭掉。一个矩阵可逆当且仅当它的核里只有零向量。
像:所有可能的输出
像(或值域)是所有可能的输出向量的集合:
$$ \operatorname{Im}(A) = \{\,A\vec{v} : \vec{v} \in \mathbb{R}^{n}\,\}. $$对 $S$ 来说,像就是直线 $y = 2x$。它也叫列空间,因为它就是矩阵各列张成的子空间。$S$ 的两列分别是 $(1, 2)$ 和 $(2, 4)$,都躺在同一条线上,所以它们只能张成一条直线,而不是整个平面。
秩-零化度定理
核与像永远满足下面这条记账等式:
$$ \dim\ker(A) + \dim\operatorname{Im}(A) = n, $$其中 $n$ 是输入空间的维数。翻译过来:矩阵每压扁一维(核多一维),输出就少一维(像少一维)。对我们的 $S$:$1 + 1 = 2$。第 5 章讨论线性方程组时会再次见到这条等式。
7. 三维及更高维
一切都能干净地推广。在 $\mathbb{R}^{3}$ 中,线性变换是一个 $3 \times 3$ 矩阵,三列分别是 $\hat{\imath}$、$\hat{\jmath}$、$\hat{k}$ 的落点。
绕 $z$ 轴旋转($z$ 轴不动,$xy$ 平面整体在转):
$$ R_{z}(\theta) = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix}. $$正交投影到 $xy$ 平面(丢掉 $z$ 分量):
$$ P_{xy} = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{pmatrix}. $$这就是上一节奇异矩阵在更高维的版本:它把三维空间压成二维平面,所以 $\det = 0$,不可逆。
8. Python 可视化
本章的所有图都由脚本 scripts/figures/linear-algebra/03-matrices-as-linear-transformations.py 生成。下面这个最小例子展示它背后的核心思路——画出矩阵对单位正方形的作用:
| |
一个微型 2D 游戏变换类
游戏引擎用齐次坐标把缩放、旋转、平移合并成一个矩阵:二维点 $(x, y)$ 被存成 $(x, y, 1)$,于是单个 $3 \times 3$ 矩阵就能同时处理平移:
| |
这就是 Unity、Unreal、Godot 以及任何 3D 引擎都在用的"TRS"模式(Translate × Rotate × Scale)。
常见问题
平移是线性变换吗?
不是——它把原点搬走了,违反 $T(\vec{0}) = \vec{0}$。为了在矩阵里也能表达平移,计算机图形学引入了齐次坐标:把二维点 $(x, y)$ 存成三维向量 $(x, y, 1)$,然后用一个 $3 \times 3$ 矩阵把 $t_{x}$、$t_{y}$ 加到前两个坐标上。平移在 $\mathbb{R}^{2}$ 里不线性,但在 $\mathbb{R}^{3}$ 里、当我们只关心平面 $z = 1$ 时,它就是线性的了。
矩阵乘法为什么定义得这么古怪?
因为它的规则是为了让"矩阵乘积 = 变换复合"成立而反推出来的。从 $(BA)\vec{v} = B(A\vec{v})$ 这条要求出发,把每一个分量算清楚,“行乘列"那条算法就自动出来了。它不是任意的,是被几何逼出来的。
旋转矩阵为什么这么特殊?
它保持长度和角度。代数上,$R^{\!\top} R = I$(正交),且 $\det R = +1$(保持方向,不翻转)。这两条性质合起来定义了特殊正交群 $\mathrm{SO}(2)$,它是你看到过的所有"丝滑旋转动画"背后的数学对象。
怎么一眼看出一个矩阵是旋转、缩放、剪切还是投影?
看行列式和列向量:
- $\det = +1$ 且各列正交单位长 $\Rightarrow$ 旋转;
- $\det = -1$ 且各列正交单位长 $\Rightarrow$ 反射;
- 各列与坐标轴平行 $\Rightarrow$ 沿轴向缩放;
- $\det = 0$ $\Rightarrow$ 奇异,压扁了某个方向,没有逆;
- 其他情况大概率是剪切、沿非轴向的一般缩放,或者它们的组合。
本章总结
需要刻进脑海的一句话:
矩阵是线性变换;它的列告诉你基向量去了哪里。
剩下的一切都是顺着这条主线推导出来的:
- 矩阵乘向量 = 把矩阵的列按 $\vec{v}$ 的分量加权求和;
- 矩阵乘矩阵 = 变换复合(从右往左读);
- 非交换性来源于"先转再拉"和"先拉再转"几何上本来就不一样;
- 单位矩阵什么也不做,逆矩阵把搭档做的事全部撤销;
- 当且仅当矩阵把某个方向压扁时它奇异($\det = 0$):被压扁的方向叫核,幸存下来的方向叫像(也就是列空间)。
为了便于直观,我们一直在二维里讨论。下一章我们会把"变换让空间膨胀或收缩了多少"这件事量化——也就是行列式——并最终看清为什么 $\det(AB) = \det(A)\det(B)$。
下一章预告
第 4 章:行列式的秘密。 行列式是一个数字,它衡量一个变换对体积的缩放因子。我们会看到它为什么对复合相乘、为什么符号反转代表方向反转,以及为什么 $\det = 0$ 恰恰对应我们刚刚见到的奇异情形。
系列导航
- 上一篇: 第 2 章 – 线性组合与向量空间
- 下一篇: 第 4 章 – 行列式的秘密
- 系列: 线性代数的本质(第 3 篇,共 18 篇)