向量空间
向量空间的概念
向量空间表示一整个空间的向量,然而,这并不意味着任意向量的集合就能被称为向量空间。所谓向量空间,必须满足空间对线性运算封闭(也即是相加和数乘)这一原则。
举个例子,R2就是一个向量空间,它表示所有的二维实向量,如果你对它们做线性运算,会发现得到的结果仍然位于R2空间中,反应在图像上如图所示:
图1. 二维向量空间中的两个向量
很明显,R2向量空间构成了一个平面,[32],[00],[πe]均在R2的实数二维向量空间中,对它们做线性运算,得到的结果仍然在R2空间中。这个向量空间存在的关键在于,平面上任何向量都在R2向量空间中,尤其零向量。因为线性运算是“数乘”和“相加”,而任何向量乘上0或者加上其相反的反向向量得到的都是零向量,所以零向量必然存在于所有向量空间中。
推广到高维空间中,则Rn空间中包含所有的n维向量,每个列向量中有n个分量,且分量均为实数。
- 那么如果我们把xoy坐标平面上的第一象限单独拿出来,这个区域D仍然是向量空间吗?
不是的,因为该空间无法满足“线性组合仍在空间中”的要求,比如做数乘运算时,随便取个负数得到的向量就会位于第三象限,因此空间D不能称为向量空间,也就是说,在向量空间中任取一部分,得到的结果可能不是向量空间。
- 那么是否我们在一个向量空间中取子区域一定无法构成向量空间呢?
也不是的。例如图2,我们在二维向量空间中取一条过原点的直线,即可得到二维向量空间中的子空间,这条直线上的任意向量,进行线性运算后所得到的结果依然在这条直线上,并且过原点,包含了零向量,因此它是一个子空间。相反,如果这个直线不过原点,那么就不能称为子空间,因为它不包含零向量。
图2. 二维向量空间中的子空间
除此之外,R2空间中还存在其他子空间,比如零向量本身也是一个子空间。推广至三维,我们就可以得到R3空间中的子空间:(1)过原点的平面;(2)过原点的直线;(3)零向量。
答案是否定的,假设我们有一条过原点的直线L和一个过原点的平面P(直线L不在平面P上),二者均可以视作向量空间,而两者的并集并不能满足线性运算封闭,因为在直线L上任取一向量a,在平面P上任取一向量b,两向量的和会位于直线与平面之间,脱离了两空间并集的范围。
答案是肯定的,因为两个向量空间本身就必包含零向量,并且已经称为向量空间,其交集的条件将更为严苛,也必满足两个向量空间的条件,因此可以构成一个子空间。如上一个例子,直线L和平面P的交基是零向量,零向量依然为向量空间。
列空间与零空间
以上向量空间都是通过图像的形式来描述的,但是对于高维度,我们无法通过作图的方式来绘制其图像,因此需要借助矩阵来描述向量空间。
列空间
列空间是指由矩阵的列向量所构造出的空间。
例如A=⎣⎢⎢⎡123411112345⎦⎥⎥⎤,矩阵的列向量均是R4空间中的四维向量,所以可以说**A的列空间是R4的子空间**。在这个列空间中,除了包含了三个列向量外,还包含了它们的各种线性组合,也就是说,A的列空间是由⎣⎢⎢⎡1234⎦⎥⎥⎤,⎣⎢⎢⎡1111⎦⎥⎥⎤,⎣⎢⎢⎡2345⎦⎥⎥⎤三个向量所张成的子空间。那么这个空间有多大呢?这就需要用Ax=b来解释了。
Ax=b的空间解释(从A的角度)
还是以A=⎣⎢⎢⎡123411112345⎦⎥⎥⎤为例,假设有一个方程Ax=b如下:
Ax=⎣⎢⎢⎡123411112345⎦⎥⎥⎤⎣⎡x1x2x3⎦⎤=⎣⎢⎢⎡b1b2b3b4⎦⎥⎥⎤=b
那么第一个问题是这个方程是否有解?
我们看到,我们可以把方程改写成如下形式:
Ax=⎣⎢⎢⎡123411112345⎦⎥⎥⎤⎣⎡x1x2x3⎦⎤=x1⎣⎢⎢⎡1234⎦⎥⎥⎤+x2⎣⎢⎢⎡1111⎦⎥⎥⎤+x3⎣⎢⎢⎡2345⎦⎥⎥⎤
Ax的本质就是对A的列向量进行线性组合,或者可以认为,Ax就代表着A的列空间。显然,三个四维向量的线性组合是无法填满整个四维空间的,就如同两个三维向量无法张成一个三维空间一样。因此,这里的Ax只能是R4空间的部分子空间,也就是说,无法保证任意拿出一个四维向量b=⎣⎢⎢⎡b1b2b3b4⎦⎥⎥⎤∈R4,都能找到A列向量的一种线性组合,使Ax=b。
第二个问题是什么样的b可以使Ax=b有解?
上面介绍过,Ax的本质就是对A的列向量进行线性组合,也是A的列空间,且是R4空间中的子空间,那么只要向量b位于矩阵A的列空间中,就可以找到一种由A的列向量通过线性组合来构成的向量b,也就使得Ax=b有解。
第三个问题是能否去掉A中的一列,却不影响A的列空间呢?
首先来观察这三个向量⎣⎢⎢⎡1234⎦⎥⎥⎤,⎣⎢⎢⎡1111⎦⎥⎥⎤,⎣⎢⎢⎡2345⎦⎥⎥⎤,显然满足等式:⎣⎢⎢⎡2345⎦⎥⎥⎤=⎣⎢⎢⎡1234⎦⎥⎥⎤+⎣⎢⎢⎡1111⎦⎥⎥⎤,也就是说第三列向量本身就是前两列向量的和,因此第三列向量对张成空间没有做任何贡献,仅仅依靠前两列就足以构成A的列空间,我们称前两列为主列,所以去掉第三列不影响A的列空间的构成。最后,从矩阵A的角度,A的列空间可以描述为R4中的二维子空间。
零空间
零空间是Ax=0的所有解所构成的一个空间。
我们还是以A=⎣⎢⎢⎡123411112345⎦⎥⎥⎤为例,其零空间就是下面这个方程的解所构成的空间:
Ax=⎣⎢⎢⎡123411112345⎦⎥⎥⎤⎣⎡x1x2x3⎦⎤=⎣⎢⎢⎡0000⎦⎥⎥⎤=0
由于零空间是解所构成的空间,因此我们要从x的角度来看,可以看到x有三个分量,所以其零空间是R3的子空间。所以,对于m×n的矩阵来说,列空间是Rm的子空间,零空间是Rn的子空间。列空间取决于列向量的维数,零空间取决于列向量的个数。
那么我们来验证一下为什么⎣⎡x1x2x3⎦⎤可以构成向量空间呢?首先它满足了加法封闭:在零空间中任取两向量v,w,都有Av=Aw=0,显然A(v+w)=0,所以向量(v+w)也属于零空间。其次它满足了数乘封闭:还是在零空间中任取一向量v,Av=0,则cAv=0。由于矩阵A和常数c的位置可以交换,所以A(cv)=0,所以向量cv也在零空间中。
回到我们的示例,我们知道矩阵A中的三个向量⎣⎢⎢⎡1234⎦⎥⎥⎤,⎣⎢⎢⎡1111⎦⎥⎥⎤,⎣⎢⎢⎡2345⎦⎥⎥⎤,显然满足等式:⎣⎢⎢⎡2345⎦⎥⎥⎤=⎣⎢⎢⎡1234⎦⎥⎥⎤+⎣⎢⎢⎡1111⎦⎥⎥⎤,因此我们可以直接写出Ax=0的一个解:⎣⎡11−1⎦⎤,所以其零空间即为c⎣⎡11−1⎦⎤(c为任意常数),反应在图像上,就是R3中的一条过原点的直线。
Ax=b的空间解释(从x的角度)
如果将构造零空间的方程中等号右侧变为任意向量的话,其解x还能构成向量空间吗?
Ax=⎣⎢⎢⎡123411112345⎦⎥⎥⎤⎣⎡x1x2x3⎦⎤=⎣⎢⎢⎡1234⎦⎥⎥⎤=b
显然不是。因为如果我们将⎣⎡x1x2x3⎦⎤=⎣⎡000⎦⎤代入方程,会发现零向量并不是方程的解,也就是说解集中没有零向量,也就无法构成向量空间,反映在图像上,这里所有的解构成了一个不过原点的平面。这也告诉我们,想从x的角度来研究Ax=b,只有当b是零向量时,x的解集才能构成空间(零空间),其他情况中连零向量都不在解集中,也就无法构成向量空间了。所有,要么从A的列向量入手,已知列向量,根据其线性组合构成子空间,要么从方程Ax=0入手,从满足条件的x的解集来构造子空间。