0%

《线性代数的本质》笔记

课程地址:https://www.bilibili.com/video/BV1ys411472E

这个链接跳转有谜之问题,建议手动复制到地址栏

01 什么是向量

向量在不同专业的人眼里有不同的看法:

在物理学的学生眼里,向量是一个空间中的箭头,决定它的是这个箭头的长短和方向,它的位置可以是任意的。

在计算机的学生眼里,向量是一个“列表”(即向量的代数表达),该列表可以有不同的行和列,同时每一个位置的值对应的物理意义都是一定的,不能交换位置。

在数学家眼里,向量可以是以上两种中任何一种表达(也可以是其他很多事物的表达),这两者其实是相互关联的。

后面的讲解都是把向量看作一个坐标系中,以原点为起点的箭头,这个箭头与一对数(一个“列表”,向量坐标)唯一对应。通常是竖着写的向量,在二维坐标系中,列表(向量)中的第一个数代表向量箭头终点在x轴方向上的偏移,第二个数代表向量箭头终点在y轴方向上的偏移。

这对数的值同时也是该向量箭头终点的坐标。

向量有两个重要的运算:向量加法向量数乘。后续的内容 基本上都是围绕这两种运算展开的。

向量加法就是把第二个向量的起点移动到第一个向量的终点,然后由第一个向量的起点(原点)指向第二个向量的终点,构成一个新的向量,代数的表达就是向量对应位置的数值直接相加。

向量的数乘在几何方面就是对箭头长度的缩放(scaling),负号代表方向取反。在代数方面就是乘数(标量scalars)与向量对应位置的数值相乘的结果。

02 线性组合、张成的空间与基向量

首先谈谈线性组合,什么是线性组合,这里我们定义两个向量数乘后的向量和即为线性组合,形如 $ a\vec i+b\vec j$的式子(三维形式则再加一个向量$\vec k$,更高维的以此类推)。然后我们看一个向量的代数表达,这时我们可以将两个数的值(x和y)看作两个向量(x轴方向上的单位向量$\vec i$和y轴方向上的单位向量$\vec j$)的缩放(数乘的值),那么这个向量就可以被表示为$ x\vec i+y\vec j$。

我们将可以将$\vec i$和$\vec j$称为一对基向量。二维平面中的任意一个向量都能表示为这两个基向量的线性组合。同时我们将能够由基向量的线性组合而得到的向量的集合称为这一对向量所张成的空间(span)(或者说是向量空间?)。

同理,三维空间中也存在三个基向量,它们的span就是整个三维空间。

同时,一个平面的基向量并不是唯一的一对,它可以有多对不同的组合(只要他们不共线/至少一个为零向量)。因为共线/包含零向量的一对向量他们的线性组合并不是整个平面,而是一条线或者一个点。

在学线性代数的时候老师讲过一个概念:线性相关和线性无关。当一组向量中,存在某一个向量能被其他向量线性表示(即能被表示为其他向量的线性组合),那么我们就说这一组向量线性相关。换一种说法就是这个向量对这一组其他向量张成的空间没有任何贡献,它是多余的,因为它能被分解为其他的向量的线性组合。上一段中所说的共线/包含零向量的情况就是线性相关的情况。反之,若一组向量互相都不能线性表示,则成为线性无关(向量组)。

再回到开头 ,什么样的向量可以称为基向量呢?在了解线性相关和线性无关后,我们可以说,一个向量空间的一组基是张成该空间的一组线性无关的向量集。

03 矩阵与线性变换

什么是变换,就是给定一个输入,它会给出一个变换后的输出,这与函数的定义几乎一致。

线性变换的要求:

  • 所有的直线变换后仍是直线
  • 原点保持不变

正是由于这两个特性,当一个向量以及能表示它的基向量都经历变换这个过程之后,它们之间的线性关系保持不变,即该向量被基向量表示的数乘系数不变。于是,我们只需要知道一个空间的一组基向量变换后的向量值,就能求得该空间中其他任一向量变换后的值。

我们将一组变换后的基向量(2×1)按列组合起来(以二维平面中的基向量为例),即构成了一个2×2的矩阵。这个矩阵就可以成为描述这个变换的工具,我们将变换的过程表示为该矩阵与一个特定向量的乘积(矩阵左乘向量),得到的结果就是该向量变换后的坐标。如下图:

image-20200926163609382

所以,任何一个矩阵都可以看做一个特定的线性变换,而矩阵与向量的乘积,则表示线性变换的过程,其结果表示向量变换后的结果。

