线性代数06-列空间和零空间
Linear Algebra-列空间和零空间-06
概要
在上一节中,我们已经认识了向量空间和子空间的概念。今天,我们将在此基础上进一步探索线性代数中两个非常核心的概念——列空间和零空间。这两个空间都与我们一直关心的方程 $Ax=b$ 密切相关,通过理解它们,我们能从全新的角度看待线性方程组的解的存在性问题。
本文会从子空间的性质讲起,然后一步步引出这两种重要的子空间,让你明白它们到底是什么,以及它们为什么对理解线性方程组这么重要。
子空间
子空间回顾
让我们先快速回顾一下子空间的基本性质。判断一个集合是否为子空间,最关键的一点就是看它是否对线性运算封闭——也就是说,集合中任意两个向量相加,结果仍然要在这个集合里;任意一个向量数乘之后,结果也必须还在集合里。
我们从最简单的 $R^3$ 空间开始,整个三维空间本身就是一个向量空间,如下图所示:

上一节我们学习过,$R^3$ 的子空间常见有以下三种,并且所有子空间都必须包含原点(零向量):
- 穿过原点的无限延伸的平面 P;
- 穿过原点的无限延伸的直线 L;
- 仅包含原点的零空间 Z;
反映在图像上就是这样:

很容易验证它们都满足线性封闭性:无论是直线 L 还是平面 P,任取两个向量相加,得到的向量仍在该子空间中;任意向量数乘之后,结果也还在原来的子空间中。所以它们都是合格的子空间。
子空间的”交”与”并”
刚才我们都是分别讨论单个子空间,现在来思考一个有趣的问题:如果有两个子空间,它们的并集和交集还是不是子空间呢?我们一起来分析一下。
P∪L 空间
还是以 $R^3$ 中的平面 P 和直线 L 为例,它们本身都是子空间。现在把它们合并在一起,形成集合 $P \cup L$,包含了 P 和 L 中的所有向量,这个新集合还是子空间吗?
答案是否定的。
原因很简单:$P \cup L$ 对线性运算不封闭。比如我们在直线 L 上取一个向量 $\mathbf{a}$,在平面 P 上取一个向量 $\mathbf{b}$,它们都属于 $P \cup L$,但是它们的和 $\mathbf{a}+\mathbf{b}$ 的方向会夹在直线 L 与平面 P 之间,既不在 L 上也不在 P 上,因此也就不在 $P \cup L$ 中。这就违反了加法封闭性的要求。

