线性代数(2):列空间与零空间

线性代数(2):列空间与零空间

向量空间

向量空间的概念

向量空间表示一整个空间的向量,然而,这并不意味着任意向量的集合就能被称为向量空间。所谓向量空间,必须满足空间对线性运算封闭(也即是相加和数乘)这一原则。

举个例子,R2R^2就是一个向量空间,它表示所有的二维实向量,如果你对它们做线性运算,会发现得到的结果仍然位于R2R^2空间中,反应在图像上如图所示:

image.png
图1. 二维向量空间中的两个向量

很明显,R2R^2向量空间构成了一个平面,[32],[00],[πe]\left[\begin{matrix}3 \\ 2\end{matrix}\right],\left[\begin{matrix}0\\ 0\end{matrix}\right],\left[\begin{matrix}\pi \\ e\end{matrix}\right]均在R2R^2的实数二维向量空间中,对它们做线性运算,得到的结果仍然在R2R^2空间中。这个向量空间存在的关键在于,平面上任何向量都在R2R^2向量空间中,尤其零向量。因为线性运算是“数乘”和“相加”,而任何向量乘上00或者加上其相反的反向向量得到的都是零向量,所以零向量必然存在于所有向量空间中

推广到高维空间中,则RnR^n空间中包含所有的nn维向量,每个列向量中有nn个分量,且分量均为实数。

  • 那么如果我们把xoyxoy坐标平面上的第一象限单独拿出来,这个区域DD仍然是向量空间吗?

不是的,因为该空间无法满足“线性组合仍在空间中”的要求,比如做数乘运算时,随便取个负数得到的向量就会位于第三象限,因此空间DD不能称为向量空间,也就是说,在向量空间中任取一部分,得到的结果可能不是向量空间。

  • 那么是否我们在一个向量空间中取子区域一定无法构成向量空间呢?

也不是的。例如图2,我们在二维向量空间中取一条过原点的直线,即可得到二维向量空间中的子空间,这条直线上的任意向量,进行线性运算后所得到的结果依然在这条直线上,并且过原点,包含了零向量,因此它是一个子空间。相反,如果这个直线不过原点,那么就不能称为子空间,因为它不包含零向量。

image.png
图2. 二维向量空间中的子空间

除此之外,R2R^2空间中还存在其他子空间,比如零向量本身也是一个子空间。推广至三维,我们就可以得到R3R^3空间中的子空间:(1)过原点的平面;(2)过原点的直线;(3)零向量。

  • 那么两个向量空间的并集,其结果可以构成子空间吗?

答案是否定的,假设我们有一条过原点的直线LL和一个过原点的平面PP(直线LL不在平面PP上),二者均可以视作向量空间,而两者的并集并不能满足线性运算封闭,因为在直线LL上任取一向量aa,在平面PP上任取一向量bb,两向量的和会位于直线与平面之间,脱离了两空间并集的范围。

  • 那么两个向量空间的交集,其结果可以构成子空间吗?

答案是肯定的,因为两个向量空间本身就必包含零向量,并且已经称为向量空间,其交集的条件将更为严苛,也必满足两个向量空间的条件,因此可以构成一个子空间。如上一个例子,直线LL和平面PP的交基是零向量,零向量依然为向量空间。

列空间与零空间

以上向量空间都是通过图像的形式来描述的,但是对于高维度,我们无法通过作图的方式来绘制其图像,因此需要借助矩阵来描述向量空间。

列空间

列空间是指由矩阵的列向量所构造出的空间。

例如A=[112213314415]A = \left[\begin{matrix}1 &1 &2 \\2&1&3\\ 3&1&4\\4&1&5\end{matrix}\right],矩阵的列向量均是R4R^4空间中的四维向量,所以可以说**AA的列空间是R4R^4的子空间**。在这个列空间中,除了包含了三个列向量外,还包含了它们的各种线性组合,也就是说,A的列空间是由[1234],[1111],[2345]\left[\begin{matrix}1 \\2\\ 3 \\4\end{matrix}\right],\left[\begin{matrix}1 \\1\\ 1 \\1\end{matrix}\right],\left[\begin{matrix}2 \\3\\ 4 \\5\end{matrix}\right]三个向量所张成的子空间。那么这个空间有多大呢?这就需要用Ax=bAx=b来解释了。

