3. 其他

3.1 向量点积

3.1.1 定义和几何解释

向量的点积(Dot Product)又被称为数量积、内积。从几何角度来看,两个向量的点积vw\boldsymbol{\vec{v}} \cdot \boldsymbol{\vec{w}}就表示其中一个向量w\boldsymbol{\vec{w}}在另一个向量v\boldsymbol{\vec{v}}的方向上的投影长度乘以后者本身的长度。还是视频中的一个截图就能完全说明问题了:
【总结】线性代数的本质 - 3

w\boldsymbol{\vec{w}}v\boldsymbol{\vec{v}}方向相反时,点积为负。从几何角度很容易理解向量的点积是对称的,因此满足交换律vw=wv\boldsymbol{\vec{v}} \cdot \boldsymbol{\vec{w}} = \boldsymbol{\vec{w}} \cdot \boldsymbol{\vec{v}};并且vw=vwcosθ\boldsymbol{\vec{v}} \cdot \boldsymbol{\vec{w}} = ||\boldsymbol{\vec{v}}||\cdot ||\boldsymbol{\vec{w}}|| \cdot \cos{\theta},其中θ\theta就是两个向量的夹角。向量夹角在二维平面和三维空间上非常好理解和想象,但在高维空间中是很难想象出来的。实际上高维空间中向量的夹角其实就是通过向量点积定义的,即θ=arccosvwvw\theta = \arccos{\frac{\boldsymbol{\vec{v}} \cdot \boldsymbol{\vec{w}}}{||\boldsymbol{\vec{v}}||\cdot ||\boldsymbol{\vec{w}}||}}。向量的点积在实际应用中也往往用于计算向量之间的夹角,尤其在判断两个向量是否垂直,即vw=0\boldsymbol{\vec{v}} \cdot \boldsymbol{\vec{w}}=0

略微了解线性代数应该也明白向量的具体的计算方法:
vw=[a1a2an][b1b2bn]=a1b1+a2b2++anbn \boldsymbol{\vec{v}} \cdot \boldsymbol{\vec{w}} = \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{bmatrix} \cdot \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{bmatrix} = a_1b_1 + a_2b_2 + \cdots + a_nb_n

3.1.2 点积的对偶性

任何一个n维向量都可以看做是一个n×1n \times 1的矩阵,那么从点积的具体计算方法中可以看出,向量的点积也可以看做是先将一个向量转置变成一个1×n1 \times n的矩阵后,再与另一个向量相乘:
vw=vTw=[a1a2an]T[b1b2bn]=a1b1+a2b2++anbn \boldsymbol{\vec{v}} \cdot \boldsymbol{\vec{w}} = \boldsymbol{\vec{v}}^T * \boldsymbol{\vec{w}} = \begin{bmatrix} a_1 & a_2 & \cdots & a_n \end{bmatrix}^T \cdot \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{bmatrix} = a_1b_1 + a_2b_2 + \cdots + a_nb_n

那么既然把其中一个向量看做了矩阵,联系之前对矩阵的理解,它代表了一种线性变换。vT\boldsymbol{\vec{v}}^T是一个1×n1 \times n的矩阵,那么它就是将n维向量w\boldsymbol{\vec{w}}变换成了一维向量,也就是一个实数。vT\boldsymbol{\vec{v}}^T所代表的线性变换就是将n维空间投射在了它表示的那条直线上,再乘以它的长度(即缩放的比例)。此时向量和空间变换便有了联系,UP主将这种联系就称为对偶性(duality)。简单搜索了一下,百度百科上这样定义对偶性:对偶性是描述导致相同的物理结果,表面上不同的理论之间的对应关系。也就是说之前不同的理论有可能之间有内在的联系,而这种联系往往都是在数学上很明显体现出来的。我想这也正是数学的美妙之处了吧。

3.2 向量叉积

3.2.1 叉积基本定义

之前在介绍行列式的时候提到过,二维平面上的两个向量v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}所围成的平行四边形的面积其实就等于矩阵[v,w][\boldsymbol{\vec{v}},\boldsymbol{\vec{w}}]对应的行列式的值。当然,行列式值为负时表示平面发生了翻转,也就是向量的位置发生了变化。

