解 Ax=b 不是算「x 等于几」——是问这些列怎么拼出 b
你已经会行化简了:把增广矩阵化成简化阶梯形,找出主元列对应基本变量、剩下的当自由变量,然后一路回代写出答案。这一整套动作很熟练,可你有没有被一个问题哽住过:解 Ax=b 到底在问什么?
要是脱口而出「在问 x 等于几」,那你已经掉进修课最常见的误区里了。答案不是一个数、甚至往往不只是一个点。它更接近一道拼图题:A 的每一列是一块拼图,x 的分量告诉你每块按多重的份量往上叠,Ax=b 问的,是这些列能不能恰好叠出 b、又要叠多厚。
换个说法:行化简是你熟悉的算路,但它只教会你「怎么按行折腾那些方程」。真正的图景藏在列里。这篇专题要把教材里挨着的三节,1.4 的矩阵方程 Ax=b、1.5 的解集、1.7 的线性无关,用同一副「按列拼向量」的眼镜串成一条线来讲。你会发现它们根本不是一个抽屉、两个抽屉,而是同一个故事的三个节拍。
解方程组到底在问什么:把「按行折腾方程」换成一幅「按列拼向量」的画面
先回到定义。设 A 是 m×n 矩阵,它的列记作 $a_1, a_2, \dots, a_n$,每个都在 $\mathbb{R}^m$ 里。x 是 $\mathbb{R}^n$ 里的列向量。所谓矩阵乘法 $Ax$,定义就是把这些列按 x 的分量做线性组合:
$$ Ax = [a_1 \ \cdots \ a_n] \begin{bmatrix} x_1 \ \vdots \ x_n \end{bmatrix} = x_1 a_1 + x_2 a_2 + \cdots + x_n a_n $$
也就是说,$Ax$ 不是别的东西,它就是把 A 的第 1 列乘上 $x_1$、第 2 列乘上 $x_2$……然后把它们加在一起。两个乘法能不能做这件事,有个一眼就能确认的前提:A 的列数必须等于 x 的分量数,否则没有定义。Lay
你可能已经会按「第 i 个分量 = A 的第 i 行跟 x 做点积」来算 Ax。这没错,教材里把这条叫行点积规则:第 $i$ 个分量为 $a_{i1}x_1 + \cdots + a_{in}x_n$(同编号公开讲义里的 Dot Product Rule,非教材逐字原文)。但请注意,它是算起来快的那条巧路,不是 Ax 的含义。含义永远是列的组合。两种算法手算结果一致,可它们把你领向两幅完全不同的画面。
这正是 Strang 在 MIT 18.06 开篇就点破的三重视角:行图盯着每个方程(每条是一个平面或一条直线),列图盯着每列向量各自可以伸向哪里、叠加起来覆盖什么,矩阵图则把整件事压缩成一个更紧凑的记号。行化简把你锁在行图里,而接下来所有「为什么」都要到列图里去找。Strang
为什么 Ax=b 和「列拼出 b」是同一句话,却不只是同义反复
把上面的列组合定义代进方程,$Ax = b$ 就展开成
$$ x_1 a_1 + x_2 a_2 + \cdots + x_n a_n = b $$
这叫向量方程。而这个向量方程和增广矩阵 $[a_1 \ \cdots \ a_n \ b]$ 对应的线性方程组又是什么关系?答案是一个常被轻轻带过、其实非常关键的事实:三者的解集完全相同。
- 矩阵方程 $Ax = b$
- 向量方程 $x_1 a_1 + \cdots + x_n a_n = b$
- 增广矩阵为 $[a_1 \ \cdots \ a_n \ b]$ 的线性方程组
教科书把它作为 1.4 的定理陈述:对给定 A(m×n)和 b,这三个问题的解集一字不差。它告诉你,解方程组的「三种写法」是同一个问题的三件外衣,你可以随时换装而不改变答案。Lay
Georgia Tech 的开放教材 Interactive Linear Algebra(Margalit & Rabinoff)这里给出的是「四种写法」,比教材多列了增广矩阵与「直接列出每个方程」两种,但意思完全一样:每一种写法只是给这套线性方程组换了一副看它的眼睛。既然外衣可换,那为什么一定要换到「列」这副眼镜上来?因为只有列这幅画面能回答「解存在不存在」和「解为什么是一整条」这类行化简永远答不上来的问题。接下来的两章,它们立刻就要出场。
教材到这一节结束前还给了 Ax 一条漂亮的代数性质:$A(u+v) = Au + Av$、$A(cu) = c(Au)$,也就是 Ax 关于 x 是线性的。这句话从列组合的角度看几乎是白送的:你要整列相加、按份量放大,跟先各自变换再加回来当然一样。别小看它,后面判断「解的结构是不是平移出来的」全靠这条打底。
这一章先把门槛挪开了一半:Ax=b 的难不在算,而在你得先换一副看它的眼睛。把这副「列组合」眼镜戴上,1.4、1.5、1.7 三节就不会再是三个互不相干的抽屉。
为什么 Ax=b 会有「永远无解」的时候:b 落不进各列张成出的那片范围
现在来问那道最扎心的问题。有些方程组,不管你给 b 三个分量各赋什么值,它就是永远无解。方程条数明明摆在那儿,为什么有时解不出来?
答案要换个角度:有解与否,不在方程有多少条,而在 b 有没有被 A 的那些列够得着。 前面我们说到 $Ax=b$ 就是「以 x 为份量把列叠出 b」。把那些列能摆到的范围铺开,得到一个点集,就是这些列的张成(span,也叫线性生成空间)。于是判定有解就变成一句很朴素的话:b 在列的张成里,就有解;不在,就无解。
看这张图,它画的是不同情形的「哪些 b 够得着」(注意是 b 那一侧、$\mathbb{R}^m$ 里的可达区域,不是解 x 本身):

