空间可以容纳运动,是从一个点到另一个点的移动(变换),容纳运动是空间的本质特征
矩阵则是线性空间的变换
线性空间中的运动,被称为线性变换。也就是说,你从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成。
在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)。而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵,乘以代表那个对象的向量。
在线性空间中选定基之后,向量刻画对象,矩阵刻画对象的运动,用矩阵与向量的乘法施加运动。
矩阵的本质是运动的描述
矩阵的特征向量跟特征值的英文名字分别是 eigenvector 跟 eigenvalue,这俩概念非常有用。
大部分同学可能脑子里想一下还能记得他们俩是怎么计算出来的,但是他们为什么可以代表一个矩阵的“特征”呢?除了这俩,相信大多数同学都不记得矩阵的行列式是个什么东西了,总之不太直观。相比较而言,矩阵的迹(trace)这个概念就比较直观,就是主对角线上的元素之和。
“eigen”在德语里的意思是“自身的”,“固有的”,在我们汉语里把它翻译成“特征”;无论德语还是汉语,都表达出了特征值跟特征向量其实是一个矩阵内在的,独有的东西。特征值跟特征向量是定义在方阵上的,为了方便通过图表描述,我们从最简单的2*2方阵入手:把方阵A∈R2×2理解成二维平面上的一个映射,平面上任意一个向量x∈R2×1都可以被映射成一个新的向量x′=Ax,画在图上就是
对比着俩图可以发现,对于一个固定的矩阵A,一般的向量被他transform之后都会改变方向,但是有一些特殊的向量,被A映射了之后还是保持它本来的方向,改变的只是它的模长。这些特殊向量的方向不变性表达出来就是这样的:
那么要如何计算特征向量呢?从特征向量的定义出发:
从这个方程里,我们不但需要得到v,也需要得到λ。把原问题转化成方程(1)之后,可以发现方程(1)没有常数项,以二维为例可以把(1)写成:
这个方程组想要有非零解,必须得满足a/c=b/d 也就是 (a,c) 跟 (b,d) 共线。
也就是教科书上说的矩阵A不满秩(p.s. 方阵的秩定义为矩阵中线性不相关的行跟列的个数)。
教科书上还告诉我们不满秩的充要条件是矩阵的行列式等于零。矩阵的秩的概念比较容易理解,行列式却没有这么直观。其实 determinant 这个单词被翻译为行列式个人认为不是很传神,感觉 determinant 也需要一个带点“特征”含义的中文名。
与矩阵的秩相似,行列式也是一个数值。还是把矩阵当成一个映射,那么 (0, 1) 跟 (1, 0) 这对基可以被映射成e1′, e2′ ,如图所示,那么矩阵A的行列式就被定义为由e1′, e2′ 这两个向量延伸出来的平行四边形的面积:
用这种方式让一个矩阵跟一个数值产生关系简直是神来之笔。更神奇的是这样做,特征值,特征向量,行列式就关联起来了。不满秩要求行列式为零,那么什么时候一个平行四边形的面积会变成0呢?可以发现,当e1′, e2′ 这俩向量平行的时候,就没什么平行四边形了,平面上就只剩下了一条线段:
什么样的矩阵会产生这种效果呢?对于二维矩阵来说,只要它的两个行向量共线就可以。重新理一下我们现在的逻辑线条:
想让方程组(1)有非零解,必须让它的行向量共线,想让行向量共线,只需要A的行列式为零;二维矩阵的行列式等于平行四边形的面积,三维矩阵的行列式对应的是平行六面体的体积....更高维度上也可以延伸出同样的类似于“体积”的定义。
那么面积要怎么算呢?还是以二维平面为例,两个向量构成的平行四边形的面积可以由下面这个公式计算
令这个计算面积的公式等于零:
这个方程就是课本上的特征方程,方程的解就是特征值。特征方程的解也可以写成这种形式:
方程(2)跟方程(3)必须是一回事。
观察一下这俩方程,可以发现(2)的常数项是 ad−bc; 方程(3)的常数项是λ1⋅λ2 。
结合前面讲的矩阵A的行列式(平行四边形的面积)可以发现:|A|=ad−bc=λ1λ2;对,这不是巧合,实际上在任意维度的矩阵上同样可以证明
行列式等于特征值的乘积。
矩阵的秩则是非0特征值的个数
最后轮到矩阵的trace了,个人觉得trace的中文翻译就更渣了,居然就直勾勾的叫作迹。。。trace的英文名字感觉还跟它的物理意义挺搭的:拿到一个矩阵,我们沿着主对角线往下走到最后,所有元素的和就是trace:trace(A)=∑Aii
下面,高能的部分来了:trace(A)=∑λi ,矩阵的trace等于特征值之和,也就是说矩阵的主对角线元素之和等于它的特征值之和。
如果将矩阵线性行变换为上三角矩阵,则对角元素是特征值
特征值分解是将一个矩阵分解成下面的形式:
其中Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角阵,每一个对角线上的元素就是一个特征值。