
线性代数(五):线性方程组与列空间
Ax = b 何时有解?有几个解?真正的答案是几何的:取决于 b 是否落在 A 的列空间里,也取决于 A 把多少输入维度压成了零。本章把高斯消元、列空间、零空间、秩与秩-零化度定理串成同一幅结构图。
一个贯穿始终的核心问题#
在应用数学中,几乎所有问题最终都会归结为同一个核心问题:

给定矩阵 $A$ 和向量 $\vec{b}$ ,方程 $A\vec{x} = \vec{b}$ 是否有解?如果有,有多少个?
机械式的回答是“消元后看结果”,但结构性的回答才真正有趣——这也是本章的目标。三个几何对象足以揭示一切:
- 列空间 $C(A)$ —— 矩阵 $A$ 能够到达的所有向量集合,它决定了方程是否有解;
- 零空间 $N(A)$ —— 被矩阵 $A$ 压缩为零的向量集合,它决定了有多少个解;
- 秩 $r$ —— 列空间的维度,量化了矩阵 $A$ 保留了多少信息。
一旦这三个概念清晰了,所有关于线性方程组的结论——存在性、唯一性、最小二乘法、四个基本子空间——都只是同一个故事从不同角度的讲述。
你将学到什么#
- 两种互补视角理解 $A\vec{x}=\vec{b}$ :行视角(超平面相交)与列视角(列向量的线性组合);
- 高斯消元作为操作工具,及其本质——LU 分解;
- 列空间、零空间和秩的几何意义;
- 秩-零化度定理与四个基本子空间;
- 如何一眼看穿任意解集的结构。
先修知识#
看 $A\vec{x} = \vec{b}$ 的两种方式#
行视角:超平面的交点#
$$ \begin{cases} x + 2y = 5 \\ 3x - y = 1 \end{cases} $$每个方程描述平面上的一条直线,解就是同时位于两条直线上的点——它们的交点 $(1, 2)$ 。在三维情形中,每个方程对应一个平面,解集则是这些平面的交集(可能是一个点、一条线、一个平面,或空集)。
这是大多数学生最先接触的图像:直观且具体,但它掩盖了真正关键的东西——矩阵本身的结构。
列视角:向量的组合#
$$ x \begin{pmatrix} 1 \\ 3 \end{pmatrix} + y \begin{pmatrix} 2 \\ -1 \end{pmatrix} = \begin{pmatrix} 5 \\ 1 \end{pmatrix} $$现在问题变成:能否用 $A$ 的列向量线性组合出 $\vec{b}$ ? 解方程就是在寻找合适的组合系数。
这一视角的转变是本章最重要的思想。由此出发,列空间、秩、解的存在性等概念自然浮现。

上图展示了故事的两面。左边,列向量 $\vec{a}_1, \vec{a}_2$ 张成整个平面,因此任意目标 $\vec{b}$ 都可通过调整系数拼出——平行四边形恰好闭合到 $\vec{b}$ 。右边,两列向量平行,列空间坍缩为一条直线;若 $\vec{b}$ 不在这条线上,则无法精确表示,此时最佳选择是将其正交投影到该线上——这正是最小二乘法的几何根源。
画家类比:你站在空白画布前,手握三管颜料(对应 $A$ 的三列)。列空间就是你能调出的所有颜色。若其中两管颜色相同,无论怎么混合,都无法得到新色调——你的可用色域比表面看起来更小。这种“看似丰富、实则冗余”的状态,正是秩亏矩阵的本质。
高斯消元:操作工具#
三种合法操作#
高斯消元通过仅使用三种初等行变换来简化方程组,且不改变其解集:
- 交换两行;
- 将某一行乘以非零常数;
- 将某一行的倍数加到另一行。
为何合法?因为每一步都是可逆的:任何操作序列都能被还原,因此前后解集完全一致。
一个完整例子#
$$ \begin{cases} x + 2y + z = 2 \\ 3x + 8y + z = 12 \\ 4y + z = 2 \end{cases} $$写出增广矩阵,逐个主元向下消元。

