1452 字
7 分钟
线性代数 02|矩阵是一台变换机器

数学总导航 · 本课程目录 · ← 上一章 · 下一章 →

把照片横向拉宽,会发生什么?#

照片里的一个像素相对中心的位置是 (x,y)(x,y)。横向拉宽两倍、竖向不变后,它到达 (2x,y)(2x,y);原来在 (3,1)(3,1) 的小猫耳朵会到 (6,1)(6,1)。

如果接着逆时针旋转 90 度,位置变成 (−y,2x)(-y,2x)。若先旋转再横向拉宽,结果则是 (−2y,x)(-2y,x)。同样两步,顺序不同,照片形状就不同。这正是矩阵乘法不能随意交换顺序的原因。

一张照片有上百万像素,但不必逐个发明规则。对线性变换,只要交代“向右一步”和“向上一步”各变成什么方向,整张图的所有点就确定了。矩阵的两列记录的就是这两个回答。

不用背行乘列,自己推出矩阵乘向量#

设图片变换把“向右一步”送到 (2,1)(2,1),把“向上一步”送到 (−1,1)(-1,1)。像素 (3,2)(3,2) 原来可分成三步向右、两步向上。

如果机器保持线性组合,输出就必须是

3(2,1)+2(−1,1)=(4,5).3(2,1)+2(-1,1)=(4,5).

把两个基本输出排成列,就得到 A=(2−111)A=\begin{pmatrix}2&-1\\1&1\end{pmatrix}。对任意输入 (x,y)(x,y),输出为 (2x−y,x+y)(2x-y,x+y)。熟悉的行乘列规则正是把这一结果按坐标整理,并不是独立发明的运算法。

为什么两列不够描述任意图片变形#

假设一个变形把 (x,y)(x,y) 送到 (x,y+x2)(x,y+x^2)。它对两个基向量的输出为 (1,1)(1,1) 和 (0,1)(0,1)。如果你错误地用这两列组成矩阵,会预测 (2,0)(2,0) 到 (2,2)(2,2);真实输出却是 (2,4)(2,4)。

原因是这台机器不保持数乘:把输入加倍,输出并不整体加倍。只有先核验线性,两列才足以说明全部行为。照片的透视变换、镜头畸变等也不能随意套用普通二维线性模型。

把矩阵乘法逐列推出来#

令 BB 先把 e1,e2e_1,e_2 分别送到 b1,b2b_1,b_2,再交给 AA。整台串联机器的两列自然就是 Ab1,Ab2Ab_1,Ab_2。这便是 ABAB。

例如 BB 横向放大两倍,AA 旋转 90 度,有

B=(2001),A=(0−110),AB=(0−120).B=\begin{pmatrix}2&0\\0&1\end{pmatrix},\quad A=\begin{pmatrix}0&-1\\1&0\end{pmatrix},\quad AB=\begin{pmatrix}0&-1\\2&0\end{pmatrix}.

把输入 (1,0)(1,0) 实际走一遍:先到 (2,0)(2,0),再到 (0,2)(0,2),正是乘积第一列。做一次这种追踪,比凭符号猜先后顺序更可靠。

非方阵:一台机器也可以改变数据项数#

一张商品表有三种数量,收银员只输出总重量和总价,就需要三维输入、二维输出,矩阵形状为 2×32\times3。列数对应输入项目,行数对应输出读数。

因此矩阵不必方形;方阵只是输入输出使用同样数量坐标时的特殊情形。后面的核与像,就是继续问这台机器保留了哪些信息、丢掉了哪些信息。

带你做:配方输入怎样变成成本与重量#

一种零件每个重 2 千克、成本 5 元,另一种重 3 千克、成本 4 元。输入 x=(a,b)x=(a,b) 是数量,输出为总重量与总成本:

T(a,b)=(2a+3b,5a+4b),A=(2354).T(a,b)=(2a+3b,5a+4b),\qquad A=\begin{pmatrix}2&3\\5&4\end{pmatrix}.

第一列记录只买第一种一个时的结果,第二列记录只买第二种一个时的结果。买 (2,1)(2,1) 时,输出为 (7,14)(7,14),单位分别是千克、元。