Up主将这种计算类比为二维平面上的叉积,也通过这种类比引出了叉积的一个性质v×w=w×v\boldsymbol{\vec{v}} \times \boldsymbol{\vec{w}} = -\boldsymbol{\vec{w}} \times \boldsymbol{\vec{v}}。这一点从几何意义也很容易理解,因为行列式有可能为负值,当行列式为负的时候,其实就表示向量的位置发生了变化,即两个向量v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}互换了位置。此时空间朝向发生了变化,行列式绝对值不变(面积不变),取负数即可。

实际上叉积仅仅是针对三维向量的定义。与点积(内积)对应,叉积又被称为外积。二维平面中我们可以通过两个向量组成的矩阵的行列式推算两个向量所组成的平行四边形的面积。对应地,三维空间中往往需要计算三个向量v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}x\boldsymbol{\vec{x}}之间围成的平行六面体的体积。这时往往就需要利用向量的叉积了。

先简单介绍一下叉积(Cross Product)的定义吧,三维空间中的两个向量的叉积v×w\boldsymbol{\vec{v}} \times \boldsymbol{\vec{w}}的结果仍然是一个向量p\boldsymbol{\vec{p}},该向量的方向垂直于v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}围成的平行四边形,其长度就等于该平行四边形的面积。

教科书上往往将三维空间中的基向量ijk\boldsymbol{\vec{i}}\boldsymbol{\vec{j}}\boldsymbol{\vec{k}},与v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}组成行列式,通过计算该行列式推出向量叉积的计算方法:
v×w=[v1v2v3]×[w1w2w3]=iv1w1jv2w2kv3w3=v2w2v3w3iv1w1v3w3j+v1w1v2w2k=[v2w3v3w2v3w1v1w3v1w2v2w1] \begin{aligned} \boldsymbol{\vec{v}} \times \boldsymbol{\vec{w}} & = \begin{bmatrix} v_1 \\ v_2 \\ v_3 \end{bmatrix} \times \begin{bmatrix} w_1 \\ w_2 \\ w_3 \end{bmatrix} = \begin{vmatrix} \boldsymbol{\vec{i}} & v_1 & w_1 \\ \boldsymbol{\vec{j}} & v_2 & w_2 \\ \boldsymbol{\vec{k}} & v_3 & w_3 \end{vmatrix} \\ & = \begin{vmatrix} v_2 & w_2 \\ v_3 & w_3\end{vmatrix} \boldsymbol{\vec{i}} - \begin{vmatrix} v_1 & w_1 \\ v_3 & w_3\end{vmatrix} \boldsymbol{\vec{j}} + \begin{vmatrix} v_1 & w_1 \\ v_2 & w_2\end{vmatrix} \boldsymbol{\vec{k}} \\ & = \begin{bmatrix} v_2w_3 - v_3w_2 \\ v_3w_1 - v_1w_3 \\ v_1w_2 - v_2w_1 \end{bmatrix} \end{aligned}

相信大多数人跟我一样,第一次看到这个解释一脸懵逼,并且也不明白这个计算出来的向量有什么用。Up主便通过几何角度解释了一下向量叉积。

3.2.2 叉积的几何解释

同样类比二维平面,在二维平面上两个向量v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}所围成的平行四边形的面积其实就等于矩阵[v,w][\boldsymbol{\vec{v}},\boldsymbol{\vec{w}}]对应的行列式的值。那么同样地,已知三维空间中的两个向量v=[v1v2v3]\boldsymbol{\vec{v}}=\begin{bmatrix}v_1 \\ v_2 \\ v_3\end{bmatrix}w=[w1w2w3]\boldsymbol{\vec{w}}=\begin{bmatrix}w_1 \\ w_2 \\ w_3\end{bmatrix},该空间中任意一个向量x=[xyz]\boldsymbol{\vec{x}}=\begin{bmatrix}x \\ y \\ z\end{bmatrix}与这两个向量组成的平行六面体的体积,也就等于这三个向量组成的矩阵的行列式的值,即x,v,w=xv1w1yv2w2zv3w3|\boldsymbol{\vec{x}}, \boldsymbol{\vec{v}}, \boldsymbol{\vec{w}}| = \begin{vmatrix}x & v_1 & w_1\\ y & v_2 & w_2 \\ z & v_3 & w_3\end{vmatrix}

