type
status
date
slug
summary
tags
category
icon
password

向量空间(Vector Space)

这一部分介绍向量空间的形式化定义和常见的向量空间。
形式化定义部分会涉及一些抽象代数的知识,如果读者没有相关的知识背景,那么目前需要知道的就是是一个向量空间,并且向量空间内有向量加法和标量乘法这两种运算。

形式化定义

给定域和集合,向量空间具有以下两种运算:
  • 向量加法:
  • 标量乘法 :
向量加法运算具有以下性质:
  • 单位元存在:
  • 逆元存在
  • 结合律
  • 交换律
标量乘法具有以下性质:
  • 单位元存在:设是域的乘法单位元,
  • 向量加法分配律:
  • 域加法分配律:
    • 注意域加法和向量加法的区别
  • 域乘法:
若一个代数结构满足以上性质,则称集合为”定义在域上的向量空间“,集合中的元素称为向量,域中的元素称为标量,域被称为标量母空间或是标量域。

常见的向量空间

常见的向量空间有 ,其中 是实数集 元笛卡尔积,是复数集元笛卡尔积。
注意其实向量加法和标量乘法运算的定义隐含了封闭性,因此如果说向量空间 是定义在复数域上的向量空间,那么这个说法显然是错误的,因为如果用一个纯虚数对 中的某个向量进行标量乘法,那么结果显然并不在 中,不满足标量乘法的定义。一般我们默认向量空间 是定义在实数域 上的向量空间。

向量子空间(Linear Subspace)

是定义在域上的向量空间,的一个子集,则是一个子空间当且仅当以下满足以下三个条件:
  • 零向量在中(这里的零是域 的加法单位元)
  • 向量加法封闭:
  • 标量乘法封闭:
以上三个条件可以总结成:子空间中所有向量的所有线性组合仍在子空间中
举个子空间的例子,向量空间是它自己的(平凡)子空间,中过零点的任意平面是一个子空间、过零点的任意一条直线也是子空间、零点也是一个子空间。但是,三维空间中过零点的平面只是三维空间中的一个二维子空间,千万不要理解成是!!!
 

矩阵的四大基本子空间

列空间(Column Space)

设有一个 矩阵 ,矩阵 的列空间是由的列向量张成(span)的 上的子空间,记为 C()。
 
怎么理解 span 这个词呢,我们可以简单理解为用所有列向量的所有线性组合去“填满”一个子空间。由于矩阵的列向量一共有 个分量,显然矩阵的列空间是 的子空间。
 
了解矩阵的列空间有什么意义呢?在矩阵乘法的意义这个帖子里介绍过用列的角度看待矩阵和向量的乘法:
👀
假设给定列向量 ,给定一个 矩阵 ,记中列向量分别为 ,记
从列的角度来看,我们可以把 看作 中列向量的线性组合:
上面是给定一个向量,求,那么如果我们要反过来,已知矩阵,求满足方程的向量呢?那么就要讨论两种情况:
  1. 是矩阵的列向量的某个线性组合,或者换句话说,在矩阵的列空间中。这个时候我们一定能找到方程的解,且的分量就是线性组合的对应系数。
  1. 不在矩阵的列空间中,这种情况下方程是无解的,就像你不可能在x轴上找到一个y方向分量不为0的点一样。进一步地我们可以思考,在什么情况下会存在一个向量不在的列空间中呢?显然是当的列空间不等于啦(等价地说,当A的列空间为 时, ),那什么情况下才会有 呢?那就是当矩阵行满秩的时候。在秩与零空间的部分,我们将会解答秩是什么。
于是我们可以总结出以下两点:
1.方程有解 在矩阵的列空间中 2.矩阵行满秩 矩阵的列空间是 方程必定有解

秩(Rank)与零空间(Null Space)

在讲这部分之前我有想过要不要开一篇文章单独讲秩,但后面还是觉得把秩和四大基本子空间放在一起讲比较合适。
 
某位不知名的斌头老师曾经说过一个知名暴论:要考察一个学生线性代数学得怎么样,可以看ta能说出几种秩的等价定义。虽然这是暴论(?),但秩确实在线性代数中为我们的理解带来很大作用。
 
首先放出一个结论:矩阵的秩=主元的数量=行空间/列空间的维度=最大线性无关组的数量=(n-零空间的维度)=(m-左零空间的维度)=……
 
看上去好像有点复杂,我们一步一步来,首先需要知道秩等于主元的数量。行秩指的是有主元的行的数量,列秩指的是有主元的列的数量。
 
我们一般会在什么时候知道主元的数量呢?没错,就是在做万恶的消元的时候!由于一行一列内最多有一个主元,我们知道有主元的行的数量等于有主元的列的数量,所以有行秩等于列秩
 
