特征向量就是方向不变的向量
线性代数的终极大boss,特征值和特征向量。名字吓人,内核却很简单。第5讲说过,矩阵是一个把整个空间又转又拉的变换。于是大多数向量经过变换,方向都会被猛地拧歪。可有那么几个特别的方向,完全不被拧动,只是在原地伸长或缩短。那些拧不动的方向就是特征向量,伸长了多少就是特征值。就这么多。而这两个,把你在第5、6、7讲里看到的全都汇到了一处。
先来看"大多数方向都会被拧歪"。我先挂上一个变换 A。让一支箭头沿着圆转一整圈。原来的方向(淡箭头)和变换后的方向(浓箭头)一起显示着。在大多数角度上,两者指向不同的方向。变换把那个向量从原来的直线上推开了——朝上的歪成了斜的,朝右的被抬了起来。这是常态。变换会把方向搅得到处都是。
可你接着转,在某些特别的角度上,浓箭头会正好落在和淡箭头同一条直线上。方向没变,只有长度变了。就在那儿——那个方向就是特征向量:在变换这股激流里没被冲走、守住了自己那条直线的方向。它在那条线上伸长了多少,那个倍数就是特征值。你来找找看。二维里通常会出来两个这样的方向。变换看起来乱七八糟,其实它偷偷有自己的一套轴——它不去动的那些方向。
来看特征值在那个方向上到底干了什么。骑到特征向量上,变换就只是"乘个几"。特征值是2,你就沿那个方向拉成两倍;是0.5,缩成一半;是1,原样不动。是负的呢?你会在同一条直线上翻到对面去——直线守住了,只是前后调了个个儿。用滑块做出各种变换,读一读每个特征向量的特征值。那个看着复杂的变换,单看特征向量的方向,就缩成了一个朴素的乘法。
这儿才是真正漂亮的地方。把网格不按平常的横竖、而是沿着特征向量的方向重新画,变换就完全变了个样。不转、也不剪,只是把每条轴按它自己的特征值拉一拉。那个复杂的矩阵,在以特征向量为轴的坐标系里,就成了"每条轴乘个几"这么清爽的样子。用切换把网格扭到特征轴上看看。特征向量,是这个变换最自然的轴。从这套轴看过去,任何变换都会露出它最简单的那张脸。
那这些方向怎么找呢?特征向量 v,就是"套上 A 的结果,跟直接乘 λ 一模一样"的那个向量。写成式子就是 Av = λv。把它挪一挪,就成了 (A − λI)v = 0。一个非零的向量 v 被送成了0,意思就是变换 (A − λI) 把空间压扁了。还记得第7讲吗?那它的行列式就必须是0。所以解 det(A − λI) = 0、求 λ,特征值就出来了。第6、7讲那句"行列式为0=被压扁=倒不回去",原来一直就是找特征值的钥匙。顺带一提,行列式等于所有特征值相乘——面积的倍数(第6讲),就是每条轴拉伸倍数的乘积。全都连起来了。