Skip to content

从线性方程组到空间结构 ​

解二元一次方程组这件事,你从初中做到高中:两条直线,求交点.可同一个消元法,结局有三种.有时算出一个解;有时算到 0 = 3 这种鬼话;有时算到最后只剩一行 0 = 0.

教科书把三种结局分开讲,分别叫唯一解、无解、无穷多解.这一章要让你看到它们其实是同一件事的三张面孔,顺便把那件"事"的名字定下来.这个名字会一路跟到 Transformer 的注意力矩阵.

高中那点工具,够用到哪里 ​

这一章的每件工具你都在高中用过,只是当时叫别的名字:

  • 初中(七年级下)二元一次方程组:加减消元、代入消元——"高斯消元"的原始版本.
  • 选必一 2.3.1 两条直线的交点坐标:解方程组就是求两条直线的交点;"唯一解 / 无解 / 无穷多解"就是"相交 / 平行 / 重合". 三种结局你在解析几何里全见过.
  • 必修二 6.3 与选必一 1.3:平面与空间向量的坐标表示——有序数组按坐标逐个运算,是这一章"列向量"的算料.

一个高中题,两种读法. 高中做"判断两条直线位置关系"的标准动作是联立:

{x+y=1x−y=1\begin{cases} x + y = 1 \\ x - y = 1 \end{cases}

消元得 x=1x = 1、y=0y = 0,交点是 (1,0)(1,0)——高中到这里结束. 这一章要问的是消元背后的事:为什么有时一个解、有时一整条线、有时一个都没有?答案不在消元里,在系数矩阵的列向量能张成多大空间里. 下面两副眼镜就是干这个的.

第一副眼镜:每一行是一条直线 ​

看一个具体的方程组:

{x+2y=32x+4y=6\begin{cases} x + 2y = 3 \\ 2x + 4y = 6 \end{cases}

把每一行看成平面上的一条直线,解方程就是找同时落在两条线上的点.两个未知数、两个条件,条件独立时交于一点;两线平行时没有交点;两线重合时整条线都是解.

平行的代数信号藏在系数里:第二行的系数恰好是第一行的两倍.对一般的方程组

{a11x+a12y=b1a21x+a22y=b2\begin{cases} a_{11}x + a_{12}y = b_1 \\ a_{21}x + a_{22}y = b_2 \end{cases}

两个方程何时会退化(两行成比例,或其中一行全是零)?把两组系数放在一起比较,判据是

a11a22−a12a21=0.a_{11}a_{22} - a_{12}a_{21} = 0.

这个由四个系数按固定顺序算出来的数太重要了,值得一个定义.

定义(二阶行列式) 设 a11,a12,a21,a22∈Ra_{11}, a_{12}, a_{21}, a_{22} \in \mathbb{R},称

∣a11a12a21a22∣=a11a22−a12a21\begin{vmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{vmatrix} = a_{11}a_{22} - a_{12}a_{21}

为以这些数为元素的二阶行列式.

行列式等于零,方程组就失去了"唯一"的资格——要么无解,要么无穷多解.至于"退化"这个词的精确含义,下一章用线性相关的语言给出.

第二副眼镜:每一列是一个向量 ​

同一个方程组,把系数按列拆开:

x(a11a21)+y(a12a22)=(b1b2)x\begin{pmatrix} a_{11} \\ a_{21} \end{pmatrix} + y\begin{pmatrix} a_{12} \\ a_{22} \end{pmatrix} = \begin{pmatrix} b_1 \\ b_2 \end{pmatrix}

这里的竖排括号对你来说是新的写法.它和高中写的有序数组 (a11,a21)(a_{11}, a_{21}) 是同一个对象:同样是两个数、有顺序、按坐标逐个运算.换成竖排只有一个理由——后面矩阵要作用在它上面,而矩阵乘法是"一行碰一列",列是唯一顺手的形状.

读法是:从两个列向量出发,各乘一个系数再相加,问能不能凑出右边的 b\mathbf{b}.这种"乘系数再相加"的操作叫线性组合.

两副眼镜看的是同一个对象,但第二副把"求解"改写成了"覆盖".两个列向量能张开多大一片地方?张开整个平面时,任何 b\mathbf{b} 都有唯一配方;退化成一条直线时,只有恰好落在这条线上的 b\mathbf{b} 才有解.

行列式在这副眼镜里有了几何身份:它是两个列向量张成的平行四边形的有向面积.面积为零,两列共线,张不成平面.

例题(教材风格). 判断直线 l1:2x+y=4l_1: 2x + y = 4 与 l2:x−y=1l_2: x - y = 1 的位置关系,有交点就求出来.

解(高中). 联立消元:两式相加得 3x=53x = 5,x=53x = \frac53;代回得 y=23y = \frac23. 交点是 (53,23)(\frac53, \frac23).

线代读法. 系数行列式 det⁡[211−1]=−3≠0\det\begin{bmatrix} 2 & 1 \\ 1 & -1 \end{bmatrix} = -3 \ne 0,所以有唯一解——"相交"就是"det⁡≠0\det \ne 0". 列视角再读一遍:问题等价于找 x,yx, y 使

x[21]+y[1−1]=[41],x\begin{bmatrix} 2 \\ 1 \end{bmatrix} + y\begin{bmatrix} 1 \\ -1 \end{bmatrix} = \begin{bmatrix} 4 \\ 1 \end{bmatrix},

det⁡≠0\det \ne 0 说明两个列向量不共线、能张成整个平面,任何右端项都有唯一配方.

矩阵是变换,不是记账本 ​

先把名字定下来.

定义(矩阵) 把 mnmn 个数排成 mm 行、nn 列的矩形阵列,就得到一个 m×nm \times n 矩阵.aija_{ij} 记第 ii 行第 jj 列的元素;一行叫行向量,一列叫列向量.

说"矩阵"时,指的是这组按行列编号的数,方括号只是排版方式.

A=[a11a12a21a22]A = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix}

高中你跟一维的有序数组打了两年交道,矩阵是把它们摞起来之后的二维对象.前面那个方程组的系数按原位置抄下来,就是一个 2×22 \times 2 矩阵;右端项竖起来是列向量 b\mathbf{b},未知数 (x,y)(x, y) 竖起来是列向量 x\mathbf{x}.于是整个方程组可以写成一行:

Ax=bA\mathbf{x} = \mathbf{b}

到这里可以换一个更狠的问法:与其问"哪些 b\mathbf{b} 有解",不如问"AA 对平面做了什么".

AA 是一套操作:给任意向量 v\mathbf{v},输出 AvA\mathbf{v}.于是解方程 Ax=bA\mathbf{x} = \mathbf{b} 变成追踪题——哪个 x\mathbf{x} 被这套操作送到了 b\mathbf{b}?

  • 如果 AA 把平面均匀拉扯(面积不为零),每个 b\mathbf{b} 都有唯一的前身;
  • 如果 AA 把整个平面压成一条线(面积为零),线上的 b\mathbf{b} 有无穷多个前身,线外的 b\mathbf{b} 一个都没有.

无解和无穷多解,在这里是同一件事的两面.行列式也不再是算出来的一个数,而是面积的膨胀率.

拿一个具体的 AA 追踪一遍. 设 A=[1224]A = \begin{bmatrix} 1 & 2 \\ 2 & 4 \end{bmatrix},算三个值:

A[10]=[12],A[01]=[24],A[xy]=(x+2y)[12].A\begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 1 \\ 2 \end{bmatrix}, \qquad A\begin{bmatrix} 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 2 \\ 4 \end{bmatrix}, \qquad A\begin{bmatrix} x \\ y \end{bmatrix} = (x + 2y)\begin{bmatrix} 1 \\ 2 \end{bmatrix}.

最后一式说明:整个平面都被拍到了直线 y=2xy = 2x 上. 所以 (1,2)(1,2) 的前身不止一个——(1,0)(1,0) 和 (0,12)(0,\frac12) 都被它接住(无穷多前身);而直线外的 (1,1)(1,1) 永远等不到前身(无解). 高中说的"平行、重合",到这里统一成了"AA 把平面压成了几维".

实验:拖动基向量 ​

下面的实验把刚才的话变成可以上手的操作.三条引导线:

  1. 点「单位」,网格保持原样;点「旋转 45°」,网格整体转起来,det 仍是 1——旋转不改变面积.
  2. 把 ĵ 的端点拖到 î 所在的直线上,det 会趋向 0,平面被压扁.此时「投影」按钮展示的就是这种病态:两个列向量一模一样.
  3. 拖出负的 det(比如把 ĵ 拖到 î 的另一侧),观察单位正方形翻面——有向面积是负的.
实验 01

二维线性变换

det1.00
面积 ×1.00
状态可逆
îĵdet = 1.00

交叉 ​

  • 矩阵分析:SVD 把任意矩阵拆成"旋转、拉伸、旋转"三步,是这一章"变换"视角的延伸.
  • 机器学习:梯度下降里,函数在某点附近的线性近似就是一个矩阵(Jacobian),它决定这一步往哪走、走多快.
  • 体系结构:矩阵乘法是变换的复合,而 GEMM 优化研究的正是让这种复合在硬件上跑得更快.

习题 ​

  1. 先算行列式,再判断下列方程组的解:唯一解、无解、还是无穷多解? (a) x+y=2, 3x+3y=6x + y = 2,\ 3x + 3y = 6; (b) x+y=2, 3x+3y=5x + y = 2,\ 3x + 3y = 5; (c) x+2y=1, 3x+4y=2x + 2y = 1,\ 3x + 4y = 2.
  2. 矩阵 A=[2003]A = \begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatrix} 把单位正方形映成什么图形?面积是多少?det⁡A\det A 是多少?
  3. 找一个 2×22 \times 2 矩阵,它把两个不同的向量映到同一个向量;再用"面积"的语言解释,为什么这样的矩阵一定是奇异的.
  4. 矩阵 A=[0110]A = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix} 的行列式是多少?它在几何上对平面做了什么?
参考答案

1. (a) det⁡=1⋅3−1⋅3=0\det = 1 \cdot 3 - 1 \cdot 3 = 0,两行成比例且右端也成比例(第二行恰好是第一行的 3 倍),两条直线重合,无穷多解. (b) det⁡=0\det = 0,但右端不成比例,两条直线平行不重合,无解. (c) det⁡=1⋅4−2⋅3=−2≠0\det = 1 \cdot 4 - 2 \cdot 3 = -2 \ne 0,唯一解.

2. 单位正方形被拉成 2×32 \times 3 的矩形(两条边分别沿坐标轴伸缩),面积 66;det⁡A=2⋅3−0⋅0=6\det A = 2 \cdot 3 - 0 \cdot 0 = 6,正好等于面积.这就是"行列式是面积缩放率"的一例.

3. 例如 A=[1000]A = \begin{bmatrix} 1 & 0 \\ 0 & 0 \end{bmatrix}:(1,1)(1, 1) 和 (1,2)(1, 2) 都被映到 (1,0)(1, 0).它的 det⁡=0\det = 0,把整个平面压到 xx 轴上,面积为 00;面积都压没了,不同的点自然可以重叠.

4. det⁡=0⋅0−1⋅1=−1\det = 0 \cdot 0 - 1 \cdot 1 = -1.它交换两个坐标,几何上是沿直线 y=xy = x 的翻折:面积大小不变(∣det⁡∣=1|\det| = 1),但平面翻了面,方向反转,所以行列式取负.

延伸 ​

下一章《向量空间、基与维数》会把这一章的直觉说精确:什么叫"张成",什么叫"维数".想先看视频的话,3Blue1Brown 的线性代数系列和 Gilbert Strang 的 18.06 是两套经典材料,前者重几何直觉,后者重计算与证明.