《线性代数》6. 线性相关、线性无关与生成空间

作者:@古明地盆
喜欢这篇文章的话,就点个关注吧,或者关注一下我的公众号也可以,会持续分享高质量Python文章,以及其它相关内容。:点击查看公众号


线性组合

回忆一下向量的两个最基本的运算:

  • 向量加法:v+w
  • 向量乘法:kv

这两个基本运算构建了线性代数中最重要的一个概念:线性组合。对于若干个 n 维向量 v1,v2,v3,...,vp,那么 k1·v1+k2·v2+k3·v3+...+kp·vp 称为这些向量的一个线性组合。

可以理解一下线性组合这个概念,其实很好理解,就是有 pn 维向量,将每个向量的前面乘上一个系数,然后再加起来,得到的结果就是这 p 个向量的线性组合。

为了更好的理解线性组合,我们举个例子。首先在三维空间中,存在三个标准单位向量:e1=(1,0,0)T,e2=(0,1,0)T,e3=(0,0,1)T

单位向量就是模为 1 的向量,标准单位向量就是一个点为 1、其余点为 0 的单位向量。显然单位向量可以有无数个,但标准单位向量的个数取决于空间的维度,比如 n 维空间中就有 n 个标准单位向量。

而任何一个点都可以用标准单位向量表示,比如:v=(x,y,z)=x·(1,0,0)T+y·(0,1,0)T+z·(0,0,1)T=x·e1+y·e2+z·e3。所以任何一个向量,都可以用标准单位向量的一个线性组合表示。

再比如矩阵乘上一个向量:

{abcd}·{k1k2}={a·k1+b·k2c·k1+d·k2}

我们完全可以把矩阵拆分成两个向量:

{abcd}·{k1k2}=k1·{ac}+k2·{bd}={a·k1c·k1}+{b·k2d·k2}={a·k1+b·k2c·k1+d·k2}

此时也对应一个线性组合,然后重点来了,对于一组向量 v1,v2,v3,...,vp

  • 如果能找到一组标量:k1,k2,k3,...,kp(不全为 0),使得 k1·v1+k2·v2+k3·v3+...+kp·vp 等于零向量,那么就称这 p 个向量是线性相关的。
  • 如果只有当 k1,k2,k3,...,kp 全部为 0 的时候,k1·v1+k2·v2+k3·v3+...+kp·vp 才等于零向量,那么这个 p 个向量就是线性无关的。

换句话说,如果一组向量是线性相关,那么其中至少有一个向量可以被其它向量表示,也就是存在一组不全为 0 的系数,这些系数和向量相乘之后的和为零向量;如果一组向量线性无关,那么没有任何一个向量可以被其它的向量表示,也就是线性组合为零向量的唯一办法就是所有的系数都为 0

我们举个例子:

v1={22},v2={86},v3={01}

由于 v2=4·v12·v3,或者说存在 k1=4,k2=1,k3=2,使得 k1v1+k2v2+k3v3=O,所以 v1,v2,v3 是线性相关的。

v1={10},v2={01}

此时 v1,v2 就是线性无关的,因为任何一个向量都无法被其它向量表示。换句话说,我们找不到一组标量 k,使得它们的线性组合为零向量,除非这组 k 全部是 0,但 0 和任意向量相乘,结果都是零向量。所以如果只有组里面的 k 都是 0,才能使得这些向量线性组合的结果为零向量,那么这些向量就是线性无关的。

然后我们不难发现,任何一个向量和它的标准单位向量都是线性相关的,我们以三维空间为例。

对于任何一个向量:v={xyz},都有 v=x·{100}+y·{010}+z·{001},因此(所有的)标准单位向量和任何一个向量组合起来,那么这组向量都是线性相关的。

补充:只要这组向量中有一个向量和可以被其它向量表示,那么这组向量就是线性相关的。换句话说,对于 k1v1+k2v2+k3v3+...+kpvp=O,当 ki 不为 0 时,vi 才可以被其它向量表示。

矩阵的逆与线性相关、线性无关

先来补充一下线性相关的一些性质:假设有 mn 维向量 v1,v2,v3,...,vm,如果 m>n,那么这 m 个向量一定是线性相关。比如有 4 个三维向量,那么不管向量的值是多少,它们一定线性相关。我们证明一下,要找到一组不全为 0 的数,使得:

k1·v1+k2·v2+k3·v3+···+km·vm=k1·{v11v12v13···v1n}+k2·{v21v22v23···v2n}+k3·{v31v32v33···v3n}+···+km·{vm1vm2vm3···vmn}=O

