all_lessons/数学的逻辑/22第 23 课 / 共 44 课

第七部分 · 表示与几何

主轴:特征值与特征向量

上一课我们终于看清:一个线性变换会把整个空间又拉又转又压。可一团搅得天翻地覆的变换里,总该有点"骨架"——总有那么几个方向,被变换之后只伸缩、不掉头。找到它们,就找到了变换的脾气,也找到了数据的主轴。

线性回顾
上一课:我们用子空间、基、秩,把"方程 Ax = b 何时有解、解唯不唯一"翻译成了几何——一个矩阵把空间拍扁到它的列张成的子空间里,秩就是这个子空间的维数。
留下的问题:一个矩阵把空间搅得乱七八糟:有的方向被拉长、有的被压短、大多数方向还被掰歪了(变换前后不在一条直线上)。这么一团乱麻里,有没有几个"特殊方向",是这个变换最看重的、最能代表它本性的?换句话说,能不能给"一个变换"找一副骨架?
本课新增:特征向量——被变换后只缩放、绝不转向的那些方向;以及特征值——它在那个方向上把东西放大或缩小的倍数。一句话 Av = λv,把"变换的主轴"一次性钉死。
本课路线
(1) 把第 11 课的"矩阵是动作"再往前推一步:动作里藏着不动的方向。(2) 写下定义 Av = λv,逐个符号读懂。(3) 几何上看:特征方向是变换里"不掉头"的轴,特征值是它的拉伸倍数。(4) 怎么把它们解出来——特征方程。(5) 为什么对称矩阵的特征向量互相垂直,这件事后面会反复用到。(6) 它能给我们什么——把变换、把数据,都拆成几根独立的主轴。

一个变换里,有没有"不掉头"的方向

回到第 11 课最该记住的那句话:矩阵不是数表,矩阵是动作——它把平面上每个点搬到新位置。现在盯着一个具体的动作,比如"把横向拉到 2 倍、纵向不变"。你随手画一支斜着的箭,变换之后它会怎样?它既被拉长、又被掰歪了——方向变了。

但有两支箭很特别。一支沿横轴:变换后还在横轴上,只是长了一倍,没掉头。一支沿纵轴:变换后纹丝不动,也没掉头。绝大多数方向都被这个动作"扭"了,唯独这两个方向,变换只是沿着它们自己把它们拉伸——方向岿然不动。

这就是我们要找的骨架。一个线性变换无论看起来多复杂,往往都有这么几个"它只敢拉伸、不敢掰歪"的方向。把这些方向找出来,就等于看穿了这个变换的本性:它在这些轴上各放大或缩小多少,整个动作的脾气就全在里头了。

定义:Av = λv,逐字读

把"方向不变、只缩放"这句话翻译成式子。设变换是矩阵 A,那个特殊方向上的一支非零箭是 v。"变换之后还在同一条直线上、只是长度变了",意思就是变换后的箭 Av,恰好等于原来的箭 v 乘上某个数 λ

A v = λ v (读作"A 作用在 v 上,等于 λ 乘 v")

逐个符号读懂它:

这条等式的左边 Av 是"做一次复杂的矩阵变换",右边 λv 是"只把箭拉长 λ 倍"。它们相等,等于在说:对 v 这个方向而言,那个复杂的矩阵动作,退化成了一个简单的"乘以一个数"。这就是特征向量的全部魔力——它把矩阵这台机器,在某些方向上化简成了一次乘法。

λ 的正负零,各是什么意思
同一个变换,不同的特征方向可以有不同的 λλ > 1:沿这个方向被拉长;0 < λ < 1:被压短;λ = 1:这个方向上的箭原封不动;λ < 0:被翻到反方向去(还在同一条直线上,所以仍算"没掉头",只是掉了个个儿);λ = 0:这个方向被压成了原点——正好对应上一课的"被压扁、降维、不可逆",此时 det(A) = 0

几何:特征方向是变换的"主轴"