图注:$\mathbb{R}^2$ 里列的张成的三种样子。单独一个向量只张成一条过原点的直线;两个共线向量仍只张成同一条直线,第二个没有扩张出任何新方向;只有两个不共线的向量才张成整张平面。看懂这张图,就懂了「冗余的列不会扩大可达范围」。ILA
把教材 1.4 的四等价命题摆出来,就是这条直觉的严格版:对给定 m×n 的矩阵 A,底下四句话要么全真、要么全假,不可能只对一半。
(a) 对每个 $b \in \mathbb{R}^m$,$Ax=b$ 都有解;
(b) 每个 $b \in \mathbb{R}^m$ 都是 A 的各列的线性组合;
(c) A 的各列张成 $\mathbb{R}^m$;
(d) A 的每一行都有主元位置。
这条定理的价值在于它把几何语言(张成整个空间)、代数语言(每个 b 都有解)和手算语言(每行有主元)焊在了一起。你只要用一个你顺手的判据验证了其中一个,其余三个自动跟着成立。想判断「是不是每个 b 都有解」,最省力的其实是 (d):行化简后,A 那一半有没有出现全零行。出现哪怕一个全零行,就有一行没有主元,四句话便全部塌掉。Lay
用一个反面例子把四句话一次看穿。教材 1.4 给的这个矩阵相当典型:
$$ A = \begin{bmatrix} 1 & 3 & 4 \ -4 & 2 & -6 \ -3 & -2 & -7 \end{bmatrix}, \qquad b = \begin{bmatrix} b_1 \ b_2 \ b_3 \end{bmatrix} $$
问:$Ax=b$ 对所有可能的 $b_1,b_2,b_3$ 都相容吗?对增广矩阵行化简,会走到末行全为零的那种局面,剩下一行约束写成
$$ b_1 - \tfrac{1}{2} b_2 + b_3 = 0 $$
只有当 b 的三个分量满足这条约束时才有解;一旦 $b_1 - \frac12 b_2 + b_3 \ne 0$,这组方程就无解。所以这个 A 并不张成 $\mathbb{R}^3$,它的某行也没有主元。四句等价命题在这里同时为假。这就是「什么时候没有解」的标准答案:不是条数不够,而是 b 恰好落在列的张成够不到的那片区域,而那片「缺了一块」的形状,行化简时就是那个多出来的全零行的约束方程。Lay
这是全文最容易混的一对:列的张成住在 $b$ 那一侧、$\mathbb{R}^m$ 里,是「哪些 b 可行」;解集住在 $x$ 那一侧、$\mathbb{R}^n$ 里,是「给定一个可行 b,x 全体长什么样」。前者永远是个张成,后者在齐次时是张成、在非齐次时是张成的平移。别把两者当成一回事。ILA
3Blue1Brown 的 Essence of Linear Algebra 用动画给你先铺一层直觉:span 就是「所有能被这些向量通过线性组合到达的点」,而加了第三个向量不一定扩大它,若这个新向量落在前两个的张成里,span 纹丝不动。3Blue1Brown
但一个问题马上顶上来:b 明明够得着、有解,那怎么答案还常不只是一个点?这就是下一章的故事。
答案不一定是一个点:Ax=0 的解为什么是一条过原点的线或一片平面
先处理最简单也最特别的右端:齐次方程 $Ax = 0$。它叫什么都很怪,$\mathbb{R}^n$ 里的零向量永远是它的解,这个解有个专用名字叫平凡解。注意「恒有平凡解」绝不等同于「答案是一个点」:真正的问题是有没有非平凡解,也就是除零之外还有没有别的解。
行化简在这里透出的规律只有一条:
$$ Ax = 0 \text{ 有非平凡解} \iff \text{至少有一个自由变量} $$
逻辑链条也顺:只要 A 里有某列没有主元,那个位置的变量就是自由的,可以随便赋任何值,于是就有非零解。Lay
教科书 1.5 的例子很贴心,它把同一个系数矩阵讲了两遍。先讲齐次版本。行化简后 $x_3$ 成了自由变量,把 $x_3$ 设成一个任意实数 $t$,基本变量都化成 $t$ 的倍数,最后通解可以一股脑写成
$$ x = \begin{bmatrix} x_1 \ x_2 \ x_3 \end{bmatrix} = t \begin{bmatrix} 4/3 \ 0 \ 1 \end{bmatrix} = t v, \qquad t \in \mathbb{R} $$
也就是 $x = t v$,方向 $v = [4/3;,0;,1]^T$。意思太明白了:$Ax=0$ 的全部解,就是把 $v$ 按各种份量拉长压短后得到的所有点,这在几何上就是一条过原点、沿 $v$ 方向的直线。非平凡解存在,恰恰是因为 $x_3$ 不受任何方程约束、是个自由变量。Lay
把 $x = t v$ 这样的写法,教材称为参数向量形式:用「向量的显式组合」来描述解集。它的规范四步流程是,先把增广矩阵行化简为简化阶梯形,再把每个基本变量用自由变量表示,然后写出一般解 x,最后把 x 拆成以自由变量为参数、各带一个数值向量的线性组合。Lay
这条「自由变量的个数」就是下面这张图的魂魄:

