第七部分 · 表示与几何
主轴:特征值与特征向量
上一课我们终于看清:一个线性变换会把整个空间又拉又转又压。可一团搅得天翻地覆的变换里,总该有点"骨架"——总有那么几个方向,被变换之后只伸缩、不掉头。找到它们,就找到了变换的脾气,也找到了数据的主轴。
留下的问题:一个矩阵把空间搅得乱七八糟:有的方向被拉长、有的被压短、大多数方向还被掰歪了(变换前后不在一条直线上)。这么一团乱麻里,有没有几个"特殊方向",是这个变换最看重的、最能代表它本性的?换句话说,能不能给"一个变换"找一副骨架?
本课新增:特征向量——被变换后只缩放、绝不转向的那些方向;以及特征值——它在那个方向上把东西放大或缩小的倍数。一句话 Av = λv,把"变换的主轴"一次性钉死。
一个变换里,有没有"不掉头"的方向
回到第 11 课最该记住的那句话:矩阵不是数表,矩阵是动作——它把平面上每个点搬到新位置。现在盯着一个具体的动作,比如"把横向拉到 2 倍、纵向不变"。你随手画一支斜着的箭,变换之后它会怎样?它既被拉长、又被掰歪了——方向变了。
但有两支箭很特别。一支沿横轴:变换后还在横轴上,只是长了一倍,没掉头。一支沿纵轴:变换后纹丝不动,也没掉头。绝大多数方向都被这个动作"扭"了,唯独这两个方向,变换只是沿着它们自己把它们拉伸——方向岿然不动。
这就是我们要找的骨架。一个线性变换无论看起来多复杂,往往都有这么几个"它只敢拉伸、不敢掰歪"的方向。把这些方向找出来,就等于看穿了这个变换的本性:它在这些轴上各放大或缩小多少,整个动作的脾气就全在里头了。
定义:Av = λv,逐字读
把"方向不变、只缩放"这句话翻译成式子。设变换是矩阵 A,那个特殊方向上的一支非零箭是 v。"变换之后还在同一条直线上、只是长度变了",意思就是变换后的箭 Av,恰好等于原来的箭 v 乘上某个数 λ:
A v = λ v (读作"A 作用在 v 上,等于 λ 乘 v")
逐个符号读懂它:
- A:一个 n × n 的方阵,也就是那个"动作"。
- v:一支非零的箭(零向量谁都满足,没意义,所以排除)。它叫 A 的特征向量(eigenvector),"特征"就是"能代表本性"的意思。
- λ(读作"lambda"):一个数,叫特征值(eigenvalue)。它就是这个方向上的拉伸倍数。
这条等式的左边 Av 是"做一次复杂的矩阵变换",右边 λv 是"只把箭拉长 λ 倍"。它们相等,等于在说:对 v 这个方向而言,那个复杂的矩阵动作,退化成了一个简单的"乘以一个数"。这就是特征向量的全部魔力——它把矩阵这台机器,在某些方向上化简成了一次乘法。
几何:特征方向是变换的"主轴"
给个具体例子,把它彻底坐实。看这个矩阵:
A = [ 2 0 ; 0 3 ] (第一列 (2, 0) 是 î 的落点,第二列 (0, 3) 是 ĵ 的落点)
它把横向拉 2 倍、纵向拉 3 倍。试横轴方向的箭 v = (1, 0):A·(1,0) = (2, 0) = 2·(1,0)。果然 Av = 2v,所以 (1,0) 是特征向量,特征值 λ₁ = 2。再试纵轴 v = (0, 1):A·(0,1) = (0, 3) = 3·(0,1),于是 (0,1) 也是特征向量,λ₂ = 3。
这两个方向(横轴、纵轴)就是这个变换的主轴。其余任何斜方向的箭,变换后都会向"被拉得更狠"的那根轴偏过去——这正是为什么它们会"掉头"。主轴是变换的脊梁:知道了几根主轴和各自的拉伸倍数,整个变换就被还原成"沿着这几根独立的轴,各拉伸各的"。本课的小实验会让你看到:让矩阵作用在单位圆上所有的箭,圆会被压成一个椭圆,而椭圆的长轴短轴,正落在特征方向上。
怎么把它们解出来
例子里的特征向量是"看出来"的,但一般的矩阵没这么客气。有没有机械的办法?把定义挪一下项:Av = λv 就是 Av − λv = 0,也就是 (A − λI)v = 0,其中 I 是单位矩阵(对角线全 1、其余全 0 的"不动"变换),这一步只是为了让 λv 也写成"矩阵乘 v"的样子。
现在关键来了。我们要的是一支非零的 v,满足 (A − λI)v = 0。这等于说:矩阵 (A − λI) 把一支非零的箭压成了原点。回想上一课——一个变换能把非零向量压成零,当且仅当它把空间压扁、不可逆,也就是它的行列式为零:
det(A − λI) = 0 (读作"A 减 λ 乘单位阵,这个矩阵的行列式等于零")
这叫特征方程。它把求 λ 变成了解一个关于 λ 的多项式方程(对 n × n 矩阵是 n 次方程)。解出每个 λ,再回代进 (A − λI)v = 0 求出对应的方向 v。一个 n 维变换,最多有 n 个特征值——主轴的数目,正好够把整个空间撑起来(在最理想的情形下)。
对称矩阵:主轴互相垂直
有一类矩阵特别温顺,也特别重要:对称矩阵(沿对角线翻折后和自己一样,即 A 的第 i 行第 j 列 = 第 j 行第 i 列)。它有两条黄金性质:特征值全是实数(不会冒出复数),而且不同特征值对应的特征向量互相垂直(正交)。
"主轴互相垂直"这件事,分量极重。它意味着一个对称变换,可以被理解成:先转到一套互相垂直的新坐标轴上,沿着每根轴各自拉伸,再转回来。没有任何剪切、没有任何纠缠——一团看似复杂的对称变换,被拆成几次干净利落、互不干扰的独立伸缩。
为什么要专门强调它?因为数据里最常出现的矩阵,恰恰是对称的——下一课要登场的协方差矩阵(描述各维数据如何一起波动)就是对称矩阵。它的特征向量,就是数据散布的几个互相垂直的主方向;它的特征值,就是数据在每个主方向上的"摊开程度"。这条暗线,正是从"变换的主轴"通往"数据的主轴"的桥。
它给了我们什么
特征值与特征向量,是把"一个变换"或"一团数据"拆成几根独立主轴的工具。一旦你站到主轴的坐标系里看,一个纠缠的高维变换,就摊开成"沿着每根轴各乘一个数"——这是线性代数里最深的化简之一。它的用处遍地都是:搜索引擎的网页排名(PageRank)算的就是一个巨大矩阵的头号特征向量;振动系统的固有频率、量子力学里的能级,都是某个算子的特征值;而在机器学习里,它直接催生了下一课要造的降维利器。
常见误解
- "特征向量是一支固定的箭。"不是。Av = λv 说的是方向不变——如果 v 是特征向量,那 2v、−v、任意倍的 v 都是(同样满足等式)。所以特征向量真正指的是一条不掉头的直线(方向),我们通常挑长度为 1 的那支当代表。
- "任何矩阵都有(实数的)特征向量。"不一定。在实平面里,一个把整个空间转 90° 的旋转矩阵,没有任何方向能在变换后不掉头——它的特征值是一对复数。要让"实数特征向量一定存在、还互相垂直"成立,需要矩阵是对称的(这正是数据矩阵的福气)。
- "特征值越大越重要,越小越能扔。"这是个有用的直觉,但要小心语境。在"代表数据散布"的对称矩阵里,大特征值确实对应"摊得最开、信息最多"的主方向,小特征值对应可忽略的细节——这正是下一课降维的依据。但在别的场合(比如稳定性分析),最该盯着的反而可能是最小或为负的特征值。大小的含义,由矩阵代表什么而定。