所以,两个子空间的并不一定是子空间。这有点反直觉,但从封闭性的要求出发,结论很清晰。
P∩L 空间
那如果换成交集呢?还是用刚才 $R^3$ 的例子,平面 P 和直线 L 只在原点相交,所以它们的交集就是原点,而原点本身就是一个子空间,没问题。
如果推广到一般情况:假设 S 和 T 都是某个大空间的子空间,那么它们的交集 $S \cap T$ 还是子空间吗?
这次的答案是肯定的。
我们可以这样理解:$S \cap T$ 中的向量必须同时满足 S 和 T 对线性封闭性的要求。任取两个向量 $\mathbf{v}, \mathbf{w}$ 都在 $S \cap T$ 中:
- 因为它们都在 S 中,S 是子空间,所以 $\mathbf{v}+\mathbf{w}$ 也在 S 中;同理,$\mathbf{v}+\mathbf{w}$ 也在 T 中,因此 $\mathbf{v}+\mathbf{w}$ 在 $S \cap T$ 中,加法封闭成立。
- 同样,对任意常数 $c$,$c\mathbf{v}$ 既在 S 中也在 T 中,因此也在 $S \cap T$ 中,数乘封闭也成立。
所以,任意两个子空间的交集仍然是子空间。这个结论非常有用,我们后面还会用到。
列空间
列空间回顾
现在我们进入正题,先来认识列空间。我们通过一个具体例子来理解。
假设有这样一个矩阵:
这个矩阵有三列,每一列都是一个四维向量:
它们都属于 $R^4$,因此由这三个列向量张成的空间就是A 的列空间,它是 $R^4$ 的一个子空间,记作 $C(A)$。
列空间里到底包含了什么向量呢?很简单,除了这三个列向量本身,还包含了它们所有可能的线性组合。换句话说,A 的列空间就是这三个列向量张成的子空间。
那这个子空间到底有多大呢?要回答这个问题,我们还是得回到最熟悉的 $Ax=b$ 方程上来。
Ax=b 的空间解释
还是用刚才的矩阵 A,我们写出方程 $Ax=b$:
我们来回答三个关键问题,这能帮助我们彻底理解列空间的本质。
第一个问题:这个方程对任意的 b 都一定有解吗?
我们之前说过,$Ax$ 的本质就是对 A 的列向量做线性组合:
所以 $Ax$ 的所有可能结果,正好就是 A 的列空间。
现在想想,三个四维向量的线性组合,能铺满整个四维空间 $R^4$ 吗?显然不能。这就好比两个三维向量没法张成整个三维空间一样,向量的个数不够,它们只能张成 $R^4$ 的一个子空间。所以,不是随便拿出一个四维向量 b 都能写成这种线性组合的,也就是说,不是对任意 b 方程都有解。
第二个问题:那什么样的 b 才能让方程 $Ax=b$ 有解呢?
答案其实已经出来了:当且仅当 b 属于 A 的列空间 $C(A)$ 时,方程 $Ax=b$ 才有解。
这个结论太重要了,我再强调一遍:b 必须在 A 的列空间里,方程才有解。这就是列空间和线性方程组解的存在性之间的根本联系。
第三个问题:能否去掉 A 的一列,却不改变 A 的列空间呢?
我们来看看 A 的这三列:
仔细观察一下,你会发现第三列其实就是前两列之和:
也就是说,第三列本身就在前两列张成的空间里,它对扩大列空间没有任何贡献。所以,即使我们去掉第三列,剩下两列仍然能张成和原来一样的列空间。
我们把那些对张成空间有实质贡献的列叫做主列。在这个例子中,前两列就是主列。
零空间
讲完了列空间,我们来看另一种非常重要的子空间——零空间。零空间是从另一个角度构造出来的子空间,和列空间互补。
零空间介绍
所谓零空间,其实非常好理解:它就是方程 $Ax=0$ 的所有解 x 构成的空间。
还是用刚才的矩阵 A 来举例,它的零空间就是下面这个方程的所有解构成的空间:
这里的解 x 是一个三维向量 $\begin{bmatrix}x_1\x_2\x_3\end{bmatrix}$,它属于 $R^3$,所以 A 的零空间是 $R^3$ 的一个子空间。
我们来总结一下,对于一个 $m \times n$ 的矩阵 A:
- 列空间 $C(A)$ 是 $R^m$ 的子空间(因为每个列向量都是 m 维的)
- 零空间 $N(A)$ 是 $R^n$ 的子空间(因为解 x 是 n 维的)
这是一个很重要的区别,一定要记清楚。
现在我们需要验证一下:为什么 $Ax=0$ 的解集确实构成一个子空间呢?我们还是用封闭性来检验:
加法封闭:假设 $\mathbf{v}$ 和 $\mathbf{w}$ 都是 $Ax=0$ 的解,也就是说 $A\mathbf{v}=0$,$A\mathbf{w}=0$。那么 $A(\mathbf{v}+\mathbf{w})=A\mathbf{v}+A\mathbf{w}=0+0=0$,所以 $\mathbf{v}+\mathbf{w}$ 也是解,加法封闭成立。
数乘封闭:对任意常数 c,$A(c\mathbf{v})=c(A\mathbf{v})=c \cdot 0=0$,所以 $c\mathbf{v}$ 也是解,数乘封闭也成立。
完美!两个条件都满足,所以零空间确实是一个合法的子空间。
我们来看一个具体的例子,求一下刚才那个矩阵 A 的零空间。
我们已经知道第三列是前两列的和,所以很容易找到一个非零解:$\begin{bmatrix}1\1\-1\end{bmatrix}$,它满足 $Ax=0$。那所有解是什么样的呢?其实就是这个向量的任意数乘:$C\begin{bmatrix}1\1\-1\end{bmatrix}$,其中 C 是任意常数。
所以这个零空间几何上就是 $R^3$ 中一条穿过原点的直线,符合子空间的要求。
Ax=b 的空间解释
现在我们再拓展一下思考:如果方程右侧不是零向量,而是任意一个非零向量 b,那么解集还能构成向量空间吗?
比如看这个例子:
这样的所有 x 构成的解集还是向量空间吗?
答案显然是否定的。
最简单的判断方法就是:零向量 $\begin{bmatrix}0\0\0\end{bmatrix}$ 代入左边根本不等于右边的 b,所以零向量不在这个解集中。而任何向量空间都必须包含零向量,连零向量都没有,自然不可能是向量空间了。
几何上来看,当 $Ax=b$ 有解时,它的解集其实是一个”平移”过的零空间——也就是一个不过原点的平面(在三维情况下就是直线或平面),这也不符合子空间必须包含原点的要求。
这个结论很重要,需要我们记住:只有当方程右侧是零向量时,解集才能构成子空间(也就是零空间);对于非零的 b,即使方程有解,解集也不是向量空间。
学习感悟
这一节我们学习了列空间与零空间,从$Ax=b$入手,给出了两种构建子空间的方法:
- 从 A 的列向量入手,根据列向量的线性组合构造空间;
- 从$Ax=0$方程组入手,让 x 满足特定条件来构造子空间;
这两个概念是线性代数的基础,理解了它们,我们就能从空间的角度真正理解线性方程组解的结构。列空间告诉我们 b 满足什么条件才有解,零空间则告诉我们当有解时,解空间本身是什么结构,两者结合起来就完整了。



