大模型面试题5:矩阵(M*M)特征值分解的步骤 - 教程

特征值分解的核心是:把一个复杂的M×M矩阵A,拆成3个轻松矩阵的乘积(A = PΛP⁻¹),其中:

  • Λ(读作“lambda”)是对角矩阵(只有对角线有值,其余为0),对角线上的数就是“特征值”;
  • P是由“特征向量”组成的M×M可逆矩阵(每一列对应一个特征向量);
  • P⁻¹是P的逆矩阵(简单理解为“反向变换矩阵”)。

分解的本质是:找到矩阵A的“核心作用方向”(特征向量)和“每个方向上的缩放倍数”(特征值),把复杂的矩阵运算转化为简单的“缩放+坐标变换”。

先明确2个关键概念(通俗版)

  1. 特征向量x:对矩阵A来说,存在一个非零向量x,当A和x相乘(Ax)后,结果相当于x被一个常数λ“拉长/缩短”(即Ax = λx)——x就是A的特征向量(“不变方向”)。
  2. 特征值λ特征向量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”(这是线性代数的核心规则,不用深究,记住结论即可)。
  • 实操(以例子为例):
    1. 构造A - λI:把A的对角线元素都减去λ,其余不变。
      I是2×2单位矩阵[[1,0],[0,1]],所以:
      A - λI = [[3-λ, 1], [1, 3-λ]]
    2. 计算行列式det(A - λI):对2×2矩阵[[a,b],[c,d]],行列式=ad - bc。
      det(A - λI) = (3-λ)(3-λ) - 1×1 = (3-λ)² - 1
    3. 解方程det(A - λI) = 0:
      (3-λ)² - 1 = 0 → (3-λ)² = 1 → 3-λ = ±1
      解得特征值:λ₁=4,λ₂=2(M×M矩阵最多有M个特征值,可能重复)。
步骤2:求每个特征值对应的特征向量x
  • 核心逻辑:对每个λ,代入方程(A - λI)x = 0,解出非零向量x(就是这个λ对应的特征向量)。
  • 实操(例子继续):
    1. 对λ₁=4:
      代入A - λI,得到:[[3-4, 1], [1, 3-4]] = [[-1, 1], [1, -1]]
      2维向量[x₁,x₂])就是方程变为:[[-1, 1], [1, -1]] × [x₁, x₂]ᵀ = [0, 0]ᵀ(x
      展开方程:
      -x₁ + x₂ = 0 → x₁ = x₂
      取最容易的非零解:x₁=1,则x₂=1 → 特征向量x₁ = [1, 1]ᵀ(ᵀ表示转置,行变列)。

    2. 对λ₂=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]])。
  • 实操(例子):
    1. 计算P的逆矩阵P⁻¹:
      P的行列式=1×(-1) - 1×1 = -2 → P⁻¹ = (-1/2)×[[-1, -1], [-1, 1]] = [[0.5, 0.5], [0.5, -0.5]]
    2. 计算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(和原矩阵一致,分解正确)。

通用步骤总结(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⁻¹确认分解结果正确

关键提醒(工程应用中常用)

  1. 所有M×M矩阵都能特征值分解!只有“可对角化矩阵”(比如对称矩阵、无重特征值的矩阵)才能分解。就是不
  2. 分解的意义:比如计算A的n次幂(Aⁿ),直接算很复杂,但分解后Aⁿ = PΛⁿP⁻¹(Λⁿ只需把对角线特征值取n次幂),大幅简化计算,这在视觉模型的特征提取、数据降维中常用。
posted @ 2025-12-24 14:10  gccbuaa  阅读(10)  评论(0)    收藏  举报