我们知道矩阵 A 和一个向量 v 相乘,可以看作是 A 的每一个列向量和 v 的每一个标量相乘,然后再相加。那么这个过程也可以反过来,因此上面的式子等价于如下:

{v11v21v31···vm1v12v22v32···vm2v13v23v33···vm3···············v1nv2nv3n···vmn}·{k1k2k3···km}=O

由于等号右边全部是 0, 所以我们只看系数矩阵即可,所以这又可以转化为一个线性系统问题。接下来我们的任务就是看这个线性系统是否有非零解,首先零解肯定是解的一种,但如果只有零解,那么显然这 mn 维向量就是线性无关的,否则就是线性相关。

由于 m>n,也就是说系数矩阵的列数要大于行数,或者说未知数的个数大于方程的个数。所以它会有无数解,而不是只有一个零解,因此这 m 个向量是线性相关。

所以得出结论:如果向量的个数 m 大于向量的维度 n,那么这 m 个向量是线性相关。

那么问题来了,它们何时线性无关呢?如果线性无关,那么 k1,k2,...,km 必须全部为 0,换句话说系数矩阵 A·x=O 只有零解。根据克拉默法则,若齐次线性方程组只有零解,那么系数矩阵的行列式不为 0,而行列式不为 0 是矩阵可逆的一个充要条件。

关于行列式后续再聊,总之只需要知道:如果系数矩阵是可逆的(非奇异矩阵),那么这 m 个向量就线性无关。而矩阵可逆也隐含了 mn 是相同的。

直观理解线性相关和线性无关

我们上面介绍了线性相关和线性无关,对于若干个 n 维向量 v1,v2,v3,...,vm,如果存在至少一组不全为 0k,使得 k1·v1+k2·v2+k3·v3+···+km·vm=O,那么这若干个向量就是线性相关,否则就是线性无关。光看定义还是很好理解的,但是这背后的含义估计有人还是觉得不够直观,那么下面就来换个角度来理解它。

所谓线性相关,就是其中一个向量和被其它向量的线性组合表示,这也是相关二字的含义,因为一个向量被其它向量关联起来了。但是从信息角度来看,线性相关就以为着这组向量存在信息冗余,因为至少会有一个向量可以表示成其它向量的线性组合,那么这个向量本身就没有表达任何新的信息。而线性无关则意味着信息的完全不冗余,因为每个向量都是独立的,无法表达成其它向量的线性组合。

下面我们就以二维平面为例,在里面随便定义两个向量。

蓝色箭头是随便定义的两个向量,我们记作 u,w,它们什么关系我们并不在乎,有可能线性相关,也可能线性无关。但如果再加入第三个向量(图中的绿色箭头),那么这三个向量就一定线性相关。证明也很简单,我们将蓝色箭头所在线段延长,并从绿色箭头的位置向两个线段做彼此的平行线,交点为 A、B。显然绿色箭头代表的向量就等于 OA+OB,而 OAOB 又可以表示成 uwk1k2 倍,所以三个向量一定是线性相关的。

当然啦,图中的三个向量都画在了坐标系的第一象限,此时 k1,k2 均为正值。但其它象限也是一样的,只是 k1,k2 的符号会发生变化。

然后图中的 u,w 是不共线的,如果它们共线呢?答案就更简单了,此时这两个向量本身就是线性相关的。如果再来一个向量 v,它们仍然线性相关,只需要让 v 系数为 0 即可。

以上是二维空间,该结论同样可以扩展到 n 维空间。假设有 nn 维向量,它们之间是否线性相关我们无法确定,但如果有 n+1 个,那么一定线性相关。

然后我们还可以得出一个结论,如果 n 个向量中存在零向量,那么这 n 个向量也一定线性相关(不管向量的维度是多少)。这个也很好证明,只需要让非零向量的系数为 0,零向量的系数不为 0(随便一个数都行),这样相加之后还是零向量,我们依旧找到了一组不全为 0k,所以它们线性相关。

生成空间

我们上面已经证明了,在二维空间随便选择两个向量 u,w,只要这两个向量不共线,那么任意的第三个向量都可以被 u,w 的线性组合表示出来。换句话说,在二维空间中,任意一个向量都可以表示为 uw 的线性组合,那么这个时候就说 uw 可以生成整个二维空间。