PS:这里向量变换前后的坐标值都是相对于同一个坐标系来讲的,只有这样两个坐标的比较才能有意义。一般讨论中都是相对原坐标系(笛卡尔坐标系)来说的。

04 矩阵乘法与线性变换复合

由上一节可知,一个矩阵对应一种线性变换,一个矩阵与一个向量相乘则对应对该向量进行一种线性变换,结果得到变换后的向量。如果再次用另一个矩阵与该向量相乘,则又会得到原向量进行第二次变换后的向量。如果我们不写中间第一次变换后的结果,把两次变换连起来写,那么就得到两个矩阵相乘的形式(如下图等式左侧)。我们可以找到直接用一个变换就能使原向量变为最终向量的变换(复合矩阵),于是有理由相信,左侧的两个矩阵相乘的结果就是复合矩阵(这一点也很容易由我们线性代数课上学的计算法则证明,或者通过变换的几何概念也很容易证明),于是我们可以得到矩阵相乘的结合律了:$(AB)C=A(BC)$。这一个性质也很容易由直觉得到,因为括号并不影响进行线性变换的顺序。

image-20200926170506213

不过值得注意的是,矩阵相乘并没有交换律:$AB\neq BA$,这很容易通过举例证明 (上图中的例子就行)。

附1 三维空间中的线性变换

三维空间中的线性变换就是二维空间线性变换的扩展,即每一个基向量变成了一个3维向量,变换的矩阵也变成了3×3的矩阵,其他概念可类推。

05 行列式

行列式(determinant)的几何意义就是一块区域在经过该矩阵所表示的线性变换后,得到的新的区域的面积与原区域面积的比例(也可以看作单位正方形经过变换后的平行四边形的面积,即该矩阵的两个向量所构成平行四边形的面积)。

PS:这里的面积是在二维平面的条件下讨论的,对于三维空间来说则是体积。

具体的证明可以通过几何画图来证明:

image-20200926195633637

有了这个结论,我们很容易就知道,为什么行列式为0的矩阵中的向量组一定线性相关了。因为变换后的两个向量是共线/至少有一个为零向量的(二维平面范围内)。

还有一点需要注意的是,行列式是有负值的,在二维平面中,负号所代表的意义是平面的翻转(这一点与通量很类似);在三维空间中,负号所代表的是左手系和右手系之间的转换。但是行列式的绝对值的意义还是变换后面积/体积的缩放比例。

06 逆矩阵、列空间、秩与零空间

矩阵的一个用处是用来解线性方程组的,形如:$A\vec x=\vec v$,其中变换矩阵$A$和变换后的向量$\vec v$已知,我们需要求变换前的向量$\vec x$。由几何意义可知,只要该变换不是将原向量空间压缩成更低维度的向量空间,即det(A)不等于0,那么我们就能唯一确定一个逆变换$A^{-1}$使得$\vec v$能还原为$\vec x$,该方程就有唯一解,否则(det(A)=0)为无穷解(或无解)。

$A^{-1}$和$A$的乘积为单位矩阵E,于是可得$\vec x=A^{-1}\vec v$,即求得了$\vec x$。

列空间就是矩阵的列向量所张成的空间

秩的概念就是矩阵所表示的线性变换后的空间维度,或者说是列空间的维度。例如一个3×3的矩阵所表示的线性变换会把任何三维向量压缩到一个二维平面里,那么就说这个矩阵的秩为2,同时这个矩阵的列向量所张成的空间为一个二维平面,同时该矩阵的行列式为0。

如果一个经过矩阵变换前后的维度没有改变,我们把这种情况称为满秩,满秩矩阵的齐次方程的解($Ax=\vec 0$)只有一个(只有0向量能变换为0向量),一个非满秩矩阵的变换的齐次方程的解就有无穷个了,因为有许多向量可以经过变换变为0向量,这些经过变换后落到零点的向量的集合被称为零空间/核

附2 非方阵

我们之前讨论的都是方阵,即向量数与向量维度相等,当两者不等时则称非方阵。

若有一个矩阵是3×2,我们可以将它看成是一个将二维平面映射到三维空间中的一个二维平面的变换,听起来有点绕,意思就是把单纯的一个平面映射为空间中的一个平面,使它的基向量变为有三个维度的向量。

若一个矩阵是1×2,则可以看成是将一个二维平面映射到一个一维的线上的变换,即减小了基向量一个维度。

07 点积与对偶性