因此这个行列式就表示输入一个三维向量,输出一个一维向量(一个实数),显示该三维向量与一个已知的平行四边形所组成的平行六面体的体积。此时结合之前点积的对偶性,感觉到这种行列式也就相当于将一个三维向量变换为一维向量,那么一定也可以找到一个向量p\boldsymbol{\vec{p}},使得该向量与输入向量x\boldsymbol{\vec{x}}的点积就等于上面提到的行列式的值,即px=x,v,w\boldsymbol{\vec{p}} \cdot \boldsymbol{\vec{x}} = |\boldsymbol{\vec{x}}, \boldsymbol{\vec{v}}, \boldsymbol{\vec{w}}|。点积的计算方式明显比一个3阶行列式的计算方式简单得多。那么就来寻找这个向量p\boldsymbol{\vec{p}}
px=[p1p2p3][xyz]=p1x+p2y+p3z=x,v,w=xv1w1yv2w2zv3w3=v2w2v3w3xv1w1v3w3y+v1w1v2w2z \begin{aligned} \boldsymbol{\vec{p}} \cdot \boldsymbol{\vec{x}} & = \begin{bmatrix} p_1 \\ p_2 \\ p_3 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ z \end{bmatrix} = p_1x + p_2y + p_3z \\ & = |\boldsymbol{\vec{x}}, \boldsymbol{\vec{v}}, \boldsymbol{\vec{w}}| = \begin{vmatrix} x & v_1 & w_1 \\ y & v_2 & w_2 \\ z & v_3 & w_3 \end{vmatrix} \\ & = \begin{vmatrix} v_2 & w_2 \\ v_3 & w_3\end{vmatrix} x - \begin{vmatrix} v_1 & w_1 \\ v_3 & w_3\end{vmatrix} y + \begin{vmatrix} v_1 & w_1 \\ v_2 & w_2\end{vmatrix}z \\ \end{aligned}

显然就可以根据等式两边x,y,z前面的系数对应相等求出向量p\boldsymbol{\vec{p}}
{p1=v2w2v3w3=v2w3v3w2p2=v1w1v3w3=v3w1v1w3p3=v1w1v2w2=v1w2v2w1p=[v2w3v3w2v3w1v1w3v1w2v2w1] \left\{\begin{array}{c} p_1 = \begin{vmatrix} v_2 & w_2 \\ v_3 & w_3\end{vmatrix} = v_2w_3 - v_3w_2 \\ p_2 = \begin{vmatrix} v_1 & w_1 \\ v_3 & w_3\end{vmatrix} = v_3w_1 - v_1w_3 \\ p_3 = \begin{vmatrix} v_1 & w_1 \\ v_2 & w_2\end{vmatrix} = v_1w_2 - v_2w_1 \end{array}\right. \Leftrightarrow \boldsymbol{\vec{p}} = \begin{bmatrix} v_2w_3 - v_3w_2 \\ v_3w_1 - v_1w_3 \\ v_1w_2 - v_2w_1 \end{bmatrix}

向量p\boldsymbol{\vec{p}}这不就是向量v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}的叉积嘛(p=v×w\boldsymbol{\vec{p}}=\boldsymbol{\vec{v}} \times \boldsymbol{\vec{w}})!此时再回到最开始的问题,我们找的这个向量p\boldsymbol{\vec{p}}与三维空间中任意向量的点积,就等于该向量与v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}组成的平行六面体的体积。而现在p\boldsymbol{\vec{p}}又显然等于v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}的叉积。那也就是说对于三维空间中任意向量x\boldsymbol{\vec{x}},有px=(v×w)x\boldsymbol{\vec{p}} \cdot \boldsymbol{\vec{x}} = (\boldsymbol{\vec{v}} \times \boldsymbol{\vec{w}}) \cdot \boldsymbol{\vec{x}},且这个点积的值就等于x\boldsymbol{\vec{x}}v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}所组成的平行六面体的体积。向量叉积往往也就用于计算三维空间中的体积。

此时再联系点积的几何意义做进一步解释以辅助理解,p\boldsymbol{\vec{p}}x\boldsymbol{\vec{x}}的点积相当于x\boldsymbol{\vec{x}}p\boldsymbol{\vec{p}}的方向上的投影长度与p\boldsymbol{\vec{p}}的长度的乘积。而p\boldsymbol{\vec{p}}就是v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}的叉积,p=v×w\boldsymbol{\vec{p}}=\boldsymbol{\vec{v}} \times \boldsymbol{\vec{w}}。根据叉积的定义,p\boldsymbol{\vec{p}}垂直于v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}},那么x\boldsymbol{\vec{x}}p\boldsymbol{\vec{p}}的方向上的投影长度就是高;p\boldsymbol{\vec{p}}的长度等于v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}组成的平行四边形的面积,就是底面积。那么,p\boldsymbol{\vec{p}}x\boldsymbol{\vec{x}}的点积等于x\boldsymbol{\vec{x}}v\boldsymbol{\vec{v}}w\boldsymbol{\vec{w}}所组成的平行六面体的体积。还是来一张视频里的截图更实在:
【总结】线性代数的本质 - 3