类似的,这个结论也可以推广到 n 维空间。若空间中的所有向量都可以被表示成 v1,v2,v3,...,vn 的线性组合,则称:这些向量可以生成整个空间。

对于 n 维空间,至少需要 n 个向量才能够生成。但有 n 个向量未必能够生成 n 维空间,就拿二维空间为例,如果两个向量共线,那么就无法生成二维空间。

空间的基

上面我们说了,如果 mn 维向量想表示 n 维空间,那么必须满足 mn;如果线性无关,那么必须满足 mn。要是我希望一组向量既可以生成整个 n 维空间,并且线性无关,那么 m 必须等于 n。这是因为生成 n 维空间至少需要 n 个向量,而线性无关最多只能有 n 个向量(一旦超过 n,那么就一定线性相关),所以此时只能有 n 个向量。

事实上,如果 n 个向量想表示 n 维空间,那么这 n 个向量必须是线性无关的,否则它无法表示 n 维空间。而这样的 n 个向量,我们称之为 n 维空间的一组基。

结论:nn 维向量(因为空间是 n 维的,所以向量也是 n 维的)v1,v2,v3,...,vn,若它们是这个 n 维空间的基,必须满足如下条件:

  • 1)这 n 个向量能够生成整个 n 维空间;
  • 2)这 n 个向量线性无关;

当然,这两个条件如果满足任意一个,那么另一个一定满足。同时也能看出,如果一组向量可以生成 n 维空间(向量个数不小于 n)、并且这组向量还线性无关(向量个数不大于 n),那么向量的个数一定为 n

所以基本身还是很好理解的,那么一个空间中有多少个基呢?显然是无数个,以二维空间为例,只要两个向量不共线,那么它们就可以是这二维空间的一组基。此外我们之前介绍的标准单位向量也是一组基,并且还是最常见的一组基。

e1,e2 是空间的基,u,w 也是空间的基,它们都可以表示整个生成空间,所以它们具有同样的性质。换句话说,它们都可以看做是二维空间的一个坐标系,只是表达的坐标有些差异。我们以一个矩阵为例:

{4213}·{22}

我们之前说矩阵可以理解为转换函数,负责对向量进行变换。如果使用基的概念来理解,那么就是使用 (1,0),(0,1) 这组基表示的坐标点 (2,2),如果换成新的一组基 (4,1),(2,3) 来表示,坐标是多少?

如果是以标准单位向量作为基,那么就沿着 (1,0) 走两个单位,沿着 (0,1) 走两个单位,所以点的坐标是 (2,2)。更专业的说法是 (2,0)(0,2) 组成的平行四边形的对角线的终点坐标,而上面的 (2,2) 也就是这么来的。但现在基改变了,那么就变成了沿着 (4,1) 走两个单位,沿着 (2,3) 走两个单位,这里的单位就是基对应的模。所以点的坐标就变成了 (8,2)(4,6) 组成的平行四边形的对角线的终点坐标。

所以这两组基具备相同的性质,它们都可以表达为一个坐标系,只不过标准单位向量之间的夹角是 90 度,并且模是 1,所以它是最常见的一组基。拓展到 n 维空间也是如此,任意给定一组基,那么任何一个向量(或者点)都可以表示成这组基的线性组合,并且表示方法是唯一的(也就是一个点不会存在两个坐标)。

以上我们就介绍了什么是空间的基,再来补充基的两个性质:

  • 如果 m 个向量可以生成 n 维空间,并且其中的一个向量可以被其它向量线性组合,那么删除这个向量后,剩下的向量仍然可以表示整个 n 维空间。这个很好理解,因为该向量可以被其它向量线性组合,所以它没有提供新的信息,所以即便将它删除,仍然可以表示 n 维空间。
  • 如果 m 个向量可以生成 n 维空间,则该组向量一定存在一个子集,是 n 维空间的一组基。举个例子,如果 m=n,那么这 m 个向量显然就是空间的一组基,只不过此时的子集就是该组向量本身(不是真子集)。否则 m>=n,那么根据上一个性质,我们不断删除可以被其它向量线性组合的向量,那么当向量个数等于 n 时,它就是一定是空间的基(此时是真子集)。

总之生成空间和空间的基非常重要,因为很多时候我们看待一个点的视角不一定非要放在直角坐标系中,或者说不一定要放在标准单位向量组成的坐标系中。

posted @   古明地盆  阅读(567)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源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:信号(看我脸色行事)
点击右上角即可分享
微信分享提示

目录导航