每个高亮元素都是一个主元——该行首个非零元。当矩阵变为上三角后,进行回代:
- 第 3 行:$5z = -10 \implies z = -2$ ;
- 第 2 行:$2y - 2z = 6 \implies y = 7/2$ ;
- 第 1 行:$x + 2y + z = 2 \implies x = -11/2$ 。
三列均有主元,意味着三个未知数受三个独立约束——解唯一。
主元与自由变量#
消元后,列分为两类:
- 主元列:含主元的列,对应变量由其他变量决定;
- 自由列:不含主元的列,对应变量可自由选取。
这一划分决定了全部解的结构:
| 情况 | 解集 |
|---|---|
| 所有列均为主元列 | 唯一解 |
| 存在自由列 | 无穷多解(每组自由变量取值对应一个解) |
| 出现 $0 = c \neq 0$ 的行 | 无解 |
LU 分解:消元的存储形式#
$$ A = L \cdot U $$其中 $U$ 是消元后的上三角矩阵,$L$ 的元素存储了消元过程中使用的乘子。LU 分解不过是高斯消元的封装:一旦获得 $L$ 和 $U$ ,对任意新 $\vec{b}$ 求解 $A\vec{x}=\vec{b}$ 仅需 $O(n^2)$ 时间,而非重新消元的 $O(n^3)$ 。

从几何角度看,这幅图景令人愉悦。$A$ 或许复杂,但消元将其拆解为两个最简单的变换:先是一个上三角的剪切与缩放($U$ ),再是一个下三角的剪切($L$ )。三角矩阵之所以易于处理,是因为其作用具有因果性——每个输出坐标仅依赖于更早的输入——这正是回代法有效的根本原因。
| |
列空间:矩阵能“触及”的范围#
定义#
$$ C(A) = \{ A\vec{x} \mid \vec{x} \in \mathbb{R}^n \} = \text{span}\{ \text{columns of } A \} $$两种等价解读:它是所有可能的输出,也是列向量的张成空间。
存在性定理#
$A\vec{x} = \vec{b}$ 有解 当且仅当 $\vec{b} \in C(A)$ 。
这是本章最简洁的陈述。“方程是否有解?”转化为“目标是否在列空间中?”——一个纯粹的几何问题。
列空间的形态#

对于 $3 \times 3$ 矩阵,列空间位于 $\mathbb{R}^3$ 中,仅有三种可能:
| 秩 | 列空间 | 含义 |
|---|---|---|
| 1 | 过原点的直线 | 所有列共线 |
| 2 | 过原点的平面 | 两列线性无关,第三列冗余 |
| 3 | 整个 $\mathbb{R}^3$ | 三列线性无关,$A$ 可逆 |
此规律可推广:对 $m \times n$ 矩阵,列空间是 $\mathbb{R}^m$ 中的 $r$ 维子空间,$r$ 即为秩。
混音台类比:想象一个带三个推子(对应三列)的音频混音台,主输出即为列空间。若两个通道播放相同乐器,调节推子不会产生新声音——这种冗余正是“秩亏”在听觉上的体现。
零空间:被压缩的方向#

定义#
$$ N(A) = \{ \vec{x} \mid A\vec{x} = \vec{0} \} $$零空间必含零向量(因 $A\vec{0} = \vec{0}$ ),关键问题是:是否存在非零向量?