3.3 基变换

3.3.1 基变换基本方法

到现在为止,都是在笛卡尔直角坐标系中进行的,也就是选择互相垂直的单位向量作为基向量。为了方便描述,下面都将笛卡尔直角坐标系简称D系。但正如之前所述,只要是任意一组线性无关的n个向量,都可以张成n维空间,这组向量也就可以作为这个空间的基。

为了简便,先在二维平面中讨论。如果任意选择二维平面上的两个线性无关的向量b1\boldsymbol{\vec{b_1}}b2\boldsymbol{\vec{b_2}}作为基向量,将这两个基向量形成的坐标系简称为B系。这两个向量在D系中的坐标分别为b1=[ab]\boldsymbol{\vec{b_1}} = \begin{bmatrix} a \\ b \end{bmatrix}b2=[cd]\boldsymbol{\vec{b_2}} = \begin{bmatrix} c \\ d \end{bmatrix},也就是说b1=ai+bj;  b2=ci+dj\boldsymbol{\vec{b_1}}=a\boldsymbol{\vec{i}} + b\boldsymbol{\vec{j}};\; \boldsymbol{\vec{b_2}}=c\boldsymbol{\vec{i}} + d\boldsymbol{\vec{j}}。那么在B系中的任意一个向量xb=[xy]\boldsymbol{\vec{x_b}} = \begin{bmatrix} x \\ y \end{bmatrix}在D系(笛卡尔直角坐标系)中的坐标应该是怎样的?

既然xb=[xy]\boldsymbol{\vec{x_b}} = \begin{bmatrix} x \\ y \end{bmatrix}中的x和y是向量在B坐标系中的坐标表示,也就是说xb=xb1+yb2\boldsymbol{\vec{x_b}}=x\boldsymbol{\vec{b_1}} + y\boldsymbol{\vec{b_2}},展开来看:
xb=xb1+yb2=x(ai+bj)+y(ci+dj)=(ax+cy)i+(bx+dy)j=[ax+cybx+dy]=[acbd][xy] \begin{aligned} \boldsymbol{\vec{x_b}} &= x\boldsymbol{\vec{b_1}} + y\boldsymbol{\vec{b_2}} = x(a\boldsymbol{\vec{i}} + b\boldsymbol{\vec{j}}) + y(c\boldsymbol{\vec{i}} + d\boldsymbol{\vec{j}}) = (ax+cy)\boldsymbol{\vec{i}} + (bx+dy)\boldsymbol{\vec{j}} \\ & = \begin{bmatrix} ax+cy \\ bx+dy \end{bmatrix} = \begin{bmatrix} a & c \\ b & d \end{bmatrix} * \begin{bmatrix} x \\ y \end{bmatrix} \end{aligned}

上式也体现出来了,根据向量在B坐标系中的坐标寻找其在D坐标系中的坐标,也就相当于左乘B坐标系基向量组成的矩阵[b1,b2][\boldsymbol{\vec{b_1}},\boldsymbol{\vec{b_2}}]。这点从几何角度也可以很好理解,左乘这个矩阵也就把二维平面进行了变换,变换后D坐标系中的基向量也就落在了矩阵各列表示的向量上,也就是i\boldsymbol{\vec{i}}变成了b1\boldsymbol{\vec{b_1}}j\boldsymbol{\vec{j}}变成了b2\boldsymbol{\vec{b_2}}。故矩阵的另一个作用也就是用来计算基变换后向量的坐标,在变换前的坐标。也就是用来“翻译”不同坐标系中对同一个向量的坐标表示。不过一定要注意这种基变换的原点位置是不变的,并且要注意“翻译”的方向。
[acbd][xy]=[ax+cybx+dy] {\color{red}\begin{bmatrix} a & c \\ b & d \end{bmatrix}} * {\color{blue} \begin{bmatrix} x \\ y \end{bmatrix}} = {\color{red} \begin{bmatrix} ax+cy \\ bx+dy \end{bmatrix} }