如果最后还要加一次性运费 6 元,输出变为 (2a+3b,5a+4b+6)(2a+3b,5a+4b+6),它不再是线性映射,因为零订单也被模型收取 6 元,零向量没有映到零。

这给了一个最容易操作的检查:先问“什么都不输入时,是否真的输出零”。若不是,就需要仿射模型或额外状态,而不是硬把所有常数塞进原来的线性矩阵。

回头整理:定义、工具与练习#

只追踪两个箭头就够了#

若知道线性映射把 e1e_1 送到 (2,1)(2,1)、把 e2e_2 送到 (1,2)(1,2),则任意 (x,y)=xe1+ye2(x,y)=xe_1+ye_2 都会被送到

x(2,1)+y(1,2)=(2x+y,x+2y).x(2,1)+y(1,2)=(2x+y,x+2y).

把两个输出作为列排在一起,就得到

A=(2112).A=\begin{pmatrix}2&1\\1&2\end{pmatrix}.

因此“矩阵乘向量”就是“按输入坐标把矩阵的列做线性组合”。不需要先背行乘列,再猜它意味着什么。

单位网格经过线性映射后的样子

精确的线性定义#

TT 线性意味着 T(au+bv)=aT(u)+bT(v)T(au+bv)=aT(u)+bT(v)。因此 T(0)=0T(0)=0。平移 x↦Ax+bx\mapsto Ax+b 在 b≠0b\ne0 时不线性,而是仿射。

旋转、缩放、投影是常见线性映射;逐坐标平方 T(x,y)=(x2,y2)T(x,y)=(x^2,y^2) 不是,因为一般不保持数乘。

矩阵相乘就是机器串联#

ABAB 的第 jj 列是 A(Bej)A(Be_j)。例如先旋转 90 度,再沿水平轴放大两倍,与反过来做结果不同,所以通常 AB≠BAAB\ne BA。

若 B:Rn→RmB:\mathbb R^n\to\mathbb R^m,A:Rm→RkA:\mathbb R^m\to\mathbb R^k,则 AB:Rn→RkAB:\mathbb R^n\to\mathbb R^k。中间维度必须匹配。

非方阵很自然#

A∈Rm×nA\in\mathbb R^{m\times n} 代表 nn 维输入到 mm 维输出。一个 2×32\times3 矩阵能把三维点投到二维图像;一个 3×23\times2 矩阵能把二维坐标嵌入三维空间。输入输出维度不相等时,“逆矩阵”通常不再适用,但左逆、右逆和伪逆仍可能有意义。

例题:求导也是线性映射#

在次数至多 2 的多项式空间中,以 1,t,t21,t,t^2 为基,求导算子的矩阵为

D=(010002000).D=\begin{pmatrix}0&1&0\\0&0&2\\0&0&0\end{pmatrix}.

因为三列分别记录 D1=0D1=0、Dt=1Dt=1、Dt2=2tDt^2=2t。泛函分析会继续研究:在无限维函数空间中,求导是否仍连续?答案取决于选择什么范数。

练习与解答#

  1. 写出投影到 xx 轴的矩阵。
  2. 写出 (x,y)↦(x+y,y)(x,y)\mapsto(x+y,y) 的矩阵。
  3. 为什么 ATAA^TA 一定是方阵?

解答:1. diag⁡(1,0)\operatorname{diag}(1,0)。2. 两列是 (1,0)(1,0) 与 (1,1)(1,1),故为 (1101)\begin{pmatrix}1&1\\0&1\end{pmatrix}。3. 若 AA 为 m×nm\times n,则 ATAA^TA 为 n×nn\times n,作用在输入空间上。

几何伴读#

3Blue1Brown:线性变换。追踪两根基向量与整张网格的变化。


数学总导航 · 本课程目录 · ← 上一章 · 下一章 →

线性代数 02|矩阵是一台变换机器
https://f1yingwhite.github.io/posts/数学/线性代数教程/02-矩阵是一台变换机器/
作者
F1yingWhite
发布于
2026-11-03
许可协议
CC BY-NC-SA 4.0