图示揭示了几何本质。左图:矩阵 $A=\begin{pmatrix}1&2\\2&4\end{pmatrix}$ 行线性相关,零空间为整条直线 $\text{span}\{(-2,1)\}$ ——该方向上所有向量均被压至原点;其像(列空间)则是方向 $(1,2)$ 的直线。右图:从 $\mathbb{R}^3$ 到 $\mathbb{R}^2$ 的投影(丢弃 $z$ 坐标)的零空间是整个 $z$ 轴——所有竖直分量被抹除。
零空间如何控制解的唯一性#
$$ A(\vec{x}_p + \vec{n}) = A\vec{x}_p + A\vec{n} = \vec{b} + \vec{0} = \vec{b} $$ $$ \{ \vec{x}_p + \vec{n} \mid \vec{n} \in N(A) \} $$几何上,这是将零空间(过原点的子空间)沿特解平移所得的仿射子空间——解集本身。
- 若 $N(A) = \{\vec{0}\}$ :解唯一(若存在);
- 若 $N(A)$ 含非零向量:解无穷多,由零空间参数化。
压路机类比:压路机将 3D 物体压成 2D 煎饼,所有竖直运动信息丢失——竖直方向即零空间。两个仅在高度上不同的物体压扁后完全相同:零空间正是这种“不可逆压缩”带来的全部模糊性。
秩:有效维度#
$$ \text{rank}(A) = \dim C(A) = \text{消元后主元个数} $$它等于线性无关列的最大数目,也(奇妙地)等于线性无关行的最大数目。行秩等于列秩——此定理证毕后看似平凡,却深刻揭示了行与列间的对称性。
秩的含义#
秩即有效维度数——变换实际保留的独立方向数。
| $3\times 3$ 矩阵秩 | 几何效应 |
|---|---|
| 3(满秩) | 将 $\mathbb{R}^3$ 映满 $\mathbb{R}^3$ ,可逆 |
| 2 | 将 3D 空间压至平面 |
| 1 | 将 3D 空间压至直线 |
| 0 | 零矩阵,一切归零 |
信息类比:秩即独立信息通道数。彩色照片每像素含 R、G、B 三通道(秩 3);转为灰度后秩降为 1,丢失两通道。机器学习中的低秩近似正是此思想的应用:仅保留数据矩阵的主导通道,舍弃其余。
| |
秩-零化度定理#
$$ \boxed{\;\text{rank}(A) + \dim N(A) = n\;} $$换言之:保留的维度 + 被压缩的维度 = 输入总维度。无中生有,亦无凭空消失。

左图柱状图直观呈现该定理:对任意矩阵,蓝色(秩)与琥珀色(零化度)之和恒为 $n$ 。右图饼图则将输入空间 $\mathbb{R}^n$ 划分为“保留部分”(行空间)与“压缩部分”(零空间)。
示例#
$$ \dim N(A) = n - r = 5 - 2 = 3 $$三个自由变量,三维零空间,二维列空间嵌于 $\mathbb{R}^3$ 中——仅凭一个数字即可解码完整结构。
$A\vec{x}=\vec{b}$ 的四种情形#
对秩为 $r$ 的 $m \times n$ 矩阵,仅存四种可能。