上面的式子中,蓝色部分是B坐标系中的坐标表示,红色部分都是D坐标系中的坐标表示。左乘B坐标系的基向量组成的矩阵,是将向量在B坐标系中的坐标翻译成在D坐标系中的坐标。一定要注意这个翻译方向:B坐标系->D坐标系。并且注意该矩阵中B坐标系基向量的坐标b1=[ab]\boldsymbol{\vec{b_1}} = \color{red}\begin{bmatrix} a \\ b \end{bmatrix}b2=[cd]\boldsymbol{\vec{b_2}} = \color{red} \begin{bmatrix} c \\ d \end{bmatrix}仍然是在D坐标系下的表示。而这两个向量是B坐标系中的基向量,所以它们在B坐标系中的坐标其实是[10]\color{blue}\begin{bmatrix} 1 \\ 0 \end{bmatrix}[01]\color{blue}\begin{bmatrix} 0 \\ 1 \end{bmatrix}

那左乘这个矩阵的逆[acbd]1{\begin{bmatrix} a & c \\ b & d \end{bmatrix}}^{-1},代表了逆向变换,也就是将基向量从b1\boldsymbol{\vec{b_1}}变回了i\boldsymbol{\vec{i}};从b2\boldsymbol{\vec{b_2}}变回了j\boldsymbol{\vec{j}}。坐标系也从B坐标系变回了D坐标系。D坐标系中的任意一个向量左乘该逆矩阵也就能将该向量在D坐标系中的坐标“翻译”成它在B坐标系中的坐标。同时这个逆矩阵[acbd]1{\begin{bmatrix} a & c \\ b & d \end{bmatrix}}^{-1}的第一列和第二列,也就分别是D坐标系中的基向量i\boldsymbol{\vec{i}}j\boldsymbol{\vec{j}}在B坐标系中的坐标。

3.3.2 基变换与线性变换

现在就可以看到矩阵除了线性变换,也可以进行基变换。但把二者结合还可以看到更多有用的技巧。假设一个N×NN \times N的矩阵M\boldsymbol{M}表示将N维空间进行了线性变换。按照之前的理解,变换后N维空间中的第ii个基向量就变换到了矩阵中第ii列所表示的向量的位置。上面这些论述均默认在D坐标系下进行,也就是说矩阵M\boldsymbol{M}每一列的数字代表变换后基向量的坐标,而这些坐标都是在D坐标系下表示方式。如果进行同样的变换,在B坐标系下来看,表示同样变换的矩阵就不一定与矩阵M\boldsymbol{M}一样。那同样的变换,在B坐标系中应该是什么样的呢?

其实无论基向量如何变换,对于空间中的同一个向量,在不同坐标系下也只是其坐标表示不同而已,本质上来讲还是同一个向量。那么对于同一种空间变换,在不同坐标系下观察,一个向量在变换后也只是坐标不同,本质上也还是相同的。基于这个思想,就先假设B坐标系下的一个向量vb\boldsymbol{\vec{v_b}}。既然表示空间变换的矩阵M\boldsymbol{M}是D坐标系中表示的,那么也就先把该向量用D坐标系表示出来。假设把B坐标系翻译成D坐标系的基变换矩阵为B\boldsymbol{B},那么向量vb\boldsymbol{\vec{v_b}}在D坐标系下的坐标就是vd=Bvb\boldsymbol{\vec{v_d}} = \boldsymbol{B}\boldsymbol{\vec{v_b}}。既然已经转换到了D坐标系下考虑问题,那么该向量在线性变换后的坐标也就是左乘线性变换矩阵了,vd=Mvd=MBvb\boldsymbol{\vec{v_d}'} = \boldsymbol{M}\boldsymbol{\vec{v_d}}=\boldsymbol{M}\boldsymbol{B}\boldsymbol{\vec{v_b}}。注意现在虽然向量经过了变换,但其坐标仍然是D坐标系下的坐标表示,现在将其变换到B坐标系下,那么也就是再左乘基变换矩阵的逆,vb=B1vd=B1MBvb\boldsymbol{\vec{v_b}'}=\boldsymbol{B}^{-1}\boldsymbol{\vec{v_d}'} = \boldsymbol{B}^{-1}\boldsymbol{M}\boldsymbol{B}\boldsymbol{\vec{v_b}}。此时就可以看出vb=(B1MB)vb\boldsymbol{\vec{v_b}'} = (\boldsymbol{B}^{-1}\boldsymbol{M}\boldsymbol{B})\boldsymbol{\vec{v_b}},也就是说左乘B1MB\boldsymbol{B}^{-1}\boldsymbol{M}\boldsymbol{B}矩阵就表示了在B坐标系下,将同一个向量进行了相同的变换。故这个矩阵也就表示了在D坐标系下矩阵M\boldsymbol{M}所表示的变换,对应地在B坐标系下的表示方式。

