特征值分解的核心是:把一个复杂的M×M矩阵A,拆成3个简单矩阵的乘积(A = PΛP⁻¹),其中:
- Λ(读作"lambda")是对角矩阵(只有对角线有值,其余为0),对角线上的数就是"特征值";
- P是由"特征向量"组成的M×M可逆矩阵(每一列对应一个特征向量);
- P⁻¹是P的逆矩阵(简单理解为"反向变换矩阵")。
分解的本质是:找到矩阵A的"核心作用方向"(特征向量)和"每个方向上的缩放倍数"(特征值),把复杂的矩阵运算转化为简单的"缩放+坐标变换"。
先明确2个关键概念(通俗版)
- 特征向量x:对矩阵A来说,存在一个非零向量x,当A和x相乘(Ax)后,结果相当于x被一个常数λ"拉长/缩短"(即Ax = λx)------x就是A的特征向量("不变方向")。
- 特征值λ:上面的常数λ,就是特征向量x对应的"缩放倍数"(可正可负、可零,代表A在x方向上的作用强度)。
比如矩阵A是"拉伸变换",特征向量就是"拉伸方向",特征值就是"拉伸比例"。
4步完成M×M矩阵特征值分解(带2×2例子实操)
我们用一个具体的2×2矩阵(M=2,计算简单,可推广到任意M):
例子矩阵:A = [[3, 1], [1, 3]](2行2列)
步骤1:求特征值λ------解"特征方程"det(A - λI) = 0
- 核心逻辑:Ax = λx 可变形为 (A - λI)x = 0(I是M×M单位矩阵,对角线为1,其余为0)。
要让这个方程有"非零解x"(特征向量不能是零向量),必须满足"系数矩阵的行列式为0"(这是线性代数的基本规则,不用深究,记住结论即可)。 - 实操(以例子为例):
- 构造A - λI:把A的对角线元素都减去λ,其余不变。
I是2×2单位矩阵[[1,0],[0,1]],所以:
A - λI = [[3-λ, 1], [1, 3-λ]] - 计算行列式det(A - λI):对2×2矩阵[[a,b],[c,d]],行列式=ad - bc。
det(A - λI) = (3-λ)(3-λ) - 1×1 = (3-λ)² - 1 - 解方程det(A - λI) = 0:
(3-λ)² - 1 = 0 → (3-λ)² = 1 → 3-λ = ±1
解得特征值:λ₁=4,λ₂=2(M×M矩阵最多有M个特征值,可能重复)。
- 构造A - λI:把A的对角线元素都减去λ,其余不变。
步骤2:求每个特征值对应的特征向量x
- 核心逻辑:对每个λ,代入方程(A - λI)x = 0,解出非零向量x(就是这个λ对应的特征向量)。
- 实操(例子继续):
-
对λ₁=4:
代入A - λI,得到:[[3-4, 1], [1, 3-4]] = [[-1, 1], [1, -1]]
方程变为:[[-1, 1], [1, -1]] × [x₁, x₂]ᵀ = [0, 0]ᵀ(x是2维向量[x₁,x₂])
展开方程:
-x₁ + x₂ = 0 → x₁ = x₂
取最简单的非零解:x₁=1,则x₂=1 → 特征向量x₁ = [1, 1]ᵀ(ᵀ表示转置,行变列)。
-
对λ₂=2:
代入A - λI,得到:[[3-2, 1], [1, 3-2]] = [[1, 1], [1, 1]]
方程变为:[[1, 1], [1, 1]] × [x₁, x₂]ᵀ = [0, 0]ᵀ
展开方程:
x₁ + x₂ = 0 → x₁ = -x₂
取最简单的非零解:x₁=1,则x₂=-1 → 特征向量x₂ = [1, -1]ᵀ。
-
步骤3:构造矩阵P和对角矩阵Λ
-
构造P:把所有特征向量作为"列"组成矩阵(M×M矩阵,列数=特征向量个数=M)。
例子中,x₁=[1,1]ᵀ、x₂=[1,-1]ᵀ,所以:
P = [[1, 1], [1, -1]](第一列x₁,第二列x₂)。
-
构造Λ:对角矩阵,对角线位置依次放对应的特征值,其余为0。
例子中,λ₁=4对应x₁(P的第一列),λ₂=2对应x₂(P的第二列),所以:
Λ = [[4, 0], [0, 2]](对角线是λ₁、λ₂,其余为0)。
步骤4:验证分解结果(可选,确保正确)
- 核心:验证A = PΛP⁻¹(逆矩阵P⁻¹的计算:2×2矩阵[[a,b],[c,d]]的逆=1/(ad-bc)×[[d,-b],[-c,a]])。
- 实操(例子):
- 计算P的逆矩阵P⁻¹:
P的行列式=1×(-1) - 1×1 = -2 → P⁻¹ = (-1/2)×[[-1, -1], [-1, 1]] = [[0.5, 0.5], [0.5, -0.5]] - 计算PΛP⁻¹:
PΛ = [[1,1],[1,-1]] × [[4,0],[0,2]] = [[4×1+0×1, 0×1+2×1], [4×1+0×(-1), 0×1+2×(-1)]] = [[4,2],[4,-2]]
PΛP⁻¹ = [[4,2],[4,-2]] × [[0.5,0.5],[0.5,-0.5]] = [[3,1],[1,3]] = A(和原矩阵一致,分解正确)。
- 计算P的逆矩阵P⁻¹:
通用步骤总结(M×M矩阵通用)
| 步骤 | 核心操作 | 通俗理解 |
|---|---|---|
| 1 | 构造A - λI,计算行列式det(A - λI),解方程det(A - λI)=0,得到M个特征值λ₁~λ_M | 找到矩阵A的"缩放倍数" |
| 2 | 对每个λ_i,解方程组(A - λ_iI)x = 0,得到对应的非零特征向量x_i | 找到每个"缩放倍数"对应的"作用方向" |
| 3 | 特征向量x₁x_M作为列组成矩阵P,特征值λ₁λ_M作为对角线元素组成对角矩阵Λ | 把"方向"和"倍数"整理成标准形式 |
| 4 | (可选)计算P的逆矩阵P⁻¹,验证A = PΛP⁻¹ | 确认分解结果正确 |
关键提醒(工程应用中常用)
- 不是所有M×M矩阵都能特征值分解!只有"可对角化矩阵"(比如对称矩阵、无重特征值的矩阵)才能分解。
- 分解的意义:比如计算A的n次幂(Aⁿ),直接算很复杂,但分解后Aⁿ = PΛⁿP⁻¹(Λⁿ只需把对角线特征值取n次幂),大幅简化计算,这在视觉模型的特征提取、数据降维中常用。