给个具体例子,把它彻底坐实。看这个矩阵:

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 个特征值——主轴的数目,正好够把整个空间撑起来(在最理想的情形下)。

和第 4 课、第 12 课的暗线
特征方程是一个 n 次多项式方程。还记得第 4 课吗——代数基本定理保证 n 次方程在复数 里恰有 n 个根。所以严格说,特征值可能是复数:一个纯粹的旋转矩阵在实平面里一个"不掉头的方向"都没有(转了就是转了),它的特征值正是一对共轭复数——复数在这里又一次成了"旋转"的化身。我们当年补复数,今天在这里收到了回报。

对称矩阵:主轴互相垂直

有一类矩阵特别温顺,也特别重要:对称矩阵(沿对角线翻折后和自己一样,即 A 的第 i 行第 j 列 = 第 j 行第 i 列)。它有两条黄金性质:特征值全是实数(不会冒出复数),而且不同特征值对应的特征向量互相垂直(正交)。

"主轴互相垂直"这件事,分量极重。它意味着一个对称变换,可以被理解成:先转到一套互相垂直的新坐标轴上,沿着每根轴各自拉伸,再转回来。没有任何剪切、没有任何纠缠——一团看似复杂的对称变换,被拆成几次干净利落、互不干扰的独立伸缩。

为什么要专门强调它?因为数据里最常出现的矩阵,恰恰是对称的——下一课要登场的协方差矩阵(描述各维数据如何一起波动)就是对称矩阵。它的特征向量,就是数据散布的几个互相垂直的主方向;它的特征值,就是数据在每个主方向上的"摊开程度"。这条暗线,正是从"变换的主轴"通往"数据的主轴"的桥。

单位圆上的所有方向:谁掉头,谁不掉头
滑块设定 2×2 矩阵 [ a b ; c d ]。淡圈是原始的单位圆(所有方向的箭),蓝色闭合曲线是它被变换后的样子(一般是椭圆)。红色粗箭标出的是特征方向——这些方向上的箭变换后不掉头,只伸缩,旁边标着特征值 λ。试试"对称矩阵"按钮,看两根红轴变成互相垂直;试试"纯旋转",看红箭消失(实数里没有不掉头的方向)。
特征值 λ₁
2.00
特征值 λ₂
1.00
两根特征方向
实·两条

它给了我们什么

特征值与特征向量,是把"一个变换"或"一团数据"拆成几根独立主轴的工具。一旦你站到主轴的坐标系里看,一个纠缠的高维变换,就摊开成"沿着每根轴各乘一个数"——这是线性代数里最深的化简之一。它的用处遍地都是:搜索引擎的网页排名(PageRank)算的就是一个巨大矩阵的头号特征向量;振动系统的固有频率、量子力学里的能级,都是某个算子的特征值;而在机器学习里,它直接催生了下一课要造的降维利器。

常见误解

一句话带走
一个线性变换里,总藏着几个只伸缩、不掉头的方向——特征向量,每个方向上的伸缩倍数就是它的特征值 λ,一句 Av = λv 把它钉死。特征方向是变换(或数据)的主轴:站到主轴坐标系里,一团纠缠的高维动作,就摊成"沿每根轴各乘一个数"。对称矩阵的主轴还互相垂直——这正是下一课读懂数据结构的钥匙。
下一步
特征分解很美,但它有个硬伤:Av = λv 要求 A方阵——行数等于列数。可现实里的数据矩阵几乎从不是方阵:一千个样本、各五十个特征,那是 1000×50 的长方形;而且数据还带着噪声。对一个又长又方、还脏兮兮的矩阵,怎么找它的"主轴"?答案是把特征分解推广到任意矩阵——奇异值分解;再用它沿"数据摊得最开"的方向投影,把几百维压成几维而几乎不丢信息——这就是主成分分析 PCA。→ 第 23 课《SVD 与 PCA:把高维数据压扁而不失真》。