情形 1:$r = m = n$ —— 方阵且满秩#
$A$ 可逆。对任意 $\vec{b}$ ,存在唯一解 $\vec{x} = A^{-1}\vec{b}$ 。列空间为全 $\mathbb{R}^m$ ,零空间仅为 $\{\vec{0}\}$ 。
情形 2:$r = n < m$ —— 高瘦矩阵且列满秩(超定)#
方程数多于未知数。列空间为 $\mathbb{R}^m$ 的真子空间,故多数 $\vec{b}$ 不可达。若解存在则唯一,但实践中常用最小二乘法寻找最近可达点——即上图最右面板中的橙点。
情形 3:$r = m < n$ —— 矮宽矩阵且行满秩(欠定)#
未知数多于方程数。列空间填满 $\mathbb{R}^m$ ,故任意 $\vec{b}$ 均有解;但零空间维数 $n-m > 0$ ,导致解无穷多。中图展示典型情形:解集为一条直线(或平面等),所有点均为有效解。
情形 4:$r < m$ 且 $r < n$ —— 秩亏#
最微妙的情形。部分 $\vec{b}$ 无解,其余则有无穷多解——两种病态并存。
四个基本子空间#
对秩为 $r$ 的 $m \times n$ 矩阵 $A$ ,四个子空间道尽其结构:
| 子空间 | 符号 | 所属空间 | 维度 |
|---|---|---|---|
| 列空间 | $C(A)$ | $\mathbb{R}^m$ | $r$ |
| 零空间 | $N(A)$ | $\mathbb{R}^n$ | $n - r$ |
| 行空间 | $C(A^T)$ | $\mathbb{R}^n$ | $r$ |
| 左零空间 | $N(A^T)$ | $\mathbb{R}^m$ | $m - r$ |
它们构成两对正交互补空间:
- 在 $\mathbb{R}^n$ 中:行空间与零空间正交互补。任意向量可唯一分解为“有用部分”(行空间)与“浪费部分”(零空间);
- 在 $\mathbb{R}^m$ 中:列空间与左零空间正交互补。任一输出方向要么在列空间中,要么完全不可达。
矩阵 $A$ 在行空间与列空间之间建立双射(二者均为 $r$ 维),并将零空间压至零。Strang 称此为“线性代数的大图景”——一旦内化,你便不再视矩阵为数字表格,而将其视为几何机器。
应用实例#
最小二乘:无精确解时的对策#
$$ A^T A \hat{x} = A^T \vec{b} $$几何上,$A\hat{x}$ 是 $\vec{b}$ 在列空间上的正交投影——最近可达点。
| |
计算机图形学:投影#
$$ P = \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix} $$其零空间为整个 $z$ 轴:深度信息被摧毁,故单张 2D 图像无法恢复 3D 结构(需立体视觉、运动或学习先验)。
电路分析#
基尔霍夫电流定律的矩阵形式为 $A\vec{i} = \vec{0}$ ,其中 $A$ 为网络关联矩阵。$A$ 的零空间即合法回路电流空间,其维数等于电路中独立回路数——一个由纯线性代数导出的拓扑事实。
深层直觉:计算前三问#
面对线性方程组,勿急于消元。先问:
- 列空间是什么? 它告诉你哪些 $\vec{b}$ 可解;
- 零空间是什么? 它说明解是否唯一,以及解集形状;
- 秩是多少? 它量化 $A$ 保留的信息量。
消元虽可回答这些问题,但仅是簿记工具——几何才是核心。
| |
总结#
| 概念 | 告知内容 |
|---|---|
| 列空间 $C(A)$ | 哪些 $\vec{b}$ 可解 |
| 零空间 $N(A)$ | 解是否唯一;解集形状 |
| 秩 | $A$ 保留的独立方向数 |
| 秩-零化度 | $\text{rank} + \text{nullity} = n$ —— 维度守恒律 |
| 四个子空间 | 任意矩阵的完整结构图 |
线性代数的精髓在于通过空间与维度理解方程,而非机械计算。消元仍是主力算法,但其真正使命是揭示早已存在的几何结构。
稀疏矩阵捷径:$A\vec{x}=\vec{b}$ 复杂度从 $O(n^3)$ 降至 $O(n)$ #
稠密 $n\times n$ 矩阵通过 LU 分解求解 $Ax=b$ 的开销为 $\Theta(n^3)$ 。当 $n=10^6$ 时,约需 $10^{18}$ FLOPs——不可行。然而有限元模拟、推荐系统与图问题常能在秒级求解同等规模系统,秘诀在于稀疏性。
矩阵稀疏指非零元占比极低(如 $\le 1\%$ )。例如二维网格上的离散 Laplacian,每行仅 5 个非零元,与网格大小无关。若 $A$ 有 $\mathrm{nnz}(A)$ 个非零元,则三方面同步改善:
- 存储从 $n^2$ 个 double 降至约 $2\,\mathrm{nnz}(A)$ 个 double 加索引数组。CSR(Compressed Sparse Row)为标准布局;
- 矩阵-向量乘 $Ax$ 开销从 $\Theta(n^2)$ 降至 $\Theta(\mathrm{nnz}(A))$ 。对百万格点的二维 Laplacian,单次乘法仅需 $5\times 10^6$ FLOPs——不足毫秒;
- 迭代求解器如共轭梯度法(CG,用于 SPD 矩阵)或 GMRES(通用)仅依赖矩阵-向量乘。总开销为 $\Theta(k\cdot \mathrm{nnz}(A))$ ,$k$ 为迭代次数(CG 通常为 $\sqrt{\kappa(A)}$ ,常为 $10^2$ –$10^3$ )。
实例:在 $n=10^5$ 网格点上求解一维 Poisson 问题 $-u'' = f$ :
| |
同问题若用稠密 np.linalg.solve,需 $10^{15}$
FLOPs 与 80 GB 内存。稀疏迭代在笔记本上一秒内完成。
稀疏性何时失效?当直接分解产生填充(fill-in)时。即使 $A$
稀疏,LU 分解中的 $L$
与 $U$
可能近乎稠密——如箭头矩阵可将 $O(n)$
非零元扩至 $O(n^2)$
。故 scipy 提供 splu 并支持 AMD、METIS 等重排策略以最小化填充,且超大系统常优先选用迭代法而非直接求解。
scipy.linalg.solve 底层机制#
调用 scipy.linalg.solve(A, b) 处理稠密 $n\times n$
矩阵时,不会先计算 $A^{-1}$
再相乘,而是调用 LAPACK 的 dgesv,步骤如下:
- 分解:通过偏主元高斯消元得 $PA = LU$
(
dgetrf),耗时 $\tfrac{2}{3}n^3$ FLOPs。偏主元(行交换使主元为列中绝对值最大者)保障数值稳定性; - 前代:前向替换解 $Ly = Pb$ ,$n^2$ FLOPs;
- 回代:后向替换解 $Ux = y$ ,$n^2$ FLOPs。
总计 $\tfrac{2}{3}n^3 + 2n^2$
FLOPs。显式计算 $A^{-1}$
需 $2n^3$
FLOPs(多 3 倍),且数值稳定性更差:solve(A, b) 相对误差界为 $\kappa(A)\cdot \varepsilon$
,而 inv(A) @ b 额外引入 $\kappa(A)$
因子。几乎不存在显式求逆的合理场景。对多右端项,复用 LU 分解即可。
若已知 $A$ 的更多结构,可选更快例程:
- $A$
对称正定:
cho_solve(Cholesky),$\tfrac{1}{3}n^3$ FLOPs,速度翻倍; - $A$
对称不定:
ldl分解; - $A$
带状(带宽 $b$
):
solve_banded,$\Theta(n b^2)$ FLOPs; - $A$
三角:
solve_triangular,$n^2$ FLOPs(无需分解)。
原则:你命名的每一分结构,都有对应的加速求解器。普通 solve(A, b) 是最慢的正确答案;专用例程快 2 至 1000 倍。本章教你识别何种结构——答案编码于四个基本子空间:秩、对称性、定性、带宽。
下一步#
第 6 章 :特征值与特征向量。多数向量经变换后方向改变,但少数特殊向量仅被缩放。这些特征向量是 $A$ 的自然坐标轴——矩阵在其上仅表现为简单拉伸。找到它们,便能掌握任意线性系统的长期行为。
线性代数 18 篇
- 01 线性代数(一):向量的本质——不仅仅是箭头
- 02 线性代数(二):线性组合与向量空间
- 03 线性代数(三):矩阵作为线性变换
- 04 线性代数(四):行列式的秘密
- 05 线性代数(五):线性方程组与列空间 当前
- 06 线性代数(六):特征值与特征向量
- 07 线性代数(七):正交性与投影——当向量互不干扰
- 08 线性代数(八):对称矩阵与二次型
- 09 线性代数(九):奇异值分解 SVD
- 10 线性代数(十):矩阵范数与条件数——数值计算的健康体检
- 11 线性代数(十一):矩阵微积分与优化——从梯度到反向传播
- 12 线性代数(十二):稀疏矩阵与压缩感知——少即是多的数学奇迹
- 13 线性代数(十三):张量与多线性代数——从标量到高维数据立方体
- 14 线性代数(十四):随机矩阵理论——混沌中的秩序
- 15 线性代数(十五):机器学习中的线性代数——从 PCA 到推荐系统
- 16 线性代数(十六):深度学习中的线性代数——从全连接到 Transformer
- 17 线性代数(十七):计算机视觉中的线性代数——从像素到三维重建
- 18 线性代数(十八):前沿应用与总结——量子计算、GNN、大模型,与十八章回望