综上,左乘一个基变换矩阵B\boldsymbol{B}是在不同的坐标系中看同样一个向量,左乘线性变换矩阵的变形B1MB\boldsymbol{B}^{-1}\boldsymbol{M}\boldsymbol{B},则表示在不同坐标系中看同样一个空间变换。二者都是换了一个角度看一个本质上相同的事情。

3.4 特征向量和特征值

3.4.1 特征向量和特征值求解

在对空间进行线性变换时,可能会有一组向量在变换前后共线(方向相同或相反),长度会被缩放。那么这些特殊的向量就称为这个变换的特征向量(Eigen Vector),每组特征向量对应的缩放比例就称特征值(Eigen Value)。也就是说:
Av=λv \boldsymbol{A}\boldsymbol{\vec{v}} = \lambda\boldsymbol{\vec{v}}

其中A\boldsymbol{A}就是线性变换的矩阵,v\boldsymbol{\vec{v}}就是特征向量,λ\lambda就是对应的特征值。要解某个线性变换矩阵对应的特征向量和特征值,就可以对上式进行如下变化:
Av=λvAv=λIv(AλI)v=0 \boldsymbol{A}\boldsymbol{\vec{v}} = \lambda\boldsymbol{\vec{v}} \Leftrightarrow \boldsymbol{A}\boldsymbol{\vec{v}} = \lambda\boldsymbol{I}\boldsymbol{\vec{v}} \Leftrightarrow (\boldsymbol{A} - \lambda\boldsymbol{I})\boldsymbol{\vec{v}} = \boldsymbol{\vec{0}}

其中I\boldsymbol{I}表示单位矩阵。所以问题就转化为了求解矩阵AλI\boldsymbol{A} - \lambda\boldsymbol{I}的零空间(或核)。按照之前对零空间的理解,当且仅当矩阵AλI\boldsymbol{A} - \lambda\boldsymbol{I}的行列式为0的时候其零空间才有非零解。因此根据AλI=0|\boldsymbol{A} - \lambda\boldsymbol{I}|=0,其实就可以解得特征值λ\lambda。下面以二维平面举例:
AλI=aλbcdλ=(aλ)(dλ)bc=0 |\boldsymbol{A} - \lambda\boldsymbol{I}| = \begin{vmatrix} a-\lambda & b \\ c & d-\lambda \end{vmatrix} = (a-\lambda)(d-\lambda)-bc=0

可以看出这是一个关于λ\lambda的一元二次方程,因此最多有两个实数解。将不同的特征值分别代入(AλI)v=0(\boldsymbol{A} - \lambda\boldsymbol{I})\boldsymbol{\vec{v}} = \boldsymbol{\vec{0}},也就可以解得对应的特征向量了。也很好推论对于一个N维方阵,其对应的求解特征值的AλI=0|\boldsymbol{A} - \lambda\boldsymbol{I}|=0行列式一定是一个关于特征值的一元N次方程,那么最多有n个实数解。再举一个具体的例子,比如对于线性变换矩阵[3102]\begin{bmatrix}3 & 1 \\ 0 & 2 \end{bmatrix},其特征值和特征向量分别为:
AλI=3λ102λ=(3λ)(2λ)=0λ=2  or  3when λ=2,  (AλI)v=[1100][xy]=[00]v满足x+y即可when λ=3,  (AλI)v=[0101][xy]=[00]v满足y=0即可 \begin{aligned} & |\boldsymbol{A} - \lambda\boldsymbol{I}| = \begin{vmatrix} 3-\lambda & 1 \\ 0 & 2-\lambda \end{vmatrix} = (3-\lambda)(2-\lambda)=0 \Leftrightarrow \lambda = 2 \; \text{or} \; 3 \\ & \text{when } \lambda = 2, \; (\boldsymbol{A} - \lambda\boldsymbol{I})\boldsymbol{\vec{v}} = \begin{bmatrix} 1 & 1 \\ 0 & 0 \end{bmatrix} * \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix} \Leftrightarrow \boldsymbol{\vec{v}}\text{满足}x+y\text{即可} \\ & \text{when } \lambda = 3, \; (\boldsymbol{A} - \lambda\boldsymbol{I})\boldsymbol{\vec{v}} = \begin{bmatrix} 0 & 1 \\ 0 & -1 \end{bmatrix} * \begin{bmatrix} x \\ y \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix} \Leftrightarrow \boldsymbol{\vec{v}}\text{满足}y=0\text{即可} \end{aligned}

