Logo

零空间、列空间、行空间和线性变换

在线性代数的应用中, Rn ~\mathbb{R^n}~的子空间产生的方式通常有两种:
(1) (1)~方程解的集合:作为齐次线性方程组的所有解的集合,这种子空间通常称为零空间
(2) (2)~线性组合的集合:作为一组特定向量的所有线性组合的集合,这种子空间称为列空间行空间
接下来我们将介绍并使用这些新的术语重新讨论之前学过的内容,以更清晰地理解子空间的性质。

1. 零空间 NulA ~\text{Nul}\,\mathbf{A}~

1.1 零空间的定义

在线性代数中,零空间是我们重新理解齐次线性方程组解的结构和性质的一个核心概念。我们来看下面这个齐次方程组:
x13x22x3=05x1+9x2+x3=0\begin{align*} x_1 - 3x_2 - 2x_3 &= 0 \\ -5x_1 + 9x_2 + x_3 &= 0 \end{align*}
它可以用矩阵方程 Ax=0 ~\mathbf{A}\mathbf{x}=\mathbf{0}~来表示,其中
A=[132591]\mathbf{A} = \begin{bmatrix} 1 & -3 & -2 \\ -5 & 9 & 1 \end{bmatrix}
我们称满足方程 Ax=0 ~\mathbf{A}\mathbf{x}=\mathbf{0}~的所有 x ~\mathbf{x}~的集合(解集)为矩阵 A ~\mathbf{A}~的零空间。严格的定义如下:

1.2 判定向量是否属于零空间