Ax=b的空间解释(从A的角度)

还是以A=[112213314415]A = \left[\begin{matrix}1 &1 &2 \\2&1&3\\ 3&1&4\\4&1&5\end{matrix}\right]为例,假设有一个方程Ax=bAx=b如下:

Ax=[112213314415][x1x2x3]=[b1b2b3b4]=bAx = \left[\begin{matrix}1 &1 &2 \\2&1&3\\ 3&1&4\\4&1&5\end{matrix}\right]\left[\begin{matrix}x_1 \\x_2\\ x_3 \end{matrix}\right] = \left[\begin{matrix}b_1 \\b_2\\ b_3 \\b_4\end{matrix}\right]=b

那么第一个问题是这个方程是否有解?

我们看到,我们可以把方程改写成如下形式:

Ax=[112213314415][x1x2x3]=x1[1234]+x2[1111]+x3[2345]Ax = \left[\begin{matrix}1 &1 &2 \\2&1&3\\ 3&1&4\\4&1&5\end{matrix}\right]\left[\begin{matrix}x_1 \\x_2\\ x_3 \end{matrix}\right] = x_1\left[\begin{matrix}1 \\2\\ 3 \\4\end{matrix}\right] + x_2\left[\begin{matrix}1 \\1\\ 1 \\1\end{matrix}\right] + x_3\left[\begin{matrix}2 \\3\\ 4 \\5\end{matrix}\right]

AxAx的本质就是对AA的列向量进行线性组合,或者可以认为,AxAx就代表着AA的列空间。显然,三个四维向量的线性组合是无法填满整个四维空间的,就如同两个三维向量无法张成一个三维空间一样。因此,这里的AxAx只能是R4R^4空间的部分子空间,也就是说,无法保证任意拿出一个四维向量b=[b1b2b3b4]R4b = \left[\begin{matrix}b_1 \\b_2\\ b_3 \\b_4\end{matrix}\right]\in R^4,都能找到AA列向量的一种线性组合,使Ax=bAx=b

第二个问题是什么样的bb可以使Ax=bAx=b有解?

上面介绍过,AxAx的本质就是对AA的列向量进行线性组合​,也是AA的列空间,且是R4R^4空间中的子空间,那么只要向量bb位于矩阵AA的列空间中,就可以找到一种由AA的列向量通过线性组合来构成的向量bb,也就使得Ax=bAx=b有解。

第三个问题是能否去掉AA中的一列,却不影响AA的列空间呢?

首先来观察这三个向量[1234],[1111],[2345]\left[\begin{matrix}1 \\2\\ 3 \\4\end{matrix}\right],\left[\begin{matrix}1 \\1\\ 1 \\1\end{matrix}\right],\left[\begin{matrix}2 \\3\\ 4 \\5\end{matrix}\right],显然满足等式:[2345]=[1234]+[1111]\left[\begin{matrix}2 \\3\\ 4 \\5\end{matrix}\right] = \left[\begin{matrix}1 \\2\\ 3 \\4\end{matrix}\right]+\left[\begin{matrix}1 \\1\\ 1 \\1\end{matrix}\right],也就是说第三列向量本身就是前两列向量的和,因此第三列向量对张成空间没有做任何贡献,仅仅依靠前两列就足以构成AA的列空间,我们称前两列为主列,所以去掉第三列不影响AA的列空间的构成。最后,从矩阵AA的角度,AA的列空间可以描述为R4R^4中的二维子空间

零空间

零空间是Ax=0Ax=0的所有解所构成的一个空间。