也就是说在经过矩阵[3102]\begin{bmatrix}3 & 1 \\ 0 & 2 \end{bmatrix}进行线性变换后,所有落在y+x=0y+x=0上的向量方向不变,长度被拉伸为之前的2倍;所有落在y=0y=0上(即x轴上)的向量方向不变,长度被拉伸为之前的3倍。

此时考虑逆时针旋转90°,其变换矩阵为[0110]\begin{bmatrix}0 & -1 \\ 1 & 0 \end{bmatrix},很容易求得AλI=λ11λ=λ2+1=0|\boldsymbol{A} - \lambda\boldsymbol{I}| = \begin{vmatrix} -\lambda & -1 \\ 1 & -\lambda \end{vmatrix} = \lambda^2 + 1 = 0。可见该矩阵的特征值没有实数解,但若在复数范围考虑问题,λ=±1=±i\lambda = \pm \sqrt{-1} = \pm i。视频里简单提了一句,在复平面中,与复数ii相乘就表现为旋转90°。因此若特征值有复数解,往往表示对应的线性变换是某种形式的旋转。这个有点超纲,等有空了可以再去钻研。

再考虑剪切,其变换矩阵为[1101]\begin{bmatrix}1 & 1 \\ 0 & 1 \end{bmatrix},则AλI=1λ101λ=(1λ)2=0|\boldsymbol{A} - \lambda\boldsymbol{I}| = \begin{vmatrix} 1-\lambda & 1 \\ 0 & 1-\lambda \end{vmatrix} =(1-\lambda)^2 = 0。显然特征值只有一个解,即λ=1\lambda = 1,且对应的特征向量即为落在y=0y=0上的所有向量。

但若特征值只有一个解,并不一定表示会有对应的一组在一条直线上的特征向量。比如对于变换矩阵[3003]\begin{bmatrix}3 & 0 \\ 0 & 3 \end{bmatrix},则AλI=3λ003λ=(3λ)2=0|\boldsymbol{A} - \lambda\boldsymbol{I}| = \begin{vmatrix} 3-\lambda & 0 \\ 0 & 3-\lambda \end{vmatrix} =(3-\lambda)^2 = 0,其特征值仍然只有一解λ=3\lambda = 3。然而该变换将二维平面上的所有向量均方向不变地拉伸了3倍。因此这是一个特殊情况。

3.4.2 对角化

在这一小节简单聊聊这种特殊情况。对于类似[3003]\begin{bmatrix}3 & 0 \\ 0 & 3 \end{bmatrix}这种除了主对角线外其他元素均为0的矩阵,称其为对角矩阵(Diagonal Matrix)。注意对角线上的元素不为0,但也不一定相等。从几何角度很容易理解,如果按照对角矩阵进行变换,那么变换后所有基向量也就是其特征向量,并且对角元素的值也就是对应的特征值。

对角矩阵有一个对计算很有用的性质,就是一个向量左乘m个对角矩阵,其效果也就相当于每个坐标乘以对应对角元的m次方,即:
Dv=[d1000d20000dn][x1x2xn]=[d1x1d2x2dnxn]Dmv=[d1mx1d2mx2dnmxn] \begin{aligned} & \boldsymbol{D} * \boldsymbol{\vec{v}} = \begin{bmatrix} d_1 & 0 & \cdots & 0 \\ 0 & d_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & 0 \\ 0 & 0 & \cdots & d_n \end{bmatrix} * \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} = \begin{bmatrix} d_1x_1 \\ d_2x_2 \\ \vdots \\ d_nx_n \end{bmatrix} \\ & \Rightarrow \boldsymbol{D}^m * \boldsymbol{\vec{v}} = \begin{bmatrix} d_1^mx_1 \\ d_2^mx_2 \\ \vdots \\ d_n^mx_n \end{bmatrix} \end{aligned}

可以看出如果把一个矩阵化成对角矩阵,那么就可以极大地简化该矩阵的乘法。之前说了从几何角度来看,如果按照对角矩阵进行变换,那么变换后所有基向量也就是其特征向量。但一个矩阵M\boldsymbol{M}表示的线性变换,其特征向量并不一定就是基向量,不过我们可以进行基变换啊。也就是说将变换矩阵的特征向量作为基向量,那么就要在以特征向量形成的坐标系统下考虑问题。