那么之前说的行满秩意思就是主元的数量等于行数,列满秩指的是主元的数量等于列数;而当我们说一个矩阵“满秩”,默认该矩阵是个方阵,且行列都满秩。
 
这里插播一则个人笑话,就是我在研究生复试面试的时候被问到秩的定义,当时脑子里第一反应就是“主元的数量”,然后面试的老师说这不是形式化定义,我还顶了句嘴说这是 GSLA 里的定义,然后又回答说秩等于行空间和列空间的维度;那位老师继续引导我行空间和列空间的维度等价于什么,我才回答出是最大线性无关组的数量呜呜呜呜呜呜呜。
 
接下来介绍矩阵的零空间:矩阵A的零空间为所有满足 的解 。我们记矩阵A的零空间为N(A)
 
听起来是不是很简单!!我们来说明一下为什么零空间是子空间:
 
  1. 零向量在子空间中:这是显然的,零向量是满足 的一个平凡解。
  1. 封闭性: 。注意上面所有“0”都指的是零向量,不是标量零。可以看出零空间内的向量进行线性组合后仍在零空间内,满足封闭性。
 
在理解零空间是一个子空间后,很自然地,我们会讨论这个子空间的维度:在什么情况下 会有非零解,或者换句话说,在什么情况下会有N(A)的维度不为零?如果一个矩阵的列向量线性相关,那么会影响 的解吗?
 
当然是会的!举个最简单的例子,假设有一个 的方阵A,A中的第一列等于第二列和第三列的和,那么就会有以下公式成立:
翻译一下上面这个矩阵和向量的乘法是什么意思:减一个第一列,再加上第二列和第三列;由于第二列加第三列就是第一列,所以结果等于加一个第一列后减一个第一列,也就是零向量。
 
然后我们就能很开心地发现我们找到了一个 的非平凡解!!
 
那我们怎么知道矩阵的列是否线性相关呢?这时候就和之前介绍的秩梦幻联动上了!
 
如果矩阵的列线性相关,那么把矩阵消元为行最简型(Row Reduced Echelon Form, rref)之后,我们把 rref 矩阵中有主元的列称为主元列,没有主元的列称为自由列,自由列就是原矩阵中可以用主元列的线性组合表示出来的列。又因为有自由列存在,我们知道这个矩阵一定列不满秩。
 
举个例子,假设有这样的一个矩阵B,矩阵B化为rref之后长这样:
显然B的第一列是主元列,而第二第三列都是自由列,即第二第三列都可以用第一列的线性组合来表示。这个矩阵列不满秩,于是我们可以知道它的零空间内不止有零向量,那么零空间的维度是多少呢?又怎么去表示矩阵的零空间呢?
 
首先我们回答第一个问题:零空间的维度等于自由列的数量。
 
这个问题很好理解:对每一个自由列,它可以被表示为主元列的线性组合,然后我们把这个线性组合移项一下,就得到了零空间内的一个向量。比如说对于矩阵B的第二列,它是一个自由列,且它是第一列的两倍:
所以在计算的时候我们可以将其中一个自由列的对应的未知量设为1,其他自由列对应的未知量设为0(因为我们不需要其他自由列参与这个线性组合),反代求出主元列如何线性组合才能得到这个自由列,这就是 的一个解,我们称之“special solution”。
 
对于不同自由列对应的“special solution”,因为我们把其他自由列上的位置都设成了0,读者可以自己动笔验证这些“special solution”实际上是线性无关的(因为在该自由列对应的那个分量上,没办法用一堆的0加出一个-1,来消掉那个1)。
 
综上,零空间的维度等于自由列的数量。
 
然后我们来看怎么表示矩阵B的零空间,首先让我们来算一下关于第三列的“special solution”:将第三个未知数设成1,第二个未知数设成0,反代求得
那么现在我们求出了这些线性无关的 special solutions,可以用它们来表示矩阵B的零空间了!!
最后,让我们来总结一下:
1.矩阵的秩=主元数=行空间/列空间的维度
2.行秩=列秩
3. 有非零解 A的列线性相关 A有自由列 A列不满秩
4.零空间维度=自由列的数量=n-rank
 

行空间(Row Space)

其实我曾在一开始看 GSLA 第三章有几个疑惑:为什么列空间后面不是接着讲行空间,而是接着讲零空间?零空间有什么用,仅仅是告诉我们方程 有没有非平凡解吗?看到后面其实就会知道,整个四大基本子空间不是孤立于线性代数的,从某种意义上四大基本子空间是为解线性方程组所服务的。
 
接下来我们将会把重点放在行空间、零空间,与线性方程组 的求解上。
 
我们首先来看行空间的定义:设有一个 矩阵 ,矩阵 的行空间是由的行向量张成(span)的 上的子空间,记为 C()。
 
 
BS Chap 2: Encryption矩阵乘法的意义
Loading...