图注:一个自由变量的齐次解集,就是从原点沿向量 (3,1) 伸出去的那一整条直线 $Ax=0$,即该向量的全部标量倍。多一个自由变量,答案就被多撑开一个方向。ILA
把它提成规律:一个自由变量 → 过原点的一条直线;两个自由变量 → 过原点的一片平面。Strang 那套术语把这件事也盖过一遍:他把主元列对应的变量叫 pivot variables、剩下的叫 free variables,然后给每个自由变量赋 1、其余赋 0,就得到一组 special solutions,并说「零空间恰是 special solutions 的全部组合」。这是对「一个自由变量 = 一个撑开的方向」的另一种叫法,跟教材本质是同一件事。Strang
所以 $Ax=0$ 的解从来不只是「零」。每多一列没有主元、成为自由变量的列,答案就被多撑出一个方向、一片更大的过原点区域。可下一章要问的是:那把 b 换成非零,这些方向是不是就被挪了地方?
多解也只是一条被平移的线:非齐次的答案怎么从齐次的答案长出来
上一章答案是只过了原点的那条线,现在把右端从 0 换成别的 b。$Ax = b$(b 不再是零)叫非齐次。自由变量的故事还会重演吗?答案是会的,只是那条线不再从原点出发。
接着用教材里那个同一系数矩阵的例子。取 $b = [7;,-1;,-4]^T$,行化简解出来的通解长这样:
$$ x = \begin{bmatrix} x_1 \ x_2 \ x_3 \end{bmatrix} = \underbrace{\begin{bmatrix} -1 \ 2 \ 0 \end{bmatrix}}{p} ;+; x_3 \underbrace{\begin{bmatrix} 4/3 \ 0 \ 1 \end{bmatrix}}{v} $$
对比齐次版本 $x = t v$,这里多出一个固定向量 $p = [-1;,2;,0]^T$,而自由方向的向量 v 跟齐次例是同一个。也就是说:把 p 之外的部分抽走,剩下的正是上一章那条齐次解集。我们把 p 叫这个方程的一个特解。Lay
这背后是一条一般定理。设 $Ax=b$ 对某个给定 b 是相容的,p 是它的任意一个解,则 $Ax=b$ 的解集恰为
$$ { w : w = p + v_h,, v_h \text{ 是 } Ax=0 \text{ 的任意解} } $$
一句话:非齐次通解 = 特解 p + 齐次通解。几何译法最直观:非齐次解集就是把齐次那条过原点的线,整体搬到过 p 的地方去。自由方向一个都没少,只是起点换了个位置。这就是教材 Page 25 的 w = p + v_h 结构定理。Lay
也就是 Strang 所说的 complete solution = particular + nullspace:先取一个 particular solution(把自由变量都设成 0、解基本变量),再叠加整个零空间(null space,就是齐次方程 $Ax=0$ 的全体解)。表达方式不同,说的是同一件事实。Strang
这张图把这个「平移」画得再清楚不过:

