特征值、特征向量与对角化
上一章里,行列式告诉我们一个矩阵有没有把空间压扁,进而判断它是否可逆。但只知道“能不能倒放”还不够。面对一个具体矩阵,我们还会继续问:它最习惯沿哪些方向拉伸?反复作用很多次以后,哪些方向会留下,哪些方向会消失?
特征值和特征向量就是为这些问题准备的。
先想象你在一张橡皮膜上画了许多从原点出发的箭头,再用矩阵把整张膜拉扯一次。大多数箭头会被带到别的方向;只有少数箭头仍落在原来的直线上,区别只是变长、变短、反向,或者被压成零。矩阵对这些方向的动作最干净,我们就从它们入手。

这一章可以一直抓住同一个画面:先找矩阵作用下“不转向”的方向,再用这些方向重新搭一套坐标轴。若这样的方向足够多,原本纠缠在一起的变换就会变成几个互不干扰的缩放。
那些不转向的方向
设 A 是一个 n×n 方阵。若存在非零向量 v 和数 λ,使得
Av=λv
那么 v 叫作 A 的特征向量,λ 叫作与 v 对应的特征值。
这个式子短,但每个条件都有用。
首先,A 必须是方阵。Av 和 v 要落在同一个空间里,我们才能比较它们是不是共线。其次,必须要求 v=0。零向量被任何矩阵送出去都是零,满足 A0=λ0,可它没有方向;若把它也算作特征向量,任意数都会莫名其妙地成为任意矩阵的特征值。
最后,λ 记录的是沿这条直线发生的动作:
- λ>1 时,向量沿原方向变长。
- 0<λ<1 时,向量沿原方向缩短。
- λ=1 时,向量完全不变。
- λ<0 时,向量翻到反方向,再按 缩放。
因此,“特征向量方向不变”说得更严谨一点,是 Av 仍在 v 张成的同一条直线上。若 λ<0,箭头朝向会反过来,但直线没有变。
最容易看懂的矩阵
考虑
A=[30021
它把横坐标乘以 3,把纵坐标乘以 21。于是
A[10]=3[10]
横轴是特征方向,对应特征值 3。同样,
A[01]=21
纵轴也是特征方向,对应特征值 21。
不过,别由此以为只有坐标轴上的向量才可能是特征向量。这里的矩阵已经沿坐标轴分别缩放,所以答案恰好一眼可见。换一个矩阵,最自然的缩放方向往往是斜的,我们得把它算出来。
判断一个给定向量是不是特征向量,不是看 Av 的长度是否等于 v,而是看 Av 能不能写成同一个数乘 v。每个分量必须使用同一个倍率。
特征方程是怎样被逼出来的
定义告诉我们要满足 Av=λv,却没有直接告诉我们怎样找到 λ。真正的突破口来自上一章已经学过的“不可逆”。
从定义开始,把右边移到左边:
Av−λv=0
数 λ 不能直接从矩阵 A 里减掉,所以要写成 λI。因为 Iv=v,于是
(A−λI)v=0
现在我们面对的是一个齐次方程组。零向量永远是解,可特征向量要求非零解。若 A−λI 可逆,两边左乘它的逆矩阵,只会得到 v=0,这条路走不通。因此,我们必须挑出让 A−λI 不可逆的 λ。
上一章已经给出判断:方阵不可逆,当且仅当行列式为零。所以 λ 必须满足
det(A−λI)=0
这就是特征方程。它不是额外背下来的一条规则,而是“齐次方程必须有非零解”这个要求一步步推出来的。

几何上也可以这样看:当 λ 选对时,A−λI 会把至少一个非零方向压成零,因而丢掉维度,行列式只能是零。
二阶矩阵的通用计算
设
A=[acbd]
那么
A−λI=[a−λcbd
特征多项式为
det(A−λI)=(a−λ)(d−λ)−bc
展开得到
det(A−λI)=λ2−(a+d)λ+(ad−
这里藏着两个很好用的验算关系。若两个根是 λ1,λ2,那么
λ1+λ2=a+d=tr(A)
λ1λ2=ad−bc=det(A)
也就是说,两个特征值之和等于迹,乘积等于行列式。算完特征值后顺手核对这两项,很多符号错误会当场暴露。
例题:把计算推到底
求矩阵
A=[4213]
的特征值和对应的特征向量。
先求特征值。写出
A−λI=[4−λ
沿 v1 的方向,矩阵放大 5 倍;沿 v2 的方向,矩阵放大 2 倍。矩阵在普通坐标里会混合横、纵分量,可一旦站到这两条斜方向上看,它的动作反而很简单。
实矩阵不一定有实特征方向
考虑平面上的九十度旋转:
R=[01−10]
它把每条非零实向量都转过九十度,所以在实平面里不可能留下同一直线。计算也会说同样的话:
det(R−λI)=λ2+1
这个方程没有实根,因此 R 没有实特征值,也没有实特征向量。若把数的范围扩展到复数,它有特征值 i 和 −i。本章主要处理实特征值,但要记住:特征多项式有根,得先说明我们在哪个数域里讨论。
三阶矩阵也有捷径
三阶特征多项式直接展开会比二阶麻烦不少。可一旦矩阵是上三角或下三角,事情就很轻松:A−λI 仍是三角矩阵,它的行列式等于主对角线元素的乘积。因此,三角矩阵的特征值就是主对角线上的数,包括重复次数。
看这个上三角矩阵:
B=300
它的特征方程是
det(B−λI)=(3−λ)(2−λ)(−1−λ)=0
所以特征值为
λ1=3,λ2=2,λ3
接下来逐个解零空间。
当 λ=3 时,
B−3I=0
得到 y=0,z=0,而 x 自由,可取
v1=100
当 λ=2 时,
B−2I=10
得到 x+y=0,z=0,可取
v2=1−10
当 λ=−1 时,
B+I=40
得到 x=0,y=0,可取
v3=001
三个特征值互不相同,对应的三个特征向量一定线性无关。这里也能直接看出来:把 v1,v2,v3 放成列,所得矩阵的行列式不为零。于是它们确实能组成三维空间的一组基。
“三角矩阵的特征值就是对角线”只替你省掉了求根,不能替你求特征向量。每个特征值仍要代回 (B−λI)v=0,因为特征向量通常不是标准基向量。
特征空间与两种重数
固定一个特征值 λ 后,所有满足
(A−λI)v=0
的向量连同零向量放在一起,组成 λ 的特征空间:
Eλ=ker(A−λI)
特征向量就是 Eλ 里的非零向量。
为什么要引入“空间”这个说法?因为同一个特征值通常不只对应一支固定长度的箭头。若 v 是特征向量,那么任何非零倍数 cv 都满足
A(cv)=cAv=cλv=λ(cv)
更进一步,同一特征值下的特征向量做线性组合,结果只要不是零,仍是同一特征值的特征向量。我们真正关心的是这批方向能提供多少个彼此独立的坐标轴,也就是 Eλ 的维数。
代数重数数根,几何重数数方向
假设特征多项式里出现因子
(λ−λ0)m
那么 λ0 的代数重数是 m。它回答的是:λ0 作为特征方程的根重复了几次。
而
dimEλ0
叫作 λ0 的几何重数。它回答的是:这个特征值实际提供了多少个线性无关的特征方向。
两者不要混在一起。对任何特征值,都有
1≤几何重数≤代数重数
例如单位矩阵
I=[1001]
的特征多项式是 (1−λ)2,所以 λ=1 的代数重数为 2。同时,任意非零向量都满足 Iv=v,因而
E1=R2
几何重数也是 2。虽然特征值只写出一个不同的数,特征方向却完全够用。
后面会看到,另一个同样具有二重根 1 的矩阵,却只能提供一条独立方向。能不能对角化,差别就在这里。
一个直接的可对角化判据
一个 n×n 矩阵能对角化,当且仅当它能找到 n 个线性无关的特征向量。若特征多项式已经分解,那么也可以把条件说成:所有特征空间的维数加起来等于 n。
由此立刻得到一个常用结论:n×n 矩阵若有 n 个互不相同的特征值,就一定可以对角化。因为不同特征值各取一个特征向量,这些向量自动线性无关。
反过来不成立。特征值有重复,并不代表一定不能对角化;单位矩阵就是最简单的反例。重复根出现时,我们只需要多做一步:计算对应特征空间的维数。
对角化其实是在换坐标
第一次看到
A=PDP−1
很容易把它当作一串需要记忆的矩阵乘法。其实这条式子说的是一件很具体的事:用特征向量重新搭坐标轴后,矩阵 A 只会沿每根新坐标轴分别缩放。
假设 A 有 n 个线性无关的特征向量 v1,…,vn,对应特征值为 。把特征向量按同样顺序放进矩阵 的列:
P=∣
再把对应特征值放进对角矩阵 D:
D=
逐列看,Avi=λivi。把全部列一次写完,就是
AP=PD
由于 v1,…,vn 线性无关,P 可逆。于是
P−1AP=D
等价地,
A=PDP−1

这三个矩阵的顺序不能凭感觉换:
- P−1 把普通坐标 x 改写成特征向量坐标 c。
- D 在新坐标里把第 i 个分量乘以 λ。
矩阵乘法从右往左执行,所以对一个向量 x 来说,PDP−1x 的实际动作正是“换过去、分别缩放、换回来”。
例题:完整对角化
回到前面的矩阵
A=[4213]
我们已经求出
λ1=5,v1=[1
λ2=2,v2=[1
按照同一顺序组成
P=[111−2
P 的行列式是 −3,所以
P−1=[32
先用最省力的方式核对列关系:
AP=[552−4]
PD=[552−4]
两边相等,因此
A=PDP−1
这里还有一个很常见的细节:若把 P 的两列交换,那么 D 中的两个特征值也必须同步交换。特征向量与特征值是一对一配好的,不能各排各的顺序。
高次幂为什么突然变简单
直接计算 A2,A3,A4,矩阵里的数会越来越大,乘法也会重复很多次。可若已经有
A=PDP−1
那么
A2=(PDP−1)(PDP−1)
中间的 P−1P 等于 I,所以
A2=PD2P−1
同样地,对非负整数 k,
Ak=PDkP−1
而对角矩阵的幂只需把每个对角元素做幂:
Dk=
对刚才的例子,可以把乘法做完,得到完整公式:
Ak=31
把 k=1 代回去,右边恰好还原为原矩阵 A。这又是一次很便宜的验算。
不过,如果题目只问 Akx0,往往连完整的 Ak 都不用展开。把 x0 拆到特征方向上,会更直接。
把初始向量拆成独立分量
设
x0=[41]
我们想把它写成
x0=c1v1+c2
也就是解
[41]=c1
比较分量得到
c1+c2=4,c1−
解得 c1=3,c2=1,所以
x0=3v1+v2
矩阵每作用一次,v1 分量乘以 5,v2 分量乘以 2。作用 k 次后:
Akx0=3⋅5kv1
展开就是
Akx0=3⋅5
这比反复做矩阵乘法更能看出长期行为:5k 比 2k 增长得快,所以只要初始向量在 v1 方向上的系数不为零,向量的方向会越来越接近 v。

读长期趋势时要带上条件
对于离散系统
xk+1=Axk
若 A 可对角化,并且
x0=c1v1+⋯+c
那么
xk=Akx0=c
从这里可以读出几种常见情况:
- 若所有 ∣λi∣<1,每个分量都会衰减到零,因而 xk→0。
- 若某个特征值的绝对值严格大于其他特征值,而且初始向量在它的特征方向上有非零分量,这个方向通常会主导长期形状。
- 若主导特征值为负,相邻两步会沿该方向来回翻转。
- 若两个主导特征值的绝对值相同,长期方向未必收敛,几个分量可能一直竞争。
- 若初始向量恰好没有主导方向上的分量,那么即使那个特征值最大,它也不会凭空出现。
“绝对值最大的特征值决定长期方向”不是无条件口号。至少要检查最大绝对值是否唯一、初始向量在对应方向上的系数是否非零,以及当前讨论是否有足够多的特征向量来完成分解。
剪切矩阵为什么不能对角化
现在看一个会卡住整套方法的矩阵:
S=[1011]
它做的是水平剪切。横轴上的向量保持不变,但其他方向会被向右推斜。
先求特征值:
det(S−λI)=det[1−λ0
唯一特征值是 λ=1,代数重数为 2。接着求特征空间:
S−I=[0010]
方程 (S−I)v=0 给出 y=0,因此
E1={[x0]:x∈R}
这个特征空间只有一维,几何重数为 1。二维空间需要两条线性无关的特征向量才能搭成一组基,可剪切矩阵只给出横轴这一条方向,所以不存在可逆的特征向量矩阵 P,也就不能对角化。
剪切留下的“额外动作”还能从高次幂里看出来。把
S=I+N,N=[00
注意到 N2=0。于是二项式展开里二次及更高次的项全消失:
Sk=(I+N)k=I+kN
所以
Sk=[10k1]
若只看特征值 1,你可能会误以为反复作用什么都不变;实际上剪切量会随 k 线性累积。缺少的那条特征方向,正是对角化无法记录的部分。
特征方程能给出全部特征值,却不保证给出足够多的特征向量。遇到重复根,必须继续算特征空间;只看根的个数就宣布“可以对角化”,是这里最常见的错误。
马尔可夫链里的长期比例
特征值 1 在长期比例问题里格外常见。我们看一个数学条件完整的两状态模型。
设每一步都有一部分人留在状态甲或乙,也有一部分人在两个状态间转移。用列向量
qk=[第 k 步处于甲的比例第 k 步处于乙的比例]
记录分布,并规定
qk+1=Pqk
其中
P=[0.80.20.30.7]
这里使用列向量约定,所以第 j 列描述“当前在状态 j 的人,下一步流向哪里”。每列元素都非负,而且每列之和为 1,总比例就会一直保持为 1。
先找不动的分布
若长期分布为 q∗,再走一步后它应该保持不变:
Pq∗=q∗
所以 q∗ 是特征值 1 对应的特征向量。先求特征方程:
det(P−λI)=(0.8−λ)(0.7−λ)−0.06
=λ2−1.5λ+0.5=(λ−1)(λ−0.5)
对 λ=1,解
(P−I)q=0
得到
−0.2x+0.3y=0
因此可以取特征向量
[32]
但概率分布还要求分量和为 1,所以要归一化:
q∗=[53
长期比例是甲占 60%、乙占 40%。
为什么真的会靠近它
只找到 Pq∗=q∗,还不能自动断言每个初始分布都收敛到 q∗。这里之所以能收敛,要看另一个特征值。
对 λ=0.5,可取特征向量
w=[1−1]
它表示一种“总量不变,只在两种状态间一增一减”的偏差。若初始时所有人都在甲,即
q0=[10]
那么
q0=q∗+52w
反复作用后,稳态分量乘 1k,偏差分量乘 0.5k:
qk=q∗+52
也就是
qk=[
随着 k 增大,第二项趋近零,于是 qk 趋近 q∗。这次我们不是凭图形猜“会稳定”,而是明确看见了偏差按 ( 衰减。
并非每个马尔可夫链都从任意初始分布收敛到同一个稳态。若链会周期性来回跳,或者状态被分成互不沟通的几组,分布可能振荡,也可能保留对初始状态的依赖。稳态方程 Pq=q 负责找候选长期分布;是否从给定初始分布收敛,还要检查其余特征值和链的结构。
一套不容易走错的计算顺序
遇到“求特征值、特征向量并判断能否对角化”的题,可以按下面的顺序走。
- 确认矩阵是方阵,然后写 A−λI。只在主对角线上减 λ,别把矩阵每个元素都减一遍。
- 计算 det(A−λI) 并令它等于零。三角矩阵优先利用对角线乘积。
- 解特征方程,记录每个根的代数重数。
- 对每个特征值分别解 (A−λI,写出完整特征空间,而不只是随手挑一个向量。
几个常见误区
“特征向量只有一个”通常不是准确说法。若 v 是特征向量,它的任意非零倍数也是;真正该说的是“特征空间是一维”或“只有一条独立特征方向”。
不同特征值对应的特征向量不能随便相加后仍称为特征向量。若
Av1=λ1v1,Av
且 λ1=λ2,通常有
A(v1+v2)=λ1v
它无法提取成同一个倍率乘 (v1+v2)。
矩阵相加或相乘时,也不能把特征值机械地相加或相乘。只有当相关矩阵共享同一组特征向量等额外条件成立时,这种计算才可能直接进行。
最后,λ=0 完全可以是特征值。它表示 A 把某个非零向量送到零,也就是零空间里有非零向量;这恰好等价于 A 不可逆。它把本章和上一章的行列式、可逆性重新接了起来。
练习
练习一:先用定义判断
设
A=[201
判断 u,w 是否为 A 的特征向量。若是,求对应特征值。
直接计算:
Au=[20]=2u所以 u 是特征向量,对应特征值为 2。
再算
练习二:特征值、特征空间与验算
求
B=[1221]
的特征值及对应特征空间,并用迹和行列式验算。
特征方程为
det(B−λI)=det[1−λ2
练习三:三角矩阵
求矩阵
C=400
的特征值、各自的代数重数与几何重数,并判断它能否对角化。
C 是上三角矩阵,所以特征多项式为
(4−λ)2(−2−λ)λ=4 的代数重数为 , 的代数重数为 。
练习四:完成一次对角化
对矩阵
D=[3021]
求一个对角化 D=PΛP−1,并写出 Dk。
因为 D 是上三角矩阵,特征值为 3 和 1。
对 λ=3,可取
v1
练习五:剪切的高次幂
设
S=[1021]
判断它能否对角化,并求 Sk。
特征多项式是 (1−λ)2。对 λ=1,
S−
练习六:两状态稳态
设
P=[0.90.10.40.6]
采用列向量约定 qk+1=Pqk。求归一化稳态向量,并说明为什么另一个特征值决定收敛速度。
矩阵每列之和为 1。特征方程为
det(P−λI)=(0.9−λ)(0.6−λ)−0.04
从特征基走向正交基
到这里,矩阵最难看的一层已经被拆开了:特征向量找出不混合的方向,特征值记录各方向的倍率;若方向足够多,我们就能换到特征向量坐标,并用对角矩阵处理高次幂和长期演化。
不过,一般的特征向量基未必互相垂直,P−1 也未必容易计算。若能找到一组彼此正交、长度又是 1 的方向,换坐标会简单得多,因为逆矩阵可以直接由转置得到。
下一章就从这个问题接着往前走:怎样用点积判断正交,怎样把向量投影到一个子空间,以及当 Ax=b 没有精确解时,怎样用投影找到最接近的答案。