Logo

对角化

1. 对角化的基本概念与性质

我们在介绍矩阵的幂运算时,有提到过为了简化矩阵的幂运算,我们会先尝试对矩阵 A ~\mathbf{A}~进行对角化处理,将其表示为A=PDP1\mathbf{A}=\mathbf{P}\mathbf{D}\mathbf{P}^{-1},其中矩阵 D ~\mathbf{D}~为对角矩阵,矩阵 P ~\mathbf{P}~为可逆矩阵。求对角矩阵 D ~\mathbf{D}~的幂会十分简单,它仅涉及对角线上元素逐个求幂。请看下面对角矩阵 D ~\mathbf{D}~的幂运算:

开通会员解锁全部动画

如果矩阵 A ~\mathbf{A}~可对角化,那么计算 Ak ~\mathbf{A}^k~会变得非常简单,因为Ak=PDkP1\mathbf{A}^k = \mathbf{P} \mathbf{D}^k \mathbf{P}^{-1},而 Dk ~\mathbf{D}^k~的计算仅需对对角线元素求幂。请观察下面的示例:

开通会员解锁全部动画

2. 对角化定理

如果存在可逆矩阵 P ~\mathbf{P}~和对角矩阵 D ~\mathbf{D}~,使得A=PDP1\mathbf{A}=\mathbf{P}\mathbf{D}\mathbf{P}^{-1},那么矩阵 A ~\mathbf{A}~被称为可对角化 (diagonalizable) ~(\textbf{diagonalizable})~。这意味着矩阵 A ~\mathbf{A}~和矩阵 D ~\mathbf{D}~是一对相似矩阵,上一节我们讨论过,相似矩阵具有相同的特征多项式和其它一些相同性质。接下来的定理将进一步说明对角化的充要条件及具体方法:

  1. 假设 P ~\mathbf{P}~ D ~\mathbf{D}~

    • 假设 P ~\mathbf{P}~是一个 n×n ~n\times n~矩阵,列向量为v1,v2,,vn\mathbf{v}_1,\mathbf{v}_2,\dots,\mathbf{v}_n D ~\mathbf{D}~的一个对角矩阵,其对角元素为 λ1,λ2,,λn ~\lambda_1,\lambda_2,\dots,\lambda_n~

    • 矩阵 AP ~\mathbf{A}\mathbf{P}~ PD ~\mathbf{P}\mathbf{D}~的表达式为:
      AP=[Av1 Av2  Avn]PD=P[λ1000λ2000λn]=[λ1v1 λ2v2  λnvn]\begin{align*}\mathbf{AP} &= [\mathbf{A}\mathbf{v}_1 \ \mathbf{A}\mathbf{v}_2 \ \dots \ \mathbf{A}\mathbf{v}_n]\\[3ex] \mathbf{PD} &= \mathbf{P} \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_n \end{bmatrix} = [\lambda_1\mathbf{v}_1 \ \lambda_2\mathbf{v}_2 \ \cdots \ \lambda_n\mathbf{v}_n] \end{align*}
  2. 假设 A ~\mathbf{A}~可对角化

    • 假设A=PDP1\mathbf{A}=\mathbf{P}\mathbf{D}\mathbf{P}^{-1},右乘矩阵 P ~\mathbf{P}~,得 AP=PD ~\mathbf{A}\mathbf{P}=\mathbf{P}\mathbf{D}~
    • 结合上面的表达式,得:
      [Av1 Av2  Avn]=[λ1v1 λ2v2  λnvn][\mathbf{A}\mathbf{v}_1 \ \mathbf{A}\mathbf{v}_2 \ \dots \ \mathbf{A}\mathbf{v}_n] = [\lambda_1\mathbf{v}_1 \ \lambda_2\mathbf{v}_2 \ \dots \ \lambda_n\mathbf{v}_n]
  3. 等式分解与线性无关性
    • 逐列比较:
      Av1=λ1v1,Av2=λ2v2,,Avn=λnvn\mathbf{A}\mathbf{v}_1 = \lambda_1\mathbf{v}_1, \quad \mathbf{A}\mathbf{v}_2 = \lambda_2\mathbf{v}_2, \quad \dots, \quad \mathbf{A}\mathbf{v}_n = \lambda_n\mathbf{v}_n
      这些等式表明 λ1,λ2,,λn ~\lambda_1,\lambda_2,\dots,\lambda_n~是特征值, v1,v2,,vn ~\mathbf{v}_1,\mathbf{v}_2,\dots,\mathbf{v}_n~是对应的特征向量。
    • 因为 P ~\mathbf{P}~可逆,说明其列向量 v1,v2,,vn ~\mathbf{v}_1,\mathbf{v}_2,\dots,\mathbf{v}_n~必须线性无关。
  4. 构造 P ~\mathbf{P}~ D ~\mathbf{D}~并验证

    • 如果给定 n ~n~个特征向量 v1,v2,,vn ~\mathbf{v}_1,\mathbf{v}_2,\dots,\mathbf{v}_n~,用这些向量作为 P ~\mathbf{P}~的列,特征值 λ1,λ2,,λn ~\lambda_1,\lambda_2,\dots,\lambda_n~构造对角矩阵 D ~\mathbf{D}~

    • 根据 AP=PD ~\mathbf{A}\mathbf{P}=\mathbf{P}\mathbf{D}~的推导,A=PDP1\mathbf{A}=\mathbf{P}\mathbf{D}\mathbf{P}^{-1}成立,说明 A ~\mathbf{A}~可对角化。

  5. 结论

    • 如果 A ~\mathbf{A}~ n ~n~个线性无关的特征向量,则可构造 P ~\mathbf{P}~ D ~\mathbf{D}~,使A=PDP1\mathbf{A}=\mathbf{P}\mathbf{D}\mathbf{P}^{-1}。反之,如果A=PDP1\mathbf{A}=\mathbf{P}\mathbf{D}\mathbf{P}^{-1},则 P ~\mathbf{P}~的列向量必须是线性无关的特征向量,且数量为 n ~n~

    • 定理得证!