我们还是以A=[112213314415]A = \left[\begin{matrix}1 &1 &2 \\2&1&3\\ 3&1&4\\4&1&5\end{matrix}\right]为例,其零空间就是下面这个方程的解所构成的空间:

Ax=[112213314415][x1x2x3]=[0000]=0Ax = \left[\begin{matrix}1 &1 &2 \\2&1&3\\ 3&1&4\\4&1&5\end{matrix}\right]\left[\begin{matrix}x_1 \\x_2\\ x_3 \end{matrix}\right] = \left[\begin{matrix}0 \\0\\ 0 \\0\end{matrix}\right] = 0

由于零空间是解所构成的空间,因此我们要从xx的角度来看,可以看到xx有三个分量,所以其零空间是R3R^3的子空间。所以,对于m×nm×n的矩阵来说,列空间是RmR^m的子空间,零空间是RnR^n的子空间。列空间取决于列向量的维数,零空间取决于列向量的个数。

那么我们来验证一下为什么[x1x2x3]\left[\begin{matrix}x_1 \\x_2\\ x_3 \end{matrix}\right]可以构成向量空间呢?首先它满足了加法封闭:在零空间中任取两向量v,wv,w,都有Av=Aw=0Av=Aw=0,显然A(v+w)=0A(v+w)=0,所以向量(v+w)(v+w)也属于零空间。其次它满足了数乘封闭:还是在零空间中任取一向量vvAv=0Av=0,则cAv=0cAv=0。由于矩阵AA和常数cc的位置可以交换,所以A(cv)=0A(cv)=0,所以向量cvcv也在零空间中。

回到我们的示例,我们知道矩阵AA中的三个向量[1234],[1111],[2345]\left[\begin{matrix}1 \\2\\ 3 \\4\end{matrix}\right],\left[\begin{matrix}1 \\1\\ 1 \\1\end{matrix}\right],\left[\begin{matrix}2 \\3\\ 4 \\5\end{matrix}\right],显然满足等式:[2345]=[1234]+[1111]\left[\begin{matrix}2 \\3\\ 4 \\5\end{matrix}\right] = \left[\begin{matrix}1 \\2\\ 3 \\4\end{matrix}\right]+\left[\begin{matrix}1 \\1\\ 1 \\1\end{matrix}\right],因此我们可以直接写出Ax=0Ax=0的一个解:[111]\left[\begin{matrix}1 \\1 \\-1\end{matrix}\right],所以其零空间即为c[111]c\left[\begin{matrix}1 \\1 \\-1\end{matrix}\right]cc为任意常数),反应在图像上,就是R3R^3中的一条过原点的直线。

Ax=b的空间解释(从x的角度)

如果将构造零空间的方程中等号右侧变为任意向量的话,其解xx还能构成向量空间吗?

Ax=[112213314415][x1x2x3]=[1234]=bAx = \left[\begin{matrix}1 &1 &2 \\2&1&3\\ 3&1&4\\4&1&5\end{matrix}\right]\left[\begin{matrix}x_1 \\x_2\\ x_3 \end{matrix}\right] = \left[\begin{matrix}1 \\2\\ 3 \\4\end{matrix}\right] = b

显然不是。因为如果我们将[x1x2x3]=[000]\left[\begin{matrix}x_1 \\x_2\\ x_3 \end{matrix}\right] = \left[\begin{matrix}0 \\0\\ 0 \end{matrix}\right]代入方程,会发现零向量并不是方程的解,也就是说解集中没有零向量,也就无法构成向量空间,反映在图像上,这里所有的解构成了一个不过原点的平面。这也告诉我们,想从xx的角度来研究Ax=bAx=b,只有当bb是零向量时,xx的解集才能构成空间(零空间),其他情况中连零向量都不在解集中,也就无法构成向量空间了。所有,要么从AA的列向量入手,已知列向量,根据其线性组合构成子空间,要么从方程Ax=0Ax=0入手,从满足条件的xx的解集来构造子空间。