我们判断一个向量是否属于矩阵 A ~\mathbf{A}~的零空间,只需要判断该向量是否为齐次方程 Ax=0 ~\mathbf{A}\mathbf{x}=\mathbf{0}~的解即可。例如,判断向量 u ~\textcolor{#ff8200}{\mathbf{u}}~是否存在于矩阵 A ~\textcolor{#2196f3}{\mathbf{A}}~的零空间,只需要判断 Au=0 ~\mathbf{A}\mathbf{u}=\mathbf{0}~是否成立即可。经计算:
Au=[132591][532]=[59+425+272]=[00]\mathbf{A} \mathbf{u} = \textcolor{#2196f3}{\begin{bmatrix} 1 & -3 & -2 \\ -5 & 9 & 1 \end{bmatrix}} \textcolor{#ff8200}{\begin{bmatrix} 5 \\ 3 \\ -2 \end{bmatrix}} = \begin{bmatrix} 5 - 9 + 4 \\ -25 + 27 - 2 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}
所以, u ~\mathbf{u}~存在于矩阵 A ~\mathbf{A}~的零空间内,即: uNullA ~\mathbf{u}\in \text{Null} \, \mathbf{A}~。我们可以对矩阵 A ~\mathbf{A}~进行行化简并得到齐次方程组的解集x=tv, 其中, v=[12321]T\mathbf{x}=t\mathbf{v},~\text{其中,}~\mathbf{v}=\begin{bmatrix} \frac{1}{2} & -\frac{3}{2} & 1 \end{bmatrix}^T,所以零空间是向量 v ~\mathbf{v}~的所有线性组合,可以用 Span{v} ~\text{Span}\{\mathbf{v}\}~表示,几何上可以表示为 R3 ~\mathbb{R^3}~中一条经过原点的直线。

1.3 零空间性质

零空间是一个向量的集合,集合中的向量必要符合矩阵乘法 Ax ~\mathbf{A}\mathbf{x}~的定义,即: Am×nxn×1=0 ~\mathbf{A}_{m\times n}\mathbf{x}_{n\times 1}=\mathbf{0}~。有如下定理:

这个定理在验证特定条件下的向量集合是否为子空间时非常有用。在实际问题中,我们通常会得到来自系统(工程、物理和计算机科学等领域)中不同变量之间的约束或平衡关系构成的条件方程,例如下面的条件方程: a2b+5c=d ~a-2b+5c=d~ ca=b ~c-a=b~。满足此方程的所有向量 (a,b,c,d) ~(a,b,c,d)~构成的集合 H ~H~ R4 ~\mathbb{R^4}~的一个子空间。这是因为上面的条件方程可以写成如下的齐次方程组:
a2b+5cd=0ab+c=0\begin{align*} a - 2b + 5c - d &= 0 \\ -a - b + c \quad \quad &= 0 \end{align*}
这是一个包含 2 ~2~个方程、 4 ~4~个未知数的齐次方程组,根据定理 2 ~2~可知它的解集 H ~H~ R4 ~\mathbb{R^4}~的子空间。

1.4  NulA ~\text{Nul}\,\mathbf{A}~的显示表示

上面对零空间的定义并不是显而易见的,在 NulA ~\text{Nul}\,\mathbf{A}~中的向量与矩阵 A ~\mathbf{A}~中的元素没有明显的直接关系,我们称 NulA ~\text{Nul}\,\mathbf{A}~是被隐式定义的。隐式定义虽然简洁,但缺乏对集合结构的直观描述,难以直接进行计算和分析。在实际应用中通常会将隐式定义转换为显式表示。为此,我们可以通过求解矩阵方程 Ax=0 ~\mathbf{A}\mathbf{x}=\mathbf{0}~的解集来获得显式表示。请观察下面求解 Ax=0 ~\mathbf{A}\mathbf{x}=\mathbf{0}~的过程:

开通会员解锁全部动画

将通解中的自由变量提取,并表示为一组向量的线性组合,这些向量 {u,v,w} ~\{\mathbf{u},\mathbf{v},\mathbf{w}\}~就构成了 NulA ~\text{Nul}\,\mathbf{A}~的一个生成集合。上面的示例展示了如何构建 NulA ~\text{Nul}\,\mathbf{A}~的生成集合,并可以得出以下两个关键性质:
 (1) ~(1)~线性无关:生成集合中的向量是线性无关的,因为自由变量作为生成向量的权重,只有当所有权重(即自由变量)均为零时,整个组合结果才为零。
 (2) ~(2)~生成集合的维数:当 NulA ~\text{Nul}\,\mathbf{A}~包含非零向量时,生成集合的向量个数等于自由变量的数量,即方程 Ax=0 ~\mathbf{A}\mathbf{x}=\mathbf{0}~中的自由变量的数量。

2. 列空间 ColA ~\text{Col}\,\mathbf{A}~

列空间 (Column Space) ~(\mathbf{Column ~ Space})~提供了矩阵 A ~\mathbf{A}~的列向量所能覆盖的所有向量集合的范围,常用于研究矩阵的映射范围、线性独立性以及其他与线性变换相关的性质。与零空间不同,列空间是通过线性组合显式定义:

因为Span{a1,,an}\text{Span}\,\{\mathbf{a}_1,\dots,\mathbf{a}_n\}是一个子空间,根据上一节的定理 1可以得出列空间是定义在 Rm ~\mathbb{R^m}~中的子空间,因为 A ~\mathbf{A}~的列向量位于 Rm ~\mathbb{R^m}~中。

开通会员解锁全部动画

有如下定理:

由于 Ax ~\mathbf{A}\mathbf{x}~表示矩阵 A ~\mathbf{A}~的列向量的线性组合,所以在列空间 ColA ~\text{Col}\,\mathbf{A}~中的向量可以表示为 Ax ~\mathbf{A}\mathbf{x}~的形式,其中 x ~\mathbf{x}~是某个来自 Rn ~\mathbb{R^n}~的向量。

开通会员解锁全部动画

那么,列空间有如下等价定义:
ColA={b:b=Ax , xRn}\text{Col}\mathbf{A} = \{\mathbf{b}: \mathbf{b} = \mathbf{A}\mathbf{x} ~,~ \mathbf{x} \in \mathbb{R^n}\}
在实际应用中,构造一个矩阵使其列空间等于给定的向量空间的情况是很常见的需求。例如我们前面介绍过的透视投影矩阵 P ~\mathbf{P}~,它的列空间被定义为所有能够通过矩阵 P ~\mathbf{P}~作用后生成的向量集合,也就是在透视投影下所有可以投影到二维平面上的点。从这个角度来看,矩阵 A ~\mathbf{A}~的列空间 ColA ~\text{Col}\,\mathbf{A}~也是线性变换 xAx ~\mathbf{x}\mapsto \mathbf{A}\mathbf{x}~值域 (Range) ~(\mathbf{Range})~

3. 行空间 RowA ~\text{Row}\,\mathbf{A}~

对于一个 m×n ~m\times n~的矩阵 A ~\mathbf{A}~,每一行都可以视为 Rn ~\mathbb{R^n}~中的一个向量。矩阵 A ~\mathbf{A}~的所有行向量的线性组合的集合被称为 A ~\mathbf{A}~行空间 (Row Space) ~(\mathbf{Row~Space})~,记作 RowA ~\text{Row}\,\mathbf{A}~。因为每一行都有 n ~n~个元素,行空间 RowA ~\text{Row}\,\mathbf{A}~ Rn ~\mathbb{R^n}~的一个子空间。此外,矩阵 A ~\mathbf{A}~的行向量与转置矩阵 AT ~\mathbf{A}^T~的列向量相同,因此行空间 RowA ~\text{Row}\,\mathbf{A}~可以表示为 ColAT ~\text{Col}\,\mathbf{A}^T~

开通会员解锁全部动画

4. 对比 NulA ~\text{Nul}\,\mathbf{A}~ ColA ~\text{Col}\,\mathbf{A}~

零空间和列空间代表了矩阵的不同几何属性。列空间 ColA ~\text{Col}\,\mathbf{A}~包含矩阵 A ~\mathbf{A}~的所有列向量的线性组合,描述了 A ~\mathbf{A}~能够映射到的输出空间;而零空间 NulA ~\text{Nul}\,\mathbf{A}~包含了被 A ~\mathbf{A}~映射到零向量的所有输入向量,即 Ax=0 ~\mathbf{A}\mathbf{x}=\mathbf{0}~的所有解。例如下面的矩阵 A ~\mathbf{A}~它的列空间 ColA ~\text{Col}\,\mathbf{A}~ R3 ~\mathbb{R^3}~的一个子空间,而零空间是 R4 ~\mathbb{R^4}~的子空间:

开通会员解锁全部动画

接下来,我们可以从零空间和列空间的结构入手,进一步探讨它们在实际应用中的不同处理方法。在线性代数中,寻找 NulA ~\text{Nul}\,\mathbf{A}~ ColA ~\text{Col}\,\mathbf{A}~中的非零向量和判断一个向量是否属于 NulA ~\text{Nul}\,\mathbf{A}~ ColA ~\text{Col}\,\mathbf{A}~是线性代数中非常常见的两个问题。下面我们分别针对零空间和列空间来讨论这两个问题。

4.1 寻找 NulA ~\text{Nul}\,\mathbf{A}~ ColA ~\text{Col}\,\mathbf{A}~中的非零向量

寻找 NulA ~\text{Nul}\,\mathbf{A}~中的向量,就是求解齐次方程Ax=0\mathbf{A}\mathbf{x}=\mathbf{0}中的 x ~\mathbf{x}~,这需要对[A0]\begin{bmatrix}\mathbf{A} & \mathbf{0}\end{bmatrix}做行变换,以上面的矩阵 A ~\mathbf{A}~为例,行变换过程如下

开通会员解锁全部动画

上面的示例,零空间 NulA ~\text{Nul}\,\mathbf{A}~中有非零向量,这意味着矩阵  A ~\mathbf{A}~存在线性依赖关系,即方程组有无穷多解。寻找列空间 ColA ~\text{Col}\,\mathbf{A}~中的向量比较容易,它就是由矩阵 A ~\mathbf{A}~的列向量线性组合得到的,即 ColA ~\text{Col}\,\mathbf{A}~中的向量可以由b=x1a1+x2a2++xnan\mathbf{b}=x_1\mathbf{a}_1+ x_2\mathbf{a}_2+\dots+x_n\mathbf{a}_n表示。

4.2 判断 v ~\mathbf{v}~是否存在于 NulA ~\text{Nul}\,\mathbf{A}~ ColA ~\text{Col}\,\mathbf{A}~

判断 vNulA ~\mathbf{v}\in \text{Nul}\,\mathbf{A}~很简单。根据对 NulA ~\text{Nul}\,\mathbf{A}~的定义,若 Au=0 ~\mathbf{A}\mathbf{u}=\mathbf{0}~成立,那么 vNulA ~\mathbf{v}\in \text{Nul}\,\mathbf{A}~。判断 vColA ~\mathbf{v}\in \text{Col}\,\mathbf{A}~是否成立,就要尝试能否找到 A ~\mathbf{A}~中列向量的一种组合方式,使得 v=x1a1+x2a2++xnan ~\mathbf{v}=x_1\mathbf{a}_1+x_2\mathbf{a}_2+\dots+x_n\mathbf{a}_n~成立,这其实是在判断矩阵方程 Ax=v ~\mathbf{A}\mathbf{x}=\mathbf{v}~中是否有解,这个过程也可以通过对[Av]\begin{bmatrix}\mathbf{A} & \mathbf{v} \end{bmatrix}进行行化简确定。

开通会员解锁全部动画

上面的增广矩阵的最右列不是主元列,所以根据线性方程组的存在性定理可知,方程组 Ax=v ~\mathbf{A}\mathbf{x}=\mathbf{v}~有解,那么 vColA ~\mathbf{v}\in \text{Col}\,\mathbf{A}~成立。

4.3 整体对比 NulA ~\text{Nul}\,\mathbf{A}~ ColA ~\text{Col}\,\mathbf{A}~

表 4-1 m×n ~\quad m\times n~矩阵 A ~\mathbf{A}~NulA \text{Nul}\,\mathbf{A}~ColA \text{Col}\,\mathbf{A}~的对比

NulA \text{Nul}\,\mathbf{A}~

ColA \text{Col}\,\mathbf{A}~

 1 ~1~

NulA \text{Nul}\,\mathbf{A}~ Rn ~\mathbb{R^n}~ 的子空间。

ColA \text{Col}\,\mathbf{A}~ Rm ~\mathbb{R^m}~ 的子空间。

 2 ~2~

NulA \text{Nul}\,\mathbf{A}~隐式定义的。
ColA \text{Col}\,\mathbf{A}~显式定义的。

 3 ~3~

NulA \text{Nul}\,\mathbf{A}~中的向量,需要对[A0]\begin{bmatrix}\mathbf{A} & \mathbf{0}\end{bmatrix}做行变换。

ColA \text{Col}\,\mathbf{A}~中的向量可由 A ~\mathbf{A}~的列组合出来。

 4 ~4~

NulA \text{Nul}\,\mathbf{A}~ A ~\mathbf{A}~中元素之间没有明显关系。

 A ~\mathbf{A}~中的列是ColA \text{Col}\,\mathbf{A}~中的向量。

 5 ~5~

NulA \text{Nul}\,\mathbf{A}~中的任意向量 v ~\mathbf{v}~,满足 Av=0 ~\mathbf{A}\mathbf{v}=\mathbf{0}~

ColA \text{Col}\,\mathbf{A}~中的向量 v ~\mathbf{v}~满足方程 Ax=v ~\mathbf{A}\mathbf{x}=\mathbf{v}~相容

 6 ~6~

判断 vNulA ~\mathbf{v}\in \text{Nul}\,\mathbf{A}~是否成立,只需计算 Av ~\mathbf{A}\mathbf{v}~

判断 vColA ~\mathbf{v}\in \text{Col}\,\mathbf{A}~是否成立,需对[Av]\begin{bmatrix}\mathbf{A} & \mathbf{v}\end{bmatrix}做行变换。

 7 ~7~

NulA={0}\text{Nul}\,\mathbf{A}=\{\mathbf{0}\}当且仅当 Ax=0 ~\mathbf{A}\mathbf{x}=\mathbf{0}~仅有一个平凡解

ColA=Rm\text{Col}\mathbf{A}=\mathbb{R^m}当且仅当Ax=b\mathbf{A}\mathbf{x}=\mathbf{b}对任意bRm\mathbf{b}\in \mathbb{R^m}有解。

 8 ~8~

NulA=Rn\text{Nul}\mathbf{A}=\mathbb{R^n}当且仅当xAx\mathbf{x}\mapsto \mathbf{Ax}是一对一的。

ColA=Rm\text{Col}\mathbf{A}=\mathbb{R^m}当且仅当xAx\mathbf{x}\mapsto \mathbf{Ax} Rn ~\mathbb{R^n}~映射到 Rm ~\mathbb{R^m}~上。

5. 线性变换