换句话说,矩阵 A ~\mathbf{A}~可对角化的充要条件是其存在足够多的特征向量以构成 Rn ~\mathbb{R^n}~的一个基。我们称这样的基为 Rn ~\mathbb{R}^n~的特征向量基。需要注意的是,定理 5 ~5~只是提供了判断矩阵是否可对角化的理论依据,在实际操作中还是无法避免复杂的特征值计算、特征空间分析和线性无关性验证等环节。

3. 对角化矩阵的步骤

根据上面的定理 5 ~5~,对矩阵 A ~\mathbf{A}~做对角化的核心是找到足够多线性无关的特征向量(其数量与矩阵的阶数相同),并以此构造特征向量矩阵 P ~\mathbf{P}~和对应的对角矩阵 D ~\mathbf{D}~,从而满足A=PDP1\mathbf{A}=\mathbf{P}\mathbf{D}\mathbf{P}^{-1}。我们以一个具体的例子来说明如何对角化一个矩阵,以矩阵 A ~\mathbf{A}~为例:
A=[133353331]\mathbf{A}=\begin{bmatrix}1 & 3 & 3\\ -3 & -5 & -3 \\ 3 & 3 & 1\end{bmatrix}
下面是对角化的具体步骤:

  1. 构造特征矩阵

    • 特征矩阵为AλI\mathbf{A}-\lambda\mathbf{I}
      AλI=[1λ3335λ3331λ]\mathbf{A} - \lambda \mathbf{I} = \begin{bmatrix} 1 - \lambda & 3 & 3 \\ -3 & -5 - \lambda & -3 \\ 3 & 3 & 1 - \lambda \end{bmatrix}
  2. 计算特征方程

    • 计算行列式det(AλI)=0\det(\mathbf{A}-\lambda\mathbf{I})=0,展开得:
      det(AλI)=λ33λ2+4=0\det(\mathbf{A}-\lambda\mathbf{I}) = \lambda^3 - 3\lambda^2 + 4 = 0
    • 将其因式分解为:
      λ33λ2+4=(λ1)(λ+2)2-\lambda^3 - 3\lambda^2 + 4 = -(\lambda - 1)(\lambda + 2)^2
      由此解得特征值:
      λ1=1,λ2=2(重根)\lambda_1=1,\quad\lambda_2=-2\,(\text{重根})

  1. 对特征值 λ=1 ~\lambda=1~求解特征向量

    • 特征向量满足方程:
      (AλI)x=0(\mathbf{A}-\lambda\mathbf{I})\mathbf{x}=\mathbf{0}
       λ=1 ~\lambda=1~代入:
      AI=[033363330]\mathbf{A} - \mathbf{I} = \begin{bmatrix} 0 & 3 & 3 \\ -3 & -6 & -3 \\ 3 & 3 & 0 \end{bmatrix}
      解方程(AI)x=0(\mathbf{A}-\mathbf{I})\mathbf{x}=\mathbf{0},通过行化简得:
      [033363330][110033000]\begin{bmatrix} 0 & 3 & 3 \\ -3 & -6 & -3 \\ 3 & 3 & 0 \end{bmatrix} \sim \begin{bmatrix} 1 & 1 & 0 \\ 0 & 3 & 3 \\ 0 & 0 & 0 \end{bmatrix}
      化简得特征向量 v1 ~\mathbf{v}_1~的通解为:
      v1=[111]T\mathbf{v}_1=\begin{bmatrix}1 & -1 & 1\end{bmatrix}^T
  2. 对特征值 λ=2 ~\lambda=2~求解特征向量

    •  λ=2 ~\lambda=-2~代入:
      A(2)I=[333333333]\mathbf{A} - (-2)\mathbf{I} = \begin{bmatrix} 3 & 3 & 3 \\ -3 & -3 & -3 \\ 3 & 3 & 3 \end{bmatrix}
      解方程(AI)x=0(\mathbf{A}-\mathbf{I})\mathbf{x}=\mathbf{0},通过行化简得:
      [333333333][111000000]\begin{bmatrix} 3 & 3 & 3 \\ -3 & -3 & -3 \\ 3 & 3 & 3 \end{bmatrix} \sim \begin{bmatrix} 1 & 1 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix}
      化简得特征向量的通解为:
      v2=[110]T,v3=[101]T\mathbf{v}_2=\begin{bmatrix}-1 & 1 & 0\end{bmatrix}^T,\quad \mathbf{v}_3=\begin{bmatrix}-1 & 0 & 1\end{bmatrix}^T

将所有线性无关的特征向量按列排列形成矩阵 P ~\mathbf{P}~
P=[111110101]\mathbf{P}=\begin{bmatrix} 1 & -1 & -1 \\ -1 & 1 & 0 \\ 1 & 0 & 1 \end{bmatrix}

对角矩阵 D ~\mathbf{D}~的对角线元素对应特征值,顺序与 P ~\mathbf{P}~的特征向量排列一致。可得矩阵 D ~\mathbf{D}~
D=[100020002]\mathbf{D}=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & -2 \end{bmatrix}

验证 P ~\mathbf{P}~ D ~\mathbf{D}~是否正确的方法是计算 AP ~\mathbf{AP}~ PD ~\mathbf{PD}~,如果 AP=PD ~\mathbf{AP}=\mathbf{PD}~,则对角化关系A=PDP1\mathbf{A}=\mathbf{P}\mathbf{D}\mathbf{P}^{-1}成立,同时需确保 P ~\mathbf{P}~可逆。此方法可避免直接计算 P1 ~\mathbf{P}^{-1}~,简化验证过程。 经验证可知A=PDP1\mathbf{A}=\mathbf{P}\mathbf{D}\mathbf{P}^{-1}成立。

对矩阵进行对角化的主要步骤是通过求解矩阵的特征值和特征向量,在实际应用中,这通常借助计算机利用高效数值方法(如 QR ~\textbf{QR}~算法)来完成求解的。

