线性代数10-四个基本子空间
Linear Algebra-四个基本子空间-10
一、知识概要
在之前的学习中,我们已经认识了矩阵的列空间和零空间这两个重要概念。但其实对于一个矩阵来说,它所定义的空间远不止这两个。今天我们就来完整介绍线性代数中非常重要的四个基本子空间,把空间的概念梳理清楚,为后续更深入的讨论打好基础。
二、四个基本空间介绍
给你一个任意的 矩阵 ,围绕它一共会产生四个最基础的子空间,我们一个一个来看:
列空间 :顾名思义,就是由矩阵 的所有列向量进行线性组合得到的空间。因为 矩阵 的每个列向量都有 个分量,所以列向量本身属于 ,因此列空间 是 的一个子空间。
零空间 :零空间是由所有满足 的解 构成的空间。这里的 实际上就是对 的列向量进行线性组合的系数,而 一共有 个列向量,所以 本身是 维向量,因此零空间是 的一个子空间。
行空间 :行空间就是由矩阵 的所有行向量进行线性组合得到的子空间。换个角度看, 的行就是 的列,所以行空间也可以理解为 转置的列空间,记作 。既然 的每个行向量有 个分量,都属于 ,所以行空间自然就是 的子空间了。
左零空间 :左零空间其实就是 的零空间。因为 是一个 的矩阵,它有 个列向量,所以左零空间是 的一个子空间。
这个名字听起来有点奇怪,为什么叫”左零空间”呢?我们来看看它的方程形式:,如果我们对这个等式两边同时转置,就得到 。看到了吗?这里 是从左边乘矩阵 ,结果是零向量,所以我们给它起了这个特别的名字——左零空间。
让我们用一张图来直观感受一下四个基本子空间的位置关系:
graph LR
Rm[R<sup>m</sup>] --> C[列空间 C(A)]
Rm --> L[左零空间 N(A<sup>T</sup>)]
Rn[R<sup>n</sup>] --> R[行空间 C(A<sup>T</sup>)]
Rn --> N[零空间 N(A)]
style C fill:#f9f,stroke:#333,stroke-width:2px
style L fill:#9f9,stroke:#333,stroke-width:2px
style R fill:#ff9,stroke:#333,stroke-width:2px
style N fill:#9ff,stroke:#333,stroke-width:2px
2.1 四个基本空间的维数与基
现在我们知道四个基本空间在哪里了,接下来自然要问:每个空间的维数是多少?又该如何找到它们的一组基呢?
我们还是以 的矩阵 为例,假设它的秩是 ,我们一个一个来看:
列空间:我们知道矩阵 的秩为 ,意味着消元后会留下 个主列,这 个主列本身就是列空间 的一组基。因为基里有 个线性无关的向量,所以列空间的维数就是 。
零空间:当矩阵 的秩为 时,自由列的数量就是 。每一个自由列对应 中的一个自由变元,我们给每个自由变元依次赋值为1,其他自由变元赋值为0,就能得到 个线性无关的解向量,它们正好构成零空间的一组基。因此零空间的维数就是 。
行空间:既然行空间就是 的列空间,那我们自然会想到,可以把 转置一下,然后按照求列空间的方法来处理。不过其实不用这么麻烦,直接对 做行变换就可以得到答案,行空间的维数同样等于矩阵的秩 。
我们来看一个具体的例子:设
对 进行行变换化简,最终得到行最简形矩阵:
可以看到, 只有两行线性无关,所以秩为 。一个很重要的结论是:行变换不会改变矩阵的行空间!原来矩阵 的行空间和行最简形 的行空间其实是同一个空间。所以当我们把 化简为行最简形 后,直接取前 个行向量,它们就是原矩阵行空间的一组基。在这个例子中, 的前两行就是行空间的基,维数是 ,正好等于秩 。
左零空间:左零空间满足 ,转置后就是我们刚才说的 。同样根据秩的关系, 是 的矩阵,它的秩还是 ,所以左零空间的维数就是 。
那么具体怎么找左零空间的基呢?我们还是接着上面那个例子来说明:
刚才我们已经对 做了行变换得到了行最简形 ,整个行变换过程可以用一个消元矩阵 来表示,也就是说:
现在我们观察一下, 的最后一行是全零行,这说明什么呢?说明消元矩阵 的这一行,左乘矩阵 得到了零向量!我们把 的第三行抽出来:,验证一下:
这不正好满足 吗!所以这个行向量 就是左零空间的一组基,向量个数正好是 个,完美符合我们对维数的预期。
总结一下寻找左零空间基的方法:我们构造增广矩阵 ,然后对它做初等行变换,得到 ,其中 就是那个消元矩阵。接着我们看 中有多少个零行,每个零行就对应着 中的一个行向量,这些行向量正好构成左零空间的一组基。本质上,我们就是在寻找那些让 的行组合等于零的系数,而消元过程正好帮我们找到了这些系数。
2.2 四个基本空间图像
到这里,我们已经把四个基本子空间的性质都梳理完了,让我们用一个表格来总结一下,方便大家查阅记忆:
| 子空间 | 所属空间 | 维数 |
|---|---|---|
| 列空间 | 的子空间 | |
| 行空间 | 的子空间 | |
| 零空间 | 的子空间 | |
| 左零空间 | 的子空间 |
从这个表格中我们能看到一个很有意思的对称性:行空间和列空间的维数都是秩 ,零空间和左零空间分别补满了整个空间的维数——,,非常工整。
三、矩阵空间
最后我们来拓展一下思路:线性空间的元素一定必须是传统意义上的向量吗?答案其实是否定的。只要一个集合对线性运算封闭,并且满足线性空间的八条公理,它就可以被看做一个线性空间。
比如说,所有的 矩阵,它们本身就满足线性空间的所有运算律——两个矩阵相加还是一个 矩阵,一个矩阵乘上一个数还是一个 矩阵,完全满足封闭性和八条公理。所以我们完全可以把所有的 矩阵全体看做一个线性空间,这个空间里的”向量”就是矩阵本身。这就是我们说的矩阵空间。
那么矩阵空间有没有常见的子空间呢?当然有:
- 所有上三角矩阵构成一个子空间;
- 所有对称矩阵也构成一个子空间;
- 所有对角矩阵同样构成一个子空间。
而且,上三角矩阵空间和对称矩阵空间的交集,正好就是对角矩阵空间(我们记为 )。那对角矩阵空间的维数是多少呢?对于3阶对角矩阵来说,只有对角线上三个位置可以放非零元素,所以维数就是3。我们也很容易写出它的一组基:
这三个对角矩阵线性无关,任何一个对角矩阵都可以用它们线性表示,完美满足基的定义。
其实矩阵空间这个概念,看似只是一个有趣的推广,实际上它在很多地方都有用——比如我们后面要讲的微分方程,某些微分方程的解空间实际上就是由函数构成的线性空间,思路和这里完全一样。线性代数的强大之处就在于此,它抽象出来的空间概念,可以应用到完全不同的问题上。
四、学习感悟
本节主要是概念的渗透,介绍了四个基本空间,其中左零空间是新内容,即行向量的线性组合得到零向量,需要重点理解。2.2 中的表格在后续学习中会经常用到。此外,还引出了向量空间的概念,下节会详细介绍。
从笔者的角度来看,四个基本子空间其实已经把一个矩阵的所有核心信息都概括了。行空间和零空间是定义域 上的一对互补子空间,列空间和左零空间是值域 上的一对互补子空间——这个结构其实非常对称,也非常优美。后续我们讲到正交、逆矩阵甚至SVD分解的时候,都会反复用到这四个基本子空间的性质,希望大家一定要把这个表格记熟。



