秩-1更新的单位矩阵的特征值

参考:通义千问


一、目标

给定:

  • I∈Rn×nI \in \mathbb{R}^{n \times n}I∈Rn×n 是单位矩阵;
  • u,v∈Rn\mathbf{u}, \mathbf{v} \in \mathbb{R}^nu,v∈Rn 是列向量(非零);
  • 定义矩阵:
    A=I+uv⊤ A = I + \mathbf{u} \mathbf{v}^\top A=I+uv⊤

我们要找出 AAA 的所有特征值


二、关键观察:秩-1扰动只改变一个方向

矩阵 uv⊤\mathbf{u} \mathbf{v}^\topuv⊤ 是秩为 1 的矩阵,它的作用是:

  • 将任意向量 x\mathbf{x}x 映射到 u(v⊤x)\mathbf{u} (\mathbf{v}^\top \mathbf{x})u(v⊤x),即:结果总在 u\mathbf{u}u张成的一维子空间中
  • 所以它只在一个方向上有"非平凡"作用,其余 n−1n-1n−1 个正交方向上为零。

因此,对 A=I+uv⊤A = I + \mathbf{u} \mathbf{v}^\topA=I+uv⊤ 来说:

  • 在与 v\mathbf{v}v 正交的子空间中,v⊤x=0\mathbf{v}^\top \mathbf{x} = 0v⊤x=0,所以Ax=xA\mathbf{x} = \mathbf{x}Ax=x;
  • 只有在 v\mathbf{v}v(或 u\mathbf{u}u)方向上,特征值会偏离 1。

三、正式推导

步骤 1:找 n−1n-1n−1 个特征值为 1 的特征向量

考虑任意满足
v⊤x=0 \mathbf{v}^\top \mathbf{x} = 0 v⊤x=0

的非零向量 x∈Rn\mathbf{x} \in \mathbb{R}^nx∈Rn。

那么:
Ax=(I+uv⊤)x=x+u(v⊤x)=x+u⋅0=x A \mathbf{x} = (I + \mathbf{u} \mathbf{v}^\top) \mathbf{x} = \mathbf{x} + \mathbf{u} (\mathbf{v}^\top \mathbf{x}) = \mathbf{x} + \mathbf{u} \cdot 0 = \mathbf{x} Ax=(I+uv⊤)x=x+u(v⊤x)=x+u⋅0=x

所以:

  • x\mathbf{x}x 是 AAA 的特征向量;
  • 对应的特征值是 λ=1\lambda = 1λ=1。

而满足 v⊤x=0\mathbf{v}^\top \mathbf{x} = 0v⊤x=0 的向量构成一个 n−1n-1n−1 维子空间 (因为 v≠0\mathbf{v} \ne \mathbf{0}v=0),所以:

特征值 1 至少有重数 n−1n-1n−1


步骤 2:找剩下的那个特征值

由于 AAA 是 n×nn \times nn×n 矩阵,共有 nnn 个特征值(计入重数,不考虑奇异情况)。我们已经找到 n−1n-1n−1 个是 1,还剩一个未知,记作 λ\lambdaλ。

我们可以用两种方法求它:


方法 A:利用迹

矩阵的迹等于所有特征值之和:

tr⁡(A)=tr⁡(I+uv⊤)=tr⁡(I)+tr⁡(uv⊤) \operatorname{tr}(A) = \operatorname{tr}(I + \mathbf{u} \mathbf{v}^\top) = \operatorname{tr}(I) + \operatorname{tr}(\mathbf{u} \mathbf{v}^\top) tr(A)=tr(I+uv⊤)=tr(I)+tr(uv⊤)

  • tr⁡(I)=n\operatorname{tr}(I) = ntr(I)=n
  • tr⁡(uv⊤)=v⊤u\operatorname{tr}(\mathbf{u} \mathbf{v}^\top) = \mathbf{v}^\top \mathbf{u}tr(uv⊤)=v⊤u(这是标量,也是外积矩阵的迹)

所以:
tr⁡(A)=n+v⊤u \operatorname{tr}(A) = n + \mathbf{v}^\top \mathbf{u} tr(A)=n+v⊤u

另一方面,特征值之和为:
(n−1)⋅1+λ=n−1+λ (n-1) \cdot 1 + \lambda = n - 1 + \lambda (n−1)⋅1+λ=n−1+λ

令两者相等:
n−1+λ=n+v⊤u⇒λ=1+v⊤u n - 1 + \lambda = n + \mathbf{v}^\top \mathbf{u} \quad \Rightarrow \quad \lambda = 1 + \mathbf{v}^\top \mathbf{u} n−1+λ=n+v⊤u⇒λ=1+v⊤u

✅ 所以最后一个特征值是 1+v⊤u1 + \mathbf{v}^\top \mathbf{u}1+v⊤u。


方法 B:直接验证 u\mathbf{u}u 是特征向量(当 u≠0\mathbf{u} \ne 0u=0)

计算:
Au=(I+uv⊤)u=u+u(v⊤u)=(1+v⊤u)u A \mathbf{u} = (I + \mathbf{u} \mathbf{v}^\top) \mathbf{u} = \mathbf{u} + \mathbf{u} (\mathbf{v}^\top \mathbf{u}) = (1 + \mathbf{v}^\top \mathbf{u}) \mathbf{u} Au=(I+uv⊤)u=u+u(v⊤u)=(1+v⊤u)u

所以:

  • 若 u≠0\mathbf{u} \ne \mathbf{0}u=0,则 u\mathbf{u}u 是特征向量;
  • 对应特征值就是 1+v⊤u1 + \mathbf{v}^\top \mathbf{u}1+v⊤u。

⚠️ 注意:如果 u=0\mathbf{u} = \mathbf{0}u=0,那 A=IA = IA=I,所有特征值都是 1 ------ 这是退化情况。


相关推荐
ComputerInBook16 天前
求解矩阵特征值和特征向量
矩阵·行列式·特征值·特征向量
ComputerInBook1 个月前
代数基本概念理解——特征向量和特征值
人工智能·算法·机器学习·线性变换·特征值·特征向量
Mysticbinary1 个月前
向量概念和运算规则笔记
特征值·特征向量
Beginner x_u2 个月前
线性代数 必背公式总结&&线代计算技巧总结_分块矩阵大总结_秩一矩阵大总结
线性代数·矩阵·特征值·特征向量·计算技巧
西西弗Sisyphus2 个月前
线性代数 - 理解求解矩阵特征值的特征方程
线性代数·矩阵·特征值·特征向量
西西弗Sisyphus2 个月前
如何找到一个矩阵的特征值和特征向量
线性代数·矩阵·特征值·特征向量
西西弗Sisyphus2 个月前
线性代数 - 特征值和特征向量可视化是什么样的
线性代数·特征值·特征向量
atwdy1 年前
【线性代数】通俗理解特征向量与特征值
线性代数·矩阵·特征值·特征向量
martian6651 年前
深入详解线性代数基础知识:理解矩阵与向量运算、特征值与特征向量,以及矩阵分解方法(如奇异值分解SVD和主成分分析PCA)在人工智能中的应用
人工智能·线性代数·矩阵·特征向量