还是在二维平面上举例子,假设一个二维的线性变换矩阵M\boldsymbol{M}对应的特征向量e1=[ab];e2=[cd]\boldsymbol{\vec{e_1}} = \begin{bmatrix} a \\ b \end{bmatrix};\boldsymbol{\vec{e_2}} = \begin{bmatrix} c \\ d \end{bmatrix}。那么若以这两个特征向量为基向量,对应的坐标系统命名为A坐标系,对应的基变换矩阵即为A=[acbd]\boldsymbol{A} = \begin{bmatrix} a & c \\ b & d \end{bmatrix}。而线性变换矩阵M\boldsymbol{M}还是在D坐标系(笛卡尔直角坐标系)中的表示,要寻找其在A坐标系下对应的矩阵,根据之前的知识,就是M=A1MA\boldsymbol{M'}=\boldsymbol{A^{-1}}\boldsymbol{M}\boldsymbol{A}。既然是在以线性变换矩阵的特征向量作为基向量的坐标系中,那么M\boldsymbol{M'}一定是一个对角矩阵,并且其对角元就分别是e1e2\boldsymbol{\vec{e_1}}\boldsymbol{\vec{e_2}}对应的特征值λ1λ2\lambda_1\lambda_2,即M=[λ100λ2]\boldsymbol{M'}=\begin{bmatrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{bmatrix}。这个过程就称为对原矩阵M\boldsymbol{M}的对角化。很明显,从对角化的过程就可以看出,一个N维矩阵能够成功对角化,要求其有n个线性无关的特征向量,否则无法根据特征向量构建一个新的n维空间的坐标系统。

3.5 向量的再抽象

Up主在最后又再次对向量等相关概念进行了再抽象。首先讨论了很多东西是类似向量的,比如函数。函数就可以看做是无穷维度的连续型向量。反过来,向量[0,1,4,9,16,][0,1,4,9,16,\cdots]就可以看成是函数f(x)=x2f(x)=x^2的离散形式。这就让我联想到了在R语言中进行函数作图,往往还不就是将一个表示x的向量作为参数,输入一个函数,返回一个等长的表示x对应函数值y的向量。之后描点、连线就是这个函数粗糙的图像。点越密,函数图像也就越平滑。

既然向量有线性变换,那么其实对函数也有对应的线性变换的概念。这种对函数的变换,也被称为算子(Operator),那么对函数进行的线性变换,就被称为线性算子(Linear Operator)。对函数来说,一个变换LL是线性的,其定义与对向量的线性变换一致,即变换要满足下面两条性质:

  • 可加性(Additivity):L[f(x)+g(x)]=L[f(x)]+L[g(x)]L[f(x)+g(x)] = L[f(x)] + L[g(x)]
  • 一次齐性/成比例性(Scaling):L[cf(x)]=cL[f(x)]L[cf(x)] = cL[f(x)]

Up主举了一个例子,对函数的求导其实就是一种线性变换。这点熟悉微积分的基础知识其实都知道:
{h(x)=f(x)+g(x)h(x)=f(x)+g(x)h(x)=2f(x)h(x)=2f(x) \left\{\begin{array}{c} \begin{aligned} & h(x)=f(x)+g(x) \Rightarrow h'(x)=f'(x) + g'(x) \\ & h(x)=2f(x) \Rightarrow h'(x) = 2f'(x) \end{aligned} \end{array}\right.

此外,Up主又提出了任意一个关于x的多项式,都可以用向量来表示,其中每一项就是不同幂次的x前的系数。如:
5x3+2x+1[12050] 5x^3+2x+1 \Rightarrow \begin{bmatrix} 1 \\ 2 \\ 0 \\ 5 \\ 0 \\ \vdots \end{bmatrix}

这一点在多项式回归中是经常使用到的。

总之很多不同领域的概念或模型,如果进行再度抽象后会发现极度相似甚至相同。Up主最后有一句话我觉得也非常有哲理:普适的代价是抽象(Abtractness is the price of generality)。而在抽象层面最佳的表达方式绝对是数学!数学很抽象,因此往往会有些枯燥,不过如果像Up主这样,在学习数学的时候往往去联想它的几何意义,或者其在现实中的一些具体体现,那我想自然是生动得多的。

相关文章: