在前面的内容中,我们在内容介绍的过程中多次提到了空间的概念,例如空间的映射、空间的压缩、张成空间等等。当然大家凭借感性的认识和一些印象,是可以对空间建立理解的,但是这一讲里,我们想更专业、更系统地来树立起向量空间的认知,而不是一个模糊的感觉。

向量空间

最常见的向量空间:Rn

首先直观地看:前面我们反复见到的Rn就是一种向量空间,比如:R1、R2、R3、R4等等,Rn空间由所有含有 n 个成分的列向量构成。比如我们 R3空间就包含了所有含有 3 个成分的列向量封闭小世界:向量空间及其子空间 - 图1因此 R3空间也称为是 3 维空间.

关于向量空间的定义

其实向量空间不仅仅局限于 Rn,当然我们这里只讨论狭义上的向量空间(不讨论广义的例如矩阵、函数空间等或者扩展到复数域上),那么针对一个向量集合 V,如果任取 V 中的两个向量 u 和 v,只要满足 u+v 仍然存在于 V 中,同时任取标量 c,只要满足 cu 仍然在 V 中,那么这个集合 V 就构成一个向量空间。

延伸拓展到子空间

这个描述方法和最开始说的 Rn向量空间有什么区别?这个区别可就太大了,我们举 R3空间来说明,向量空间 R3必须包含所有的三维向量封闭小世界:向量空间及其子空间 - 图2,但是经过空间中原点的平面,其组成成分仍然是三维向量,但是它显然不包含所有的三维向量了。这个平面是一个向量空间吗?我们对照定义来看,由于这个平面可以由平面上两个不共线的向量 u 和 v 的线性组合进行表示:cu+dv 可以表示平面上的任意向量,从向量加法的角度考量,封闭小世界:向量空间及其子空间 - 图3,可以看出仍然在平面上。标量乘法呢?就更简单了,封闭小世界:向量空间及其子空间 - 图4同样也在这个平面上。因此穿过零点的平面也是一个向量空间,而且我们引出了一个新的概念,这个穿过 R3空间零点的平面是 R3的子空间。
说到子空间,其实我们可以用子集与集合的关系来类比子空间和向量空间的关系。如果一个向量空间 U,它的子集 V 也是一个向量空间(满足向量加法和标量乘法的性质要求),那么 V 是 U 的子空间。
因此一个 R3空间的子空间有以下四种形式:R3空间自身、R3空间中过原点的平面、R3空间中过原点的直线、零向量自身。
这里我们必须强调一个事实:一个向量空间的任意子空间都是必须包含 0 向量。很简单,因为子空间也是向量空间,向量空间必须满足标量乘法的封闭性,即空间中的向量 v 乘以一个标量 c,其结果 cv 仍然必须在该空间中,当 c=0 时,这个结果就是 0 向量,因此任意一个子空间都必须包含 0 向量。
因此我们应该这么定义向量空间:一个向量空间是一个满足上述条件的向量集和向量加法、实数标量乘法规则的总和。

矩阵里的四个重要子空间

我们来看一个 m×n 的矩阵 A,看看这个矩阵中所蕴含的四个非常重要的子空间:列空间、零空间、行空间和左零空间。

列空间

我们在前面介绍过列空间的概念,对于这个矩阵 A 而言,它包含了 n 个 m 维的列向量,那么 A 的列空间就包含所有这 n 个 m 维列向量的线性组合。由于各列都在 Rm空间中,并且列空间中任意两个向量的和,以及任意向量与任意标量的数量积,依然都可以表示为列向量的线性组合的形式,意味着矩阵 A 的列空间 C(A) 是一个向量空间,并且是 Rm空间的子空间。
这里我就不再对列空间进行具体的举例了,相信大家在前面已经反复熟悉、了解了。我这里只提一下,列空间对于线性方程组的重要意义。
对于一个线性方程组可以写成矩阵乘法的形式 Ax=b,只有当向量 b (也就是解向量)可以写成矩阵 A 的各列的线性组合的形式时,意味着方程组有解。即可以将 b 写作封闭小世界:向量空间及其子空间 - 图5的形式,自然而然就有解。那此时换句话说对于线性方程组Ax=b,当且仅当 b 在矩阵 A 的列空间中时,方程才有解。

零空间

我们在前面也谈到过零空间的概念,同样对于一个 m×n 的矩阵 A 而言,所有满足 Ax=0 的向量 x 的集合就称之为矩阵 A 的零空间,如果矩阵 A 的各列线性无关,则 x 就只有零向量这个唯一解,如果 A 的各列线性相关,那么 x 就有非零解。
我们同样关注一下,零空间是否满足向量空间的定义,首先是向量加法这一条,如果 x1和 x2都是零空间中的向量,即有:Ax1=0,Ax2=0 成立,那很显然地有封闭小世界:向量空间及其子空间 - 图6因此向量的和也在零空间中,标量积就更简单了:封闭小世界:向量空间及其子空间 - 图7,因此标量积也在零空间中,所以依照定义来看,零空间也是一个向量空间,对于一个 m×n 的矩阵而言,它的零空间里的向量是 n 维的,因此零空间是 Rn的子空间。