图注:同一平面里两条平行的直线。标 $Ax=0$ 的那条过原点,标 $Ax=b$ 的那条过特解点 p、与它平行。任取 $Ax=b$ 上一点 w,把它减掉 p,就落回齐次那条直线上去,这个差 $w-p$ 正是某个齐次解。ILA
这里的向量三角形值得多停一停:w 在非齐次直线上,p 也在;那么 w 减 p 这个差向量,把两个点都从「特解」那里拽回原点参照系,自然落在齐次直线上。用 Ax 的线性性验证它:$A(w-p) = Aw - Ap = b - b = 0$,差确实在零空间里。这条推理全靠第一章那条「Ax 的线性性」。
于是第一章那句「答案往往不止一个点」有了完整答案:非齐次不会凭空长出新的多解方向,它只是把齐次那条过原点的复用方向,搬到过特解 p 的另一处去。可读者到这里多半要追问一句:那些自由方向到底哪来的?为什么 v 会空出来没人管它?这是下一章的正题。
自由变量从哪来?——因为有多余的列在「凑热闹」:线性无关与线性相关
把攒了两章的两个现象摆到一张桌上,让它们互相解释。自由变量为什么存在?因为 A 里有几列在「互相凑热闹」:其中一列已经被别的列能达到,再叠上去不产生新方向。反过来,第二章那张 span 图里,为什么加第三个共线向量张成不变?因为那第三个向量是「冗余」的。
这两个说法其实是同一件事的两面。而「冗余」正是本章主角的字面意思。教材 1.7 的定义干净利落:
一套向量 ${v_1,\dots,v_p} \subset \mathbb{R}^n$ 线性无关,当且仅当方程
$$ x_1 v_1 + x_2 v_2 + \cdots + x_p v_p = 0 $$
只有平凡解(所有 $x_i$ 全是 0)。反过来,只要存在一组不全为零的 $c_i$ 使得上式成立,就说这套向量线性相关,那个等式叫一个线性相关关系。Lay
把这个定义接到 $Ax=0$ 上,一座桥立刻搭好:把 $v_1,\dots,v_p$ 拼成矩阵 A 的列,那句「无关 ⇔ 只有平凡解」就变成 A 的列线性无关 ⇔ $Ax=0$ 只有平凡解(也就是没有非平凡解)。这一条把第一章的 Ax 定义、第三章的自由变量、第四章的齐次通解,全部收到同一个屋檐下:只要 Ax=0 冒出一个非平凡解,就说明这些列线性相关,也说明至少有一个自由变量。 多解不是灾难,它的存在正好反过来暴露了列之间的冗余。Lay
术语上补一句纪律。线性无关/相关把话说满应该是「一组列集合」的性质,不讲「某个向量对别的向量相关」,也不讲「这个矩阵线性无关」。讲义惯说「A 的列线性无关」,ILA 强调它是集合性质,两种说法等价,书面统一写成「列集合线性无关」更稳。ILA
判定工具箱:怎么快速看出一套向量脱不脱钩
定义拿来判定固然可靠,但真做题总想走捷径。教材 1.7 给了一套现成的判据,配齐了证明思路:
- 向量个数多于向量维数,必线性相关。p>n 时(p 个向量住在一个最多 n 维的空间里),把列排成矩阵去解 $Ax=0$,未知量多于方程,简化阶梯形必然至少有一列没主元,也就必然冒出自由变量,于是有非平凡解。Lay
- 含零向量的集合必线性相关:把零向量前面配上系数 1、其余配 0,就是一个非平凡的相关关系。Lay
- 单个向量 ${v}$ 无关 ⇔ $v \ne 0$(${0}$ 必相关)。
- 两个向量相关 ⇔ 一个是另一个的倍数。
还有一条刻画能解释「冗余」这个词:含两个以上向量的集合 S 线性相关,当且仅当其中至少一个向量落在其它向量的张成里(且在 $v_1\ne0$ 时,能找到一个 $v_j$(j>1)是它前面向量 $v_1,\dots,v_{j-1}$ 的线性组合)。这句的直觉正是第二章那张 span 图:第三个向量若不是前两个的倍数、却刚好落在它们铺出的那条线/那片面里,那它就被前两个「顶替」了,冗余,相关。Lay
回头看第二章那张 span 图里的「共线不扩张」面板,那正是上面这套判据的生理解释:多加的向量若能由已有列表达,就相关、就把空间撑坏的自由变量放出来。所以多解与否,本质就是「冗余列多不多」的翻版。把因果链收拢:
列集合线性相关 ⇔ 有向量可被别的列顶替 ⇔ 至少一个自由变量 ⇔ $Ax=0$ 有非平凡解 ⇔(若 $Ax=b$ 相容)解不唯一。
反过来,若列集合线性无关且 b 可达,则 $Ax=b$ 恰有一个解。Strang 课程的下一讲正是以 Independence, basis, and dimension 为题,把本章的独立性讨论向前再推一章。Strang
拿到方程组先问什么:一张决策图,加上最容易栽的几个坑
五章铺完,现在给你一张能独立走的决策图。以后拿到任意一个 $Ax=b$ 或任意一套向量,别急着从头化到尾巴,按顺序问两个问题就够了:
第一问解决「活不活」,第二问解决「活成一窝还是一个」。这两问依次落在第二章和第五章的定理上,你的手算只需要行化简到能读出「有没有全零行、有没有自由列」就够,不必把每个数字都精算完才动手。
Georgia Tech 的 1.7 讲义给过一个很好的引子问题:一个参数解里最少需要几个向量? 用我们的话说:把解集的生成方向压到最少,压到没有哪个方向能被其它方向顶替,剩下的就是基底,数量就是维数。GT1554
最容易栽的几只坑
收尾之前,把刷题最常绊倒人的几个误判点名:
- 把「列集合线性无关」误当成「向量互不成倍数」。两向量互不成倍数才无关,但三四个向量即便互不成倍数也可能相关,比如 $v_3 = v_1 + v_2$。判断一律回到「组合为零有没有非平凡解」,别拿单行/两行判据去套多向量组。ILA
- 反着用 p>n。p>n 只保证「必相关」,绝不能说「p≤n 必无关」——三个二维向量照样可能共线相关。
- 把「平凡解恒存在」当「解唯一」。$Ax=0$ 必有平凡解,但要问有没有非平凡解;唯有当列集合无关(无自由变量)时答案才是唯一的一个点。
- 混列的张成和解集。列的张成在 b 侧 $\mathbb{R}^m$,讲的是哪些 b 可行;解集在 x 侧 $\mathbb{R}^n$。看到题目先想清楚手上商量的是哪一边。
- 非齐次解的几何形状,别凭空猜它是齐次解的几倍。非齐次只把齐次那条线平移,方向数量(自由变量个数)一点没变,变的是起始位置。
最后把规范术语对一次口,方便你在讲义和英文课件之间对号(span 大陆教材多译「张成」,也有译「线性生成空间」的,指同一概念;维基条目把这套对照锁成了标准用词)维基百科:
| English (Lay 6e) | 中文 | 说明 |
|---|---|---|
| matrix equation | 矩阵方程 | 1.4 |
| homogeneous / nonhomogeneous | 齐次 / 非齐次 | 1.5 |
| trivial / nontrivial solution | 平凡解 / 非平凡解 | 齐次方程 |
| basic / free variable | 基本变量 / 自由变量 | 英文也叫 pivot variables |
| pivot position | 主元位置 | 1.2 引入 |
| parametric vector form | 参数向量形式 | 1.5 |
| particular solution | 特解 | 1.5 |
| span | 张成(线性生成空间) | 1.4 |
| linearly independent / dependent | 线性无关 / 线性相关 | 1.7 |
往前看:这一章的名字已经在你手里
沿着那句「把生成方向压到最少」往前再走半步,就能看见第二章课程的形状:$Ax=0$ 那个过原点的解集,正式的名字叫零空间(null space);A 各列的张成,正式叫列空间;把线性相关去掉、只剩真能撑开方向的列,挑出来的最小生成集就是基,它的个数是秩。这些正是 Strang 课程紧接的多讲主题。Strang
练习的分层可以根据你当下的需要来定制:跟着课本同步题把每一步算到熟(Georgia Tech 1554 讲义给了一整套按 Lay 编号的例题,适合逐节对照)GT1554;需要成体系的大题,去刷 MIT 18.06 的官方 Problem Set 和 Quiz 1(题型与教材对接最紧的是 PS3 对应的解空间章节);Strang想要刷题+即时反馈,Khan Academy 的 Linear Algebra — Vectors and Spaces 单元里那个 Linear dependence and independence 小节正对应这一块(在线练习形态以实时页面为准)。Khan
最后放一个可以自己跑的通快验证。用 SymPy(符号计算,无浮点误差)把讲义那道题在机器上核对一遍,确认 p 和 v 的真实身份:
from sympy import *
A = Matrix([[3,5,-4],[-3,-2,4],[6,1,-8]])
b = Matrix([7,-1,-4])
v = Matrix([Rational(4,3),0,1]); p = Matrix([-1,2,0])
print(A*p == b) # True:p 确为 Ax=b 的一个特解
print(A*v == zeros(3,1)) # True:v 是齐次解(在零空间里)
print(Matrix([[1,4,2],[2,5,1],[3,6,0]]).nullspace()) # 判定列相关
这段示意代码需你本地装有 SymPy 后自行运行核对(文档里 rref/nullspace/columnspace 的用法见 SymPy 官方 Matrices 教程,nullspace 返回张成零空间的列向量列表)SymPy.
回头看这一整趟:第一问 b 够不够得着,决定有没有解;第二问列之间有没有冗余,决定有一个还是无穷多个解。解 Ax=b 的本质,从头到尾就是问那几列怎么拼出 b、拼出来之后又留了多少冗余方向在凑热闹。把这副列组合的眼镜戴稳,第二章的零空间、列空间、基、秩就都是熟面孔的正式称呼了。
参考文献
本专题引用的核心资料如下,建议深入学习时阅读原文:
- Linear Algebra and Its Applications, 6th edition — Lay, Lay & McDonald(Pearson ©2021,讲义来源教材) — Pearson 官方书目页
- Interactive Linear Algebra — Margalit & Rabinoff(Georgia Tech 开放教材,GFDL) — https://textbooks.math.gatech.edu/ila/
- MIT OCW 18.06 Linear Algebra — Prof. Gilbert Strang(Spring 2010 课程档案) — https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/
- Georgia Tech Math 1554 讲义 Chapters 1 & 2(按 Lay 编号,2022) — https://sbarone7.math.gatech.edu/Chapters_1_and_2.pdf
- 3Blue1Brown — Essence of Linear Algebra(2016 官方 lessons 页) — https://www.3blue1brown.com/topics/linear-algebra
- Khan Academy — Linear Algebra:Vectors and Spaces 单元 — https://www.khanacademy.org/math/linear-algebra/vectors-and-spaces
- 维基百科(中文)— 線性無關(术语对照,条目无参考来源,仅作术语校对) — https://zh.wikipedia.org/wiki/線性無關
- SymPy 官方文档 — Matrices(intro tutorial) — https://docs.sympy.org/latest/tutorials/intro-tutorial/matrices.html