4. 不可对角化的情况

对于矩阵 An×n ~\mathbf{A}_{n\times n}~,当无法找到足够多的线性无关特征向量时(少于 n ~n~个),我们将无法对其进行对角化。请看下面的示例,以下面的矩阵 A ~\mathbf{A}~为例:
A=[243463331]\mathbf{A}=\begin{bmatrix}2 & 4 & 3 \\ -4 & -6 & -3 \\ 3 & 3 & 1\end{bmatrix}
我们用同样的步骤尝试对其进行对角化:

  1. 构造特征矩阵

    • 特征矩阵为AλI\mathbf{A}-\lambda\mathbf{I}
      AλI=[2λ4346λ3331λ]\mathbf{A} - \lambda \mathbf{I} = \begin{bmatrix} 2 - \lambda & 4 & 3 \\ -4 & -6 - \lambda & -3 \\ 3 & 3 & 1 - \lambda \end{bmatrix}
  2. 计算特征方程

    • 计算行列式det(AλI)=0\det(\mathbf{A}-\lambda\mathbf{I})=0,展开得:
      det(AλI)=λ33λ2+4=0\det(\mathbf{A}-\lambda\mathbf{I}) = \lambda^3 - 3\lambda^2 + 4 = 0
    • 将其因式分解为:
      λ33λ2+4=(λ1)(λ+2)2-\lambda^3 - 3\lambda^2 + 4 = -(\lambda - 1)(\lambda + 2)^2
      由此解得特征值:
      λ1=1,λ2=2(重根)\lambda_1=1,\quad\lambda_2=-2\,(\text{重根})

  1. 对特征值 λ=1 ~\lambda=1~求解特征向量

    • 特征向量满足方程:
      (AλI)x=0(\mathbf{A}-\lambda\mathbf{I})\mathbf{x}=\mathbf{0}
       λ=1 ~\lambda=1~代入:
      AI=[033363330]\mathbf{A} - \mathbf{I} = \begin{bmatrix} 0 & 3 & 3 \\ -3 & -6 & -3 \\ 3 & 3 & 0 \end{bmatrix}
      解方程(AI)x=0(\mathbf{A}-\mathbf{I})\mathbf{x}=\mathbf{0},通过行化简得:
      [033363330][110033000]\begin{bmatrix} 0 & 3 & 3 \\ -3 & -6 & -3 \\ 3 & 3 & 0 \end{bmatrix} \sim \begin{bmatrix} 1 & 1 & 0 \\ 0 & 3 & 3 \\ 0 & 0 & 0 \end{bmatrix}
      化简得特征向量 v1 ~\mathbf{v}_1~的通解为:
      v1=[111]T\mathbf{v}_1=\begin{bmatrix}1 & -1 & 1\end{bmatrix}^T
  2. 对特征值 λ=2 ~\lambda=2~求解特征向量

    •  λ=2 ~\lambda=-2~代入:
      A(2)I=[443443333]\mathbf{A} - (-2)\mathbf{I} = \begin{bmatrix} 4 & 4 & 3 \\ -4 & -4 & -3 \\ 3 & 3 & 3 \end{bmatrix}
      解方程(AI)x=0(\mathbf{A}-\mathbf{I})\mathbf{x}=\mathbf{0},通过行化简得:
      [443443333][111001000]\begin{bmatrix} 4 & 4 & 3 \\ -4 & -4 & -3 \\ 3 & 3 & 3 \end{bmatrix} \sim \begin{bmatrix} 1 & 1 & 1 \\ 0 & 0 & -1 \\ 0 & 0 & 0 \end{bmatrix}
      化简得特征向量的通解为:
      v2=[110]T\mathbf{v}_2=\begin{bmatrix}-1 & 1 & 0\end{bmatrix}^T

在第 2 ~2~步中,我们只得到矩阵 A3×3 ~\mathbf{A}_{3\times 3}~ 2 ~2~个线性无关的特征向量,根据定理 5 ~5~可知,矩阵 A ~\mathbf{A}~不可以对角化。

