特征方程,det(A−λI)=0,用于找到给定方阵 A 的特征值 (λ)。特征值表示特征向量经矩阵 A 变换后被缩放的倍数。下面将为每个特征值找到对应的实际特征向量 (x)。
我们从矩阵、其特征值及其对应的特征向量之间的基本定义开始:
Ax=λx
我们的目的是找到满足特定特征值 λ 的这个方程的非零向量 x。我们可以重新排列此方程,将所有项移到一边:
Ax−λx=0
继续下一步,我们需要提取向量 x。我们可以引入单位矩阵 I(与 A 具有相同维度)而不改变方程,因为 Ix=x:
Ax−λIx=0
现在,我们可以提取 x:
(A−λI)x=0
这个方程是一个齐次线性方程组。它看起来很像 Mx=0 的形式,其中 M=(A−λI)。我们正在寻找该方程组的非零解 x。
为什么我们能保证找到非零解?回顾一下,我们通过求解 det(A−λI)=0 找到了特征值 λ。行列式为零的矩阵称为奇异矩阵。奇异矩阵不可逆,并且当 M 是奇异矩阵时,Mx=0 系统的一个重要性质是它有无穷多个非平凡(非零)解。这些 x 的非零解正是与特征值 λ 相关的特征向量。
计算过程
因此,对于您计算出的每一个特征值 λ:
- 构造矩阵: 构造矩阵 M=A−λI。这涉及从原始矩阵 A 的每个对角线元素中减去特征值 λ。
- 建立系统: 写出齐次方程组 Mx=0,即 (A−λI)x=0。
- 求解系统: 找到向量 x 的非零解。此处的标准方法是对矩阵 M=A−λI 应用高斯消元法(行化简)。您实际上是在寻找矩阵 (A−λI) 的零空间。
- 确定特征向量: 解通常会涉及一个或多个自由变量。这意味着不存在唯一的解向量 x。相反,这些解构成一个子空间,称为该特征值 λ 的特征空间。此特征空间中的任何非零向量都是一个有效的特征向量。通常,我们会选择一个简单的代表向量(通常通过将自由变量设置为一个方便的值,例如 1)。
计算示例
让我们举例说明一个简单的 2x2 矩阵。考虑以下矩阵:
A=[4213]
假设我们已经使用特征方程找到了特征值。假设其中一个特征值是 λ=5。现在我们找到对应于 λ=5 的特征向量。
-
构造矩阵 (A−λI):
A−λI=A−5I=[4213]−5[1001]=[4213]−[5005]=[−121−2]
-
建立系统 (A−λI)x=0:
令 x=[x1x2]。该系统为:
[−121−2][x1x2]=[00]
这转化为以下方程:
−x1+x2=0
2x1−2x2=0
-
求解系统:
注意到第二个方程只是第一个方程的 -2 倍。它们是线性相关的,这是预料之中的,因为矩阵 (A−5I) 是奇异的。从第一个方程中,我们得到:
x2=x1
变量 x1 是一个自由变量。我们可以为其选择任何值(除了 0,因为特征向量必须是非零的),x2 将由此确定。
-
确定一个特征向量:
让我们为自由变量选择一个简单值,比如 x1=1。那么 x2=1。
因此,对应于特征值 λ=5 的一个特征向量是:
x=[11]
该向量的任何非零标量倍数,例如 [22] 或 [−0.5−0.5],也都是 λ=5 的有效特征向量。所有此类向量的集合构成了 λ=5 的特征空间。
对于为矩阵 A 找到的任何其他特征值,您都会重复此过程。
尽管手动进行高斯消元对于较小的矩阵很有启发性,但对于机器学习应用中遇到的大型矩阵,您将依赖 NumPy 等数值库,这些库具有高效函数可以直接计算特征值和特征向量。然而,理解这个底层过程,能够对这些函数的作用以及如何解释其结果提供有益的见解。