好好学习
天天向上

如何判断是否相似于对角矩阵

一个 n x n 的方阵 A,要判断它是不是“相似于对角矩阵”(或者说“可以对角化”),核心就一件事:检查它的特征向量(eigenvectors)够不够多。

什么叫“够不够多”?一个 n x n 的矩阵,就需要 n 个线性无关的特征向量。只要你能找齐这 n 个,那它就肯定可以对角化。找不到,那就没戏。这个是判断的黄金准则。

但是,一个一个去找特征向量然后检查它们是否线性无关,有时候挺麻烦的。所以,我们通常用一个更方便操作的等价方法来判断,这个方法涉及到两个概念:“代数重数”(algebraic multiplicity)和“几何重数”(geometric multiplicity)。

把这个判断过程拆解成几个清晰的步骤,跟着走就不会错。

第一步:计算所有不同的特征值 (Eigenvalues)

这是整个流程的起点。你需要解一个叫做“特征方程”的东西。这个方程是 det(A - λI) = 0

  • A 就是你要判断的那个方阵。
  • λ (lambda) 是一个未知数,它代表的就是特征值。
  • I 是单位矩阵,大小和 A 一样。
  • det 表示计算行列式。

解这个关于 λ 的方程,你就能得到矩阵 A 的所有特征值。

举个例子。假设我们有矩阵 A = [[2, 1], [1, 2]]

那么 A - λI 就是 [[2-λ, 1], [1, 2-λ]]

它的行列式就是 (2-λ)(2-λ) - 11 = λ² - 4λ + 3

让这个行列式等于 0,也就是解 λ² - 4λ + 3 = 0。因式分解一下,得到 (λ-1)(λ-3) = 0。所以,我们得到了两个不同的特征值:λ₁ = 1λ₂ = 3

第二步:确定每个特征值的“代数重数”

这个概念听起来很学术,但其实非常简单。它就是看某个特征值在特征方程里出现了几次。

  • 在刚才的例子里,λ₁ = 1λ₂ = 3 都只出现了一次。所以,λ₁ 的代数重数是 1,λ₂ 的代数重数也是 1。
  • 再换个例子,比如解出来特征方程是 (λ-5)²(λ+2) = 0。那么特征值就是 λ₁ = 5λ₂ = -2。其中,λ₁ = 5 是一个二重根,所以它的代数重数是 2。λ₂ = -2 的代数重数是 1。

把每个不同特征值的代数重数记下来,下一步要用。

第三步:计算每个特征值的“几何重数”

这是最关键的一步,也是最容易出错的地方。“几何重数”指的是对应于某个特定特征值 λ 的线性无关的特征向量的个数。

计算几何重数的公式是:几何重数 = n - rank(A - λI)

  • n 是矩阵的维度(比如 2×2 矩阵,n 就是 2)。
  • rank 指的是矩阵的“秩”。一个矩阵的秩,可以理解为它行简化之后非零行的数量,代表了矩阵中线性无关的行或列的数量。

我们还是用刚才的例子 A = [[2, 1], [1, 2]],它的特征值是 λ₁ = 1λ₂ = 3

  1. 对于 λ₁ = 1

    • 先计算 A - λ₁I,也就是 A - 1I = [[2-1, 1], [1, 2-1]] = [[1, 1], [1, 1]]
    • 然后计算这个矩阵 [[1, 1], [1, 1]] 的秩。很明显,第二行是第一行的复制,可以通过行变换变成 [[1, 1], [0, 0]]。非零行只有一行,所以 rank(A - 1I) = 1
    • 矩阵维度 n=2。所以,λ₁ = 1 的几何重数是 n - rank = 2 - 1 = 1
  2. 对于 λ₂ = 3

    • 计算 A - λ₂I,也就是 A - 3I = [[2-3, 1], [1, 2-3]] = [[-1, 1], [1, -1]]
    • 计算这个矩阵 [[-1, 1], [1, -1]] 的秩。第二行是第一行的 -1 倍,行变换后可以得到 [[-1, 1], [0, 0]]。非零行只有一行,所以 rank(A - 3I) = 1
    • λ₂ = 3 的几何重数是 n - rank = 2 - 1 = 1

第四步:比较代数重数和几何重数

现在,把每一步得到的结果放在一起。

判断准则:对于矩阵 A 的每一个特征值,如果它的几何重数都等于它的代数重数,那么这个矩阵 A 就可以对角化。只要有一个特征值不满足这个条件,那么 A 就不能对角化。

回到我们的例子 A = [[2, 1], [1, 2]]

  • 对于 λ₁ = 1:代数重数是 1,几何重数是 1。两者相等。
  • 对于 λ₂ = 3:代数重数是 1,几何重数是 1。两者相等。

所有特征值都满足“代数重数 = 几何重数”的条件。因此,矩阵 A 是可以对角化的。

看一个不能对角化的反例

我们来看一个经典的例子,矩阵 B = [[1, 1], [0, 1]]

  1. 第一步:计算特征值。

    • det(B - λI) = det([[1-λ, 1], [0, 1-λ]]) = (1-λ)² - 0 = (1-λ)²
    • (1-λ)² = 0,得到 λ = 1。这里只有一个特征值。
  2. 第二步:确定代数重数。

    • 因为特征方程是 (1-λ)² = 0,所以 λ = 1 是一个二重根。它的代数重数是 2。
  3. 第三步:计算几何重数。

    • 计算 B - λI,也就是 B - 1I = [[1-1, 1], [0, 1-1]] = [[0, 1], [0, 0]]
    • 这个矩阵 [[0, 1], [0, 0]] 的秩很明显是 1(因为它已经是一个行简化形式了,只有一个非零行)。
    • 矩阵维度 n=2。所以,λ = 1 的几何重数是 n - rank = 2 - 1 = 1
  4. 第四步:比较。

    • 对于特征值 λ = 1,它的代数重数是 2,但几何重数是 1。
    • 两者不相等。

结论:由于存在一个特征值,其代数重数不等于几何重数,所以矩阵 B 不能对角化。

这个例子清楚地说明了问题所在。矩阵 B 是一个 2×2 矩阵,但它只有一个线性无关的特征向量。你需要两个才能对角化,但你找不到。

一个有用的快捷方式

如果一个 n x n 矩阵有 n 个不同的特征值,那么它一定可以对角化。

为什么?因为如果一个特征值是唯一的,它的代数重数就是 1。而任何特征值的几何重数至少是 1(因为特征值存在,就至少有一个对应的特征向量),又不可能超过代数重数。所以,当一个特征值的代数重数是 1 时,它的几何重数也必须是 1。既然所有特征值的代数重数和几何重数都是 1,它们自然就相等了。

比如第一个例子 A = [[2, 1], [1, 2]],它是一个 2×2 矩阵,有两个不同的特征值 1 和 3。根据这个快捷方式,我们甚至不用算几何重数,就能直接判断它可以对角化。

但如果矩阵有重复的特征值,就像第二个例子 B 那样,你就必须老老实实地走完四步流程,去计算和比较几何重数,才能做出最终判断。

赞(0)
未经允许不得转载:七点爱学 » 如何判断是否相似于对角矩阵

评论 抢沙发

评论前必须登录!

立即登录   注册