5. 可对角化的充分条件

若能保证特征向量线性无关,则矩阵可对角化。满足这种情况的一个充分条件是矩阵的特征值各不相同(根据定理 2)。基于此,我们有如下定理:
根据定理 6 ~6~,我们可以轻松判断一个矩阵是否可对角化。以下是一个具体示例,设矩阵 A ~\mathbf{A}~为:
A=[581007002]A = \begin{bmatrix} 5 & -8 & 1 \\ 0 & 0 & 7 \\ 0 & 0 & -2 \end{bmatrix}
观察该矩阵的特征值为 5,0,2 ~5,0,2~,它们互不相同。根据定理 6 ~6~,这说明矩阵 A ~\mathbf{A}~的特征向量是线性无关的,因此矩阵 A ~\mathbf{A}~是可对角化的。一个 n×n ~n\times n~矩阵即使没有 n ~n~个不同的特征值,也可能是可对角化的。特征值的数量只是可对角化的一个充分条件,而非必要条件。例如前面的矩阵 A ~\mathbf{A}~
A=[133353331]\mathbf{A} = \begin{bmatrix} 1 & 3 & 3 \\ -3 & -5 & -3 \\ 3 & 3 & 1 \end{bmatrix}
它虽然只有 2 ~2~个特征值 λ1=1,λ2=2(重根) ~\lambda_1=1,\lambda_2=-2(\text{重根})~,但依然是可对角化的。

6. 特征值与对角化的关系

前面介绍的条件多为局部性判断,难以全面判断矩阵的对角化。下面的定理总结并拓展了这些条件,通过明确几何重数与代数重数的关系,并引入特征多项式的分解性,使对角化判断更系统。

定理 7 ~7~中的结论对于理解矩阵对角化很重要,下面我们来逐个进行解读。

这个结论等价于:矩阵某个特征值的几何重数永远小于或等于其代数重数。特征值 λ ~\lambda~的几何重数是矩阵 AλI ~\mathbf{A}-\lambda\mathbf{I}~的零空间的维数(也就是线性无关的特征向量数量),即:
几何重数=dim(ker(AλI))\small{几何重数}=\dim(\ker(\mathbf{A}-\lambda\mathbf{I}))
代数重数则是特征值作为特征多项式根的重数。这个结论可表示如下:
几何重数代数重数\small{几何重数}\leq \small{代数重数}
这个结论成立是因为每个特征向量都对应一个特征值,但这些特征值不一定都是线性无关的。

这条结论为判断矩阵可对角化提供了更加具体、实用的条件(相比定理 5 ~5~)。下面解读这两个可对角化的条件:
  1. 特征多项式完全分解为线性因子

    • 完全分解为线性因子” 的意思是: 特征多项式 P(λ) ~P(\lambda)~可以表示为若干个一阶因子 (形如 (λλ1))~(\small{形如}~(\lambda-\lambda_1))的乘积。例如矩阵 A ~\mathbf{A}~可完全分解为线性因子:
      A=[133353331]\mathbf{A}=\begin{bmatrix}1 & 3 & 3\\ -3 & -5 & -3 \\ 3 & 3 & 1\end{bmatrix}
      特征多项式为:
      P(λ)=det(AλI)=λ33λ2+4=(λ1)(λ+2)2\begin{align*}P(\lambda) &=\det(\mathbf{A}-\lambda\mathbf{I})\\[2ex] &=-\lambda^3 - 3\lambda^2 + 4\\[2ex] &=-(\lambda - 1)(\lambda + 2)^2 \end{align*}
    • 不能完全分解为线性因子”的例子,例如矩阵 B ~\mathbf{B}~
      B=[0110]\mathbf{B}=\begin{bmatrix}0 & -1 \\ 1 & 0\end{bmatrix}
      特征多项式为:
      P(λ)=det(AλI)=λ11λ=λ2+1P(\lambda) = \det(\mathbf{A} - \lambda \mathbf{I}) = \begin{vmatrix} -\lambda & -1 \\ 1 & -\lambda \end{vmatrix} = \lambda^2 + 1
      在实数域中, λ2+1 ~\lambda^2+1~不可分解,这表明矩阵 B ~\mathbf{B}~的特征值在实数域中不存在。如果扩展到复数域特征多项式是可以分解,我们会在复特征值一节讨论。
  2. 几何重数等于代数重数

    • 这个条件是矩阵可对角化的核心条件,每个特征值 λk ~\lambda_k~的特征子空间维数必须等于其代数重数,否则特征向量不足以构造一个完整的基,矩阵就不可对角化。