行空间

出于直觉我们会想,矩阵各列可以张成列空间,那么是不是也应该对应的有一个行空间呢?的确有,对于 m×n 的矩阵 A,它的行空间就是由矩阵各行的向量所张成的空间,那么我们换个角度来看 A 的行向量就是转置后AT的列向量。因此我们不难发现,矩阵 A 的行空间就是转置后AT的列空间,记作 C(AT),A 的行向量有 n 个成分,因此行空间是Rn的子空间,至于说向量空间成立的证明就不再叙说了。

左零空间

左零空间读起来有些拗口,我们仍旧从转置矩阵的角度切入去理解,就会比较容易。对于 m×n 的矩阵 A,它的左零空间就是转置矩阵 AT的零空间,即满足:ATx=0的所有向量的集合,我们将其记作 N(AT)。
左零空间的相关性质也不难得到,它是 Rm空间的子空间。

秩:连接起四个子空间

从上面的一系列定义我们可以看出,m×n 的矩阵 A 派生出了这四个子空间,那么这四个子空间之间应该包含着某种关联?没错,空间的维数关系就是它们之间的重要关联。

列空间与零空间的关联

首先说说列空间,利用我们之前讨论过的结论,该矩阵 A 的列空间 C(A) 的维度就是矩阵 A 的秩 r。
再说说零空间,从几何意义上讲,零空间就是原空间中通过矩阵 A 映射到目标空间原点的向量空间,这个原点依据定义也必须在列空间中。在这个 m×n 的矩阵映射作用下,整个零空间的维度 x 被压缩成了 0 (即一个点的维度),那么我们可以引申出,原空间中的 x 维区域变成了列空间中的一个 0 维点,因此经过矩阵的线性映射,前后的空间维数之差也为 x,因为由 A 进行变换的原空间是 n 维的,而映射后的列空间是 r 维的,两个空间的维数之差 n-r 就是空间压缩的维数,依据我们所讲,n-r 也就是零空间 N(A) 的维数。

列空间与行空间的关联

而在一个矩阵中,我们其实不难发现,线性无关的行向量的个数其实是和线性无关的列向量的个数是相等的。因此,我们可以得出结论:行空间 C(AT)的维数也是矩阵的 r。

行空间与左零空间的关联

其实我们从几个空间的定义不难发现矩阵 A 的行空间与左零空间就对应着 AT的列空间与零空间。C(AT)的维度是 r,而矩阵AT对应的映射前的原空间是 m,那么左零空间 N(AT)的维度就是 m-r。
从上面的分析我们就不难看出,m×n 的矩阵 A,它的秩 r,就串起了它的四个子空间的维数关系。

实际的空间举例

我们来看一个具体的矩阵
封闭小世界:向量空间及其子空间 - 图8
来验证一下它的四个子空间,这个矩阵看上去有点怪怪的,不过正好说明问题。
首先我们寻找 A 的列空间,虽然 A 的列个数为 5,但它们显然不是全是列空间的基向量,因为它们线性相关,我们去寻找其中线性无关的向量。线性无关的向量的个数为 2,因此矩阵的秩 r=2,列空间 C(A) 的维数为 2,我们任选两个线性无关的向量:封闭小世界:向量空间及其子空间 - 图9,它们的线性组合就构成了矩阵 A 的列空间
零空间,依据定义找到 Ax=0 里线性无关的所有的解向量:封闭小世界:向量空间及其子空间 - 图10从子空间的维数关系我们知道,零空间的维数是 m-r=5-2=3,因此我们需要试着去找三个线性无关的向量:
封闭小世界:向量空间及其子空间 - 图11
它们构成了零空间的一组基,因此零空间是它们的线性组合:
封闭小世界:向量空间及其子空间 - 图12
行空间很简单,矩阵 A 有两个线性无关的行,就是第一行和第二行,它们构成行空间的基。因此行空间的维度也是 2,行空间表示为:封闭小世界:向量空间及其子空间 - 图13
左零空间,按照定义,就是转置矩阵封闭小世界:向量空间及其子空间 - 图14的零空间:封闭小世界:向量空间及其子空间 - 图15从子空间的维数定理分析可以得出左零空间的维度为 m-r=3-2=1,因此左零空间的维度为 1,构成基的向量个数为 1,我们可以选取封闭小世界:向量空间及其子空间 - 图16作为左零空间的基,左零空间可以表示为:封闭小世界:向量空间及其子空间 - 图17

小结

从向量空间到子空间,然后再派生出某个具体矩阵 A 的四个子空间:列空间、零空间、行空间和左零空间。这是我们关于矩阵空间概念的一条完成知识线索,而贯穿这条线索的关键环节就是空间的维度和矩阵的秩,这是空间概念的重中之重,深刻地理解它,相信能为后续内容打下非常好的基础。