我们已确定特征值(λ\lambdaλ)和特征向量 (vector)(xxx)满足基本关系Ax=λxAx = \lambda xAx=λx。这个方程说明,当矩阵AAA变换向量xxx时,结果只是原始向量xxx按因子λ\lambdaλ进行缩放。特征向量的方向保持不变。
我们现在的目标是找到一种系统方法来确定给定方阵AAA的λ\lambdaλ的可能取值。我们可以从重新整理特征方程开始:
Ax=λxAx = \lambda xAx=λx
从两边减去λx\lambda xλx:
Ax−λx=0Ax - \lambda x = 0Ax−λx=0
其中000代表零向量。为了提取向量xxx作为公因子,我们需要将λx\lambda xλx表示为矩阵-向量积。我们可以使用与AAA相同大小的单位矩阵III来做到这一点。回想一下,Ix=xIx = xIx=x。因此,λx=λIx\lambda x = \lambda I xλx=λIx。将其代入我们的方程,得到:
Ax−λIx=0Ax - \lambda I x = 0Ax−λIx=0
现在我们可以提取向量xxx作为公因子:
(A−λI)x=0(A - \lambda I)x = 0(A−λI)x=0
这个方程很重要。它是一个Mx=0Mx = 0Mx=0形式的齐次线性方程组,其中矩阵MMM是(A−λI)(A - \lambda I)(A−λI)。我们寻找的是特征值λ\lambdaλ,这些标量使得此方程对xxx有非零解(因为特征向量根据定义不能是零向量)。
回顾求解线性方程组。如果矩阵MMM可逆,齐次系统Mx=0Mx = 0Mx=0只有平凡解(x=0x = 0x=0)。反之,当且仅当矩阵MMM是奇异的(不可逆的)时,它才具有非平凡解(这正是我们特征向量所需的)。
将其应用于我们的特征值问题,矩阵M=(A−λI)M = (A - \lambda I)M=(A−λI)必须是奇异的,以便存在非零特征向量xxx。
我们如何判断一个矩阵是否奇异?矩阵的一个基本性质是,一个方阵奇异当且仅当其行列式为零。
因此,为了找到特征值λ\lambdaλ,我们必须找到使矩阵(A−λI)(A - \lambda I)(A−λI)奇异的λ\lambdaλ值。这直接得出以下条件:
det(A−λI)=0det(A - \lambda I) = 0det(A−λI)=0
这个方程称为矩阵AAA的特征方程。
当您计算行列式det(A−λI)det(A - \lambda I)det(A−λI)时,您会发现它会得到一个关于变量λ\lambdaλ的多项式。这个多项式被称为特征多项式。这个多项式的次数等于方阵AAA的维度。特征多项式的根正是矩阵AAA的特征值。
示例:求2x2矩阵的特征值
让我们找出一个一般的2x2矩阵的特征方程:
A=[abcd]A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}A=[acbd]
首先,构成矩阵(A−λI)(A - \lambda I)(A−λI):
A−λI=[abcd]−λ[1001]=[a−λbcd−λ]A - \lambda I = \begin{bmatrix} a & b \\ c & d \end{bmatrix} - \lambda \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} = \begin{bmatrix} a - \lambda & b \\ c & d - \lambda \end{bmatrix}A−λI=[acbd]−λ[1001]=[a−λcbd−λ]
接下来,计算这个矩阵的行列式:
det(A−λI)=(a−λ)(d−λ)−(b)(c)det(A - \lambda I) = (a - \lambda)(d - \lambda) - (b)(c)det(A−λI)=(a−λ)(d−λ)−(b)(c)
最后,将行列式设为零,得到特征方程:
(a−λ)(d−λ)−bc=0(a - \lambda)(d - \lambda) - bc = 0(a−λ)(d−λ)−bc=0
展开后得到:
ad−aλ−dλ+λ2−bc=0ad - a\lambda - d\lambda + \lambda^2 - bc = 0ad−aλ−dλ+λ2−bc=0
λ2−(a+d)λ+(ad−bc)=0\lambda^2 - (a + d)\lambda + (ad - bc) = 0λ2−(a+d)λ+(ad−bc)=0
请注意,(a+d)(a+d)(a+d)是矩阵A的迹(对角线元素之和),记作tr(A)tr(A)tr(A),而(ad−bc)(ad-bc)(ad−bc)是A的行列式,记作det(A)det(A)det(A)。所以,对于2x2矩阵,特征方程总是:
λ2−tr(A)λ+det(A)=0\lambda^2 - tr(A)\lambda + det(A) = 0λ2−tr(A)λ+det(A)=0
这是一个关于λ\lambdaλ的二次方程。求解这个方程(例如使用二次公式)将得到2x2矩阵AAA的特征值。对于n×nn \times nn×n矩阵,您会得到一个nnn次多项式,求其根即可得到nnn个特征值(它们可能是实数或复数,并且不一定都相同)。
尽管求解特征方程是寻找特征值的标准理论方法,但对于大型矩阵,数值求解高次多项式的根可能具有挑战性且容易不稳定。在实践中,像NumPy这样的计算库会使用更复杂和稳定的迭代算法(通常基于QR分解等矩阵分解)来寻找特征值和特征向量 (vector),尤其是在机器学习 (machine learning)中遇到的大型矩阵。然而,理解特征方程为这些算法所实现的功能提供了必要的理论基础。