《线性代数》6. 线性相关、线性无关与生成空间
作者:@古明地盆
喜欢这篇文章的话,就点个关注吧,或者关注一下我的公众号也可以,会持续分享高质量Python文章,以及其它相关内容。:点击查看公众号
线性组合
回忆一下向量的两个最基本的运算:
- 向量加法:
- 向量乘法:
这两个基本运算构建了线性代数中最重要的一个概念:线性组合。对于若干个 维向量 ,那么 称为这些向量的一个线性组合。
可以理解一下线性组合这个概念,其实很好理解,就是有 个 维向量,将每个向量的前面乘上一个系数,然后再加起来,得到的结果就是这 个向量的线性组合。
为了更好的理解线性组合,我们举个例子。首先在三维空间中,存在三个标准单位向量:。
单位向量就是模为 的向量,标准单位向量就是一个点为 、其余点为 的单位向量。显然单位向量可以有无数个,但标准单位向量的个数取决于空间的维度,比如 维空间中就有 个标准单位向量。
而任何一个点都可以用标准单位向量表示,比如:。所以任何一个向量,都可以用标准单位向量的一个线性组合表示。
再比如矩阵乘上一个向量:
我们完全可以把矩阵拆分成两个向量:
此时也对应一个线性组合,然后重点来了,对于一组向量 :
- 如果能找到一组标量:(不全为 0),使得 等于零向量,那么就称这 个向量是线性相关的。
- 如果只有当 全部为 0 的时候, 才等于零向量,那么这个 个向量就是线性无关的。
换句话说,如果一组向量是线性相关,那么其中至少有一个向量可以被其它向量表示,也就是存在一组不全为 的系数,这些系数和向量相乘之后的和为零向量;如果一组向量线性无关,那么没有任何一个向量可以被其它的向量表示,也就是线性组合为零向量的唯一办法就是所有的系数都为 。
我们举个例子:
由于 ,或者说存在 ,使得 ,所以 是线性相关的。
此时 就是线性无关的,因为任何一个向量都无法被其它向量表示。换句话说,我们找不到一组标量 ,使得它们的线性组合为零向量,除非这组 全部是 ,但 和任意向量相乘,结果都是零向量。所以如果只有组里面的 都是 ,才能使得这些向量线性组合的结果为零向量,那么这些向量就是线性无关的。
然后我们不难发现,任何一个向量和它的标准单位向量都是线性相关的,我们以三维空间为例。
对于任何一个向量:,都有 ,因此(所有的)标准单位向量和任何一个向量组合起来,那么这组向量都是线性相关的。
补充:只要这组向量中有一个向量和可以被其它向量表示,那么这组向量就是线性相关的。换句话说,对于 ,当 不为 0 时, 才可以被其它向量表示。
矩阵的逆与线性相关、线性无关
先来补充一下线性相关的一些性质:假设有 个 维向量 ,如果 ,那么这 个向量一定是线性相关。比如有 个三维向量,那么不管向量的值是多少,它们一定线性相关。我们证明一下,要找到一组不全为 的数,使得:
我们知道矩阵 和一个向量 相乘,可以看作是 的每一个列向量和 的每一个标量相乘,然后再相加。那么这个过程也可以反过来,因此上面的式子等价于如下:
由于等号右边全部是 0, 所以我们只看系数矩阵即可,所以这又可以转化为一个线性系统问题。接下来我们的任务就是看这个线性系统是否有非零解,首先零解肯定是解的一种,但如果只有零解,那么显然这 个 维向量就是线性无关的,否则就是线性相关。
由于 ,也就是说系数矩阵的列数要大于行数,或者说未知数的个数大于方程的个数。所以它会有无数解,而不是只有一个零解,因此这 个向量是线性相关。
所以得出结论:如果向量的个数 大于向量的维度 ,那么这 个向量是线性相关。
那么问题来了,它们何时线性无关呢?如果线性无关,那么 必须全部为 ,换句话说系数矩阵 只有零解。根据克拉默法则,若齐次线性方程组只有零解,那么系数矩阵的行列式不为 ,而行列式不为 是矩阵可逆的一个充要条件。
关于行列式后续再聊,总之只需要知道:如果系数矩阵是可逆的(非奇异矩阵),那么这 个向量就线性无关。而矩阵可逆也隐含了 和 是相同的。
直观理解线性相关和线性无关
我们上面介绍了线性相关和线性无关,对于若干个 维向量 ,如果存在至少一组不全为 的 ,使得 ,那么这若干个向量就是线性相关,否则就是线性无关。光看定义还是很好理解的,但是这背后的含义估计有人还是觉得不够直观,那么下面就来换个角度来理解它。
所谓线性相关,就是其中一个向量和被其它向量的线性组合表示,这也是相关二字的含义,因为一个向量被其它向量关联起来了。但是从信息角度来看,线性相关就以为着这组向量存在信息冗余,因为至少会有一个向量可以表示成其它向量的线性组合,那么这个向量本身就没有表达任何新的信息。而线性无关则意味着信息的完全不冗余,因为每个向量都是独立的,无法表达成其它向量的线性组合。
下面我们就以二维平面为例,在里面随便定义两个向量。
蓝色箭头是随便定义的两个向量,我们记作 ,它们什么关系我们并不在乎,有可能线性相关,也可能线性无关。但如果再加入第三个向量(图中的绿色箭头),那么这三个向量就一定线性相关。证明也很简单,我们将蓝色箭头所在线段延长,并从绿色箭头的位置向两个线段做彼此的平行线,交点为 A、B。显然绿色箭头代表的向量就等于 ,而 和 又可以表示成 和 的 、 倍,所以三个向量一定是线性相关的。
当然啦,图中的三个向量都画在了坐标系的第一象限,此时 均为正值。但其它象限也是一样的,只是 的符号会发生变化。
然后图中的 是不共线的,如果它们共线呢?答案就更简单了,此时这两个向量本身就是线性相关的。如果再来一个向量 ,它们仍然线性相关,只需要让 系数为 即可。
以上是二维空间,该结论同样可以扩展到 维空间。假设有 个 维向量,它们之间是否线性相关我们无法确定,但如果有 个,那么一定线性相关。
然后我们还可以得出一个结论,如果 个向量中存在零向量,那么这 个向量也一定线性相关(不管向量的维度是多少)。这个也很好证明,只需要让非零向量的系数为 ,零向量的系数不为 (随便一个数都行),这样相加之后还是零向量,我们依旧找到了一组不全为 的 ,所以它们线性相关。
生成空间
我们上面已经证明了,在二维空间随便选择两个向量 ,只要这两个向量不共线,那么任意的第三个向量都可以被 的线性组合表示出来。换句话说,在二维空间中,任意一个向量都可以表示为 和 的线性组合,那么这个时候就说 和 可以生成整个二维空间。
类似的,这个结论也可以推广到 维空间。若空间中的所有向量都可以被表示成 的线性组合,则称:这些向量可以生成整个空间。
对于 维空间,至少需要 个向量才能够生成。但有 个向量未必能够生成 维空间,就拿二维空间为例,如果两个向量共线,那么就无法生成二维空间。
空间的基
上面我们说了,如果 个 维向量想表示 维空间,那么必须满足 ;如果线性无关,那么必须满足 。要是我希望一组向量既可以生成整个 维空间,并且线性无关,那么 必须等于 。这是因为生成 维空间至少需要 个向量,而线性无关最多只能有 个向量(一旦超过 ,那么就一定线性相关),所以此时只能有 个向量。
事实上,如果 个向量想表示 维空间,那么这 个向量必须是线性无关的,否则它无法表示 维空间。而这样的 个向量,我们称之为 维空间的一组基。
结论: 个 维向量(因为空间是 维的,所以向量也是 维的),若它们是这个 维空间的基,必须满足如下条件:
- 1)这 个向量能够生成整个 维空间;
- 2)这 个向量线性无关;
当然,这两个条件如果满足任意一个,那么另一个一定满足。同时也能看出,如果一组向量可以生成 维空间(向量个数不小于 )、并且这组向量还线性无关(向量个数不大于 ),那么向量的个数一定为 。
所以基本身还是很好理解的,那么一个空间中有多少个基呢?显然是无数个,以二维空间为例,只要两个向量不共线,那么它们就可以是这二维空间的一组基。此外我们之前介绍的标准单位向量也是一组基,并且还是最常见的一组基。
是空间的基, 也是空间的基,它们都可以表示整个生成空间,所以它们具有同样的性质。换句话说,它们都可以看做是二维空间的一个坐标系,只是表达的坐标有些差异。我们以一个矩阵为例:
我们之前说矩阵可以理解为转换函数,负责对向量进行变换。如果使用基的概念来理解,那么就是使用 这组基表示的坐标点 ,如果换成新的一组基 来表示,坐标是多少?
如果是以标准单位向量作为基,那么就沿着 走两个单位,沿着 走两个单位,所以点的坐标是 。更专业的说法是 和 组成的平行四边形的对角线的终点坐标,而上面的 也就是这么来的。但现在基改变了,那么就变成了沿着 走两个单位,沿着 走两个单位,这里的单位就是基对应的模。所以点的坐标就变成了 和 组成的平行四边形的对角线的终点坐标。
所以这两组基具备相同的性质,它们都可以表达为一个坐标系,只不过标准单位向量之间的夹角是 90 度,并且模是 1,所以它是最常见的一组基。拓展到 维空间也是如此,任意给定一组基,那么任何一个向量(或者点)都可以表示成这组基的线性组合,并且表示方法是唯一的(也就是一个点不会存在两个坐标)。
以上我们就介绍了什么是空间的基,再来补充基的两个性质:
- 如果 个向量可以生成 维空间,并且其中的一个向量可以被其它向量线性组合,那么删除这个向量后,剩下的向量仍然可以表示整个 维空间。这个很好理解,因为该向量可以被其它向量线性组合,所以它没有提供新的信息,所以即便将它删除,仍然可以表示 维空间。
- 如果 个向量可以生成 维空间,则该组向量一定存在一个子集,是 维空间的一组基。举个例子,如果 ,那么这 个向量显然就是空间的一组基,只不过此时的子集就是该组向量本身(不是真子集)。否则 ,那么根据上一个性质,我们不断删除可以被其它向量线性组合的向量,那么当向量个数等于 时,它就是一定是空间的基(此时是真子集)。
总之生成空间和空间的基非常重要,因为很多时候我们看待一个点的视角不一定非要放在直角坐标系中,或者说不一定要放在标准单位向量组成的坐标系中。
如果觉得文章对您有所帮助,可以请囊中羞涩的作者喝杯柠檬水,万分感谢,愿每一个来到这里的人都生活愉快,幸福美满。
微信赞赏
支付宝赞赏
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-09-02 《深度剖析CPython解释器》20. Python类机制的深度解析(第四部分): 实例对象的创建、以及属性访问
2019-09-02 signal,blinker:信号(看我脸色行事)