点积的标准计算方式就是按照向量中对应位置的坐标相乘再相加。点积的几何意义是点积的大小等于一个向量$\vec x$在另一个向量$\vec y$上的投影的长度与$\vec y$的长度的乘积,点积的正负号取决于$\vec x$投影后的向量与$\vec y$的方向是否相反,若相反,则为负,否则为正。这个投影的过程可以交换,即也可看作$\vec y$向$\vec x$的投影。

现假设一个向量单位$\vec u$,横纵坐标分别为$u_x$和$u_y$,再假设一个变换为把其他向量都投影到该向量所在直线上,那么这个变换的矩阵是什么呢?跟据对偶性可知(见下图,详见视频),该变换矩阵就是$[u_x, u_y]$,所以要求其他向量经过改变换得到的值时,直接用$[u_x, u_y]$与所需变化向量$\vec v$相乘即可,由线性代数所学的运算法则可得结果是一个数,即投影后在那条直线上的长度。这个相乘的过程与我们的点积定义形式惊人的一致,于是,如果我们把$\vec v$与$\vec u$的点积的计算过程就可以看作求$\vec v$向$\vec u$所在直线投影与$\vec u$的长度相乘的过程(包括符号)。

image-20200927090916490

从数学式子来看,如果我们相求两个列向量$\vec u$和$\vec v$的的点积$\vec u \cdot\vec v$,我们可以把前者转换成一个线性变换的矩阵与后者相乘,那么式子的几何意义就变成了求$\vec v$向$\vec u$投影与$\vec u$的大小的积

image-20200927090744950

08 叉积

叉积的结果还是一个向量,叉积的标准计算方法如下图:

image-20200928001327577

结果向量的大小是两个相乘向量所形成的平行四边形的面积,它的方向由右手法则确定——which means 叉积不满足交换律。

09 基变换

本节的基变换讲的是,如何在两个不同的坐标系(不同的基向量)之间进行坐标的转换,换一种说法就是,如和从两个坐标系的角度来看同一个向量。这里有个前提是,我们把向量看作一组对基向量数乘的数,同时,我们也必须有一个可供这两个坐标系参考的标准坐标系(一般都是取笛卡尔正交坐标系)。

假设第一个坐标系的两个基向量分别为$\vec a_1$和$\vec a_2$,第二个坐标系的两个基向量分别为$\vec b_1$和$\vec b_2$,我们以第三方的标准坐标系的视角来看,假设$\vec a_1=[1\ 0]^T, \vec a_2=[0\ 1]^T,\vec b_1=[2\ 1]^T,\vec b_2=[-1\ 1]^T$。

现有一个向量,以我们的第三方视角来看$\vec v=[3\ 2]^T$,那么在第一个坐标系中,坐标仍为$[3\ 2]^T$,而在第二个坐标系中,它的坐标变为了$[\frac{5}{3}\ \frac{1}{3}]^T$。那么,如果已知两个坐标系的基向量和一个向量在其中一个坐标系中的坐标,我们该如何得到该向量在另一个坐标系中的坐标呢?

从第一坐标系的基向量变换到第二个坐标系的基向量的变换矩阵,就是第二个坐标系两个基向量所组成的矩阵$[\vec b_1\ \vec b_2]$。如果我们把我一个坐标系中的一个向量$[x\ y]^T$坐标左乘这个矩阵,那么得到了变换后在第二个坐标系中的向量的坐标。但是!这个坐标的数值还是以第一个坐标系的视角来看的(如下图,下方是数值的转换方向)!

于是,实际上我们得到的是,在第二个坐标系中坐标为$[x\ y]^T$的向量在第一个坐标系的角度来看的坐标值(听起来有点绕……看视频的理解会好一点)。

image-20201005114531405

如果想从第一个坐标系的向量坐标值转换为第二个坐标系的值,那么可以进行一个逆过程,如下图:

image-20201005115309322

还是以$\vec v=[3\ 2]^T$作为例子,如果我们想知道$\vec v$在第二个坐标系中的坐标是多少,那么就左乘该基变换矩阵的逆矩阵:

image-20201005115710340

image-20201005120031333

以上讲述的是针对一个向量在两个坐标系中的转换,我们还可以扩展到如何在两个坐标系中描述同一种线性变换

现在我们知道第二个坐标系中的向量$\vec v_2$,想要知道在第二个坐标系中做逆时针旋转90°的变换,但目前我们只知道第一个坐标系下表示的第二个坐标系的基向量$A$,我们可以通过如下操作来实现:

1.把$\vec v_2$转换为第一个坐标系中的值

image-20201005143158500

2.在第一个坐标系中进行逆时针旋转90°的变换

image-20201005143259207