如果矩阵可对角化,特征值对应的特征向量可以组合成整个空间的基,它也为构造对角化矩阵 P ~\mathbf{P}~提供了依据。我们看一个具体示例,设矩阵:
A=[410040005]\mathbf{A} = \begin{bmatrix} 4 & 1 & 0 \\ 0 & 4 & 0 \\ 0 & 0 & 5 \end{bmatrix}
  1. 计算特征值

    特征多项式为:
    det(AλI)=4λ1004λ0005λ=(4λ)2(5λ)\det(\mathbf{A} - \lambda \mathbf{I}) = \begin{vmatrix} 4 - \lambda & 1 & 0 \\ 0 & 4 - \lambda & 0 \\ 0 & 0 & 5 - \lambda \end{vmatrix} = (4 - \lambda)^2 (5 - \lambda)
    特征值为: λ1=4 ~\lambda_1=4~(代数重数为 2~2), λ2=5 ~\lambda_2=5~(代数重数为 1~1
  2. 计算特征向量和子空间基

    1.  λ1=4 ~\lambda_1=4~,求解 (A4I)x=0 ~(\mathbf{A}-4\mathbf{I})\mathbf{x}=\mathbf{0}~
      A4I=[010000001]\mathbf{A} - 4\mathbf{I} = \begin{bmatrix} 0 & 1 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix}
      零空间的基为:
      B1={[100],[010]}\mathcal{B}_1 = \left\{ \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}, \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} \right\}
    2.  λ2=5 ~\lambda_2=5~,求解 (A5I)x=0 ~(\mathbf{A}-5\mathbf{I})\mathbf{x}=\mathbf{0}~
      A4I=[110010000]\mathbf{A} - 4\mathbf{I} = \begin{bmatrix} -1 & 1 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 0 \end{bmatrix}
      零空间的基为:
      B2={[001]}\mathcal{B}_2 = \left\{ \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} \right\}
  3. 检查特征向量是否构成全空间基

     B1 ~\mathcal{B}_1~ B2 ~\mathcal{B}_2~合并:
    B={[100],[010],[001]}\mathcal{B} = \left\{ \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}, \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix}, \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} \right\}
    该集合包含 3 ~3~个向量,且它们是线性无关的,因此构成 R3 ~\mathbb{R^3}~的一组基。
  4. 构造对角化矩阵

    构造矩阵 P~\mathbf{P}(特征向量为列)和对角矩阵 D~\mathbf{D}特征值为对角元素)
    P=[100010001],D=[400040005]\mathbf{P} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}, \quad \mathbf{D} = \begin{bmatrix} 4 & 0 & 0 \\ 0 & 4 & 0 \\ 0 & 0 & 5 \end{bmatrix}
    验证对角化:
    AP=PD\mathbf{A}\mathbf{P} = \mathbf{P}\mathbf{D}
总的来说,判断任意一个矩阵 A ~\mathbf{A}~是否可对角化通常并没有快捷的方法,其中的难点在于我们需要计算矩阵的特征值并分析其代数重数与几何重数是否相等,这会涉及复杂的特征多项式求解和特征空间维度的确定,尤其在高维或非对称矩阵中计算复杂且易出错。不过,如果 A ~\mathbf{A}~是对称矩阵,那我们就可以确定它一定可以进行对角化