Linear Algebra-列空间和零空间-06

概要

在上一节中,我们已经认识了向量空间和子空间的概念。今天,我们将在此基础上进一步探索线性代数中两个非常核心的概念——列空间零空间。这两个空间都与我们一直关心的方程 $Ax=b$ 密切相关,通过理解它们,我们能从全新的角度看待线性方程组的解的存在性问题。

本文会从子空间的性质讲起,然后一步步引出这两种重要的子空间,让你明白它们到底是什么,以及它们为什么对理解线性方程组这么重要。

子空间

子空间回顾

让我们先快速回顾一下子空间的基本性质。判断一个集合是否为子空间,最关键的一点就是看它是否对线性运算封闭——也就是说,集合中任意两个向量相加,结果仍然要在这个集合里;任意一个向量数乘之后,结果也必须还在集合里。

我们从最简单的 $R^3$ 空间开始,整个三维空间本身就是一个向量空间,如下图所示:

three_dimension

上一节我们学习过,$R^3$ 的子空间常见有以下三种,并且所有子空间都必须包含原点(零向量)

  1. 穿过原点的无限延伸的平面 P;
  2. 穿过原点的无限延伸的直线 L;
  3. 仅包含原点的零空间 Z;

反映在图像上就是这样:

liekongjian1

很容易验证它们都满足线性封闭性:无论是直线 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$ 中。这就违反了加法封闭性的要求。

liekongjian2

所以,两个子空间的并不一定是子空间。这有点反直觉,但从封闭性的要求出发,结论很清晰。

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$ 的解集确实构成一个子空间呢?我们还是用封闭性来检验:

  1. 加法封闭:假设 $\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}$ 也是解,加法封闭成立。

  2. 数乘封闭:对任意常数 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$入手,给出了两种构建子空间的方法:

  1. 从 A 的列向量入手,根据列向量的线性组合构造空间;
  2. 从$Ax=0$方程组入手,让 x 满足特定条件来构造子空间;

这两个概念是线性代数的基础,理解了它们,我们就能从空间的角度真正理解线性方程组解的结构。列空间告诉我们 b 满足什么条件才有解,零空间则告诉我们当有解时,解空间本身是什么结构,两者结合起来就完整了。