3.再转换回第二个坐标系中的坐标值

image-20201005143321058

左侧的三个矩阵可以归纳为:$P^{-1}AP$形式,也就是线代数上相似矩阵的定义。

中间的$A$就是在第一个坐标系下(你所见到的)一种变换,而$P$则是由第一个坐标系变换到另一个坐标系的基变换矩阵(也就是变换后的基向量构成的矩阵)。

本节的总结可能不是很清楚,可以参考原视频或者下文:

https://zhuanlan.zhihu.com/p/69069042

10 特征向量与特征值

书上特征值与特征向量的公式如下:

其中$\vec v$称为$A$的特征向量,$\lambda$称为特征值。

其实学完之前的矩阵与向量的乘法和数乘之后,我们也能从这个式子中推测出来特征值与特征向量的几何意义——特征向量就是一个向量,这个向量满足以下的特性:经过一个线性变换后,变换向量仍然保持在原向的方向上(换一种说法就是,特征向量经过线性变换后,变换前后的两个向量所张成的空间并没有发生改变的),只是在长度上有所缩放,缩放的倍数就是特征值$\lambda$。

关于特征值和特征向量的求法,思路如下:

image-20201003114021759

然后把相应的$\lambda$带入原方程,用行/列变换化简$(A-\lambda I)$,然后给$\vec v$中的一个变量手动赋值(一般取1),就可以解出其他的变量(因为特征向量本来就不是一定的数值,可以有数乘关系)。

如果一个变换矩阵恰好是对角矩阵,也就是仅仅在对角线上有值,其他都为0,那么这就是说,这个变换的基向量刚好都是特征向量,这个变换只对基向量的长度进行缩放,于是连续对某一向量进行多个该矩阵的变换计算就很容易了(如下图)。

image-20201003120729541

可以化简为下式:

image-20201003120747334

如果是遇到一个非对角矩阵的连续乘法,直接计算会非常痛苦(如下图)。

image-20201003122104635

但是学过09的基变换之后,我们可以把这个变换看作在另一个以该变换的两个特征向量为基向量的视角下进行100次变换,然后再把结果从那个视角下变换回来,就可以很容易计算出来结果(如下图,换了一个矩阵作为例子)。

image-20201003123846057

image-20201003124033910

上图的过程也被称为矩阵的对角化

11 抽象向量空间

回到第01节中的一个问题,在数学家眼里,什么是向量呢?

事实上,向量这个概念可以是任何一组事物的几何,比如,空间中的一组箭头、计算机中的一组数、一组函数等。

其中,一个多项式函数也可以看作一个向量,所有的多项式函数就构成了一个向量空间。But,为什么?

如果一个事物满足向量的相加与数乘的性质,那么就可以被看作向量。多项式函数正好满足:

image-20201003175715263

image-20201003175726265

任何一个变换,满足线性的性质,就能被看作线性变换,线性性质包括可加性和齐次性(如下图)。

image-20201003172625939

以函数为向量(空间),那么变换就是把一个函数变成另一个函数。

例如,微积分里的微分和积分都是线性变换,因此,他们都可以用矩阵的形式表示出来。我们也把这些变换叫做线性算子

如何一个事物,它想能应用我们之前在线性代数中所推出的任何结论,它满足以下八条公理:

image-20201003180452468

12 克莱姆法则

首先我们看看什么是克莱姆法则,给出以下一个线性方程组:

image-20201004171257529

克莱姆法则的求解方法如下,即把变换后的向量依次替换到变换矩阵中的对应位置后,计算其行列式,并除以原矩阵的行列式:

image-20201004171321619

首先我们以一个二维的向量$\vec v=[x,\ y]^T$来作为例子:

image-20201004170814887image-20201004170832199

它与一个基向量所构成的平行四边形的面积(有符号的)就是它的一个坐标值,上图就是与$\vec i$构成的情况(与$\vec j$的情况可类比)。

经过一个线性变换矩阵$A$之后,上图区域的面积就变成了$det(A)\cdot y$,由于是线性方程组,变换后的向量我们已经知道了(以下图为例就是$[4\ 2]^T$),于是$[4\ 2]^T$与$\vec i$变换后的新的基向量$[2\ 0]^T$所构成的平行四边形就是$det(A)\cdot y$,于是y就等于新的面积(变换后的向量与变换后的一个基向量所构成矩阵的行列式)除以A的行列式,x的求法可以类比。

image-20201005105336931

在三维空间中,面积就被类比成了体积(如下图),其他的也很容易推导出来。

image-20201005105923798