特征值和特征向量的意义
假设给定矩阵A,作用在向量x上,结果就得到了向量Ax(此时矩阵A就像一个函数f(x)),其中,我们会得到Ax中的很多向量,在这些向量中,我们感兴趣的是那些线性变换前后方向保持一致的向量,这些向量是特殊的。因为对于多数向量而言,线性变换后的Ax与x是在方向上会发生改变。对于那些特定的向量能使得Ax平行于x的,我们称之为特征向量(Eigenvectors)。
那么平行意味着什么?我们可以用方程来表达这样的关系,即Ax=λx,x表示特征向量,λ作为向量x的系数,可以为负数表示平行且方向相反,也可以取0,甚至可以为复数(实数构成的矩阵可能会出现虚数特征值)。这里的λ称为特征值(Eigenvalues)。
我们现在并不知道该如何求矩阵的特征向量和特征值,但我们可以先来考虑以下几个问题:
(1)当特征值为0时,意味着什么?根据我们前文所学的知识,当特征值为0时,有Ax=λx⇒Ax=0,即特征值为0的特征向量应该位于A的零空间中。也就是说,如果矩阵A是不可逆矩阵,那么它将会有一个特征值为λ=0。
(2)我们再来看投影矩阵P=A(ATA)−1AT的特征值和特征向量。
- 当向量b处于投影平面(A的列空间)中时,Pb与b是同向的,此时b投影前后不变,即Pb=1⋅b。即在投影平面中的所有向量都是投影矩阵的特征向量,而它们的特征值均为1。
- 当向量b为投影平面的法向量时,此时b也就是误差向量e。我们知道误差向量e垂直于列空间C(A),因此我们可以得到Pe=0⋅e,即特征向量e的特征值为0。
- 因此投影矩阵的特征值为1,0。
(3)如何求二阶置换矩阵A=[0110]的特征值和特征向量。观察矩阵我们会知道,经过置换矩阵处理过的向量,其元素会发生交换,那么就有经过矩阵交换元素前后不变的情况和方向相反的情况,分别为特征值为1的特征向量[11]和特征值为−1时的特征向量[1−1]。
对于一个n×n的矩阵,将会有n个特征值,特征值与该矩阵对角线上的元素的和相同,即∑i=1nλi=∑i=1naii。我们把矩阵对角线上的元素称为矩阵的迹(Trace)。在上文二阶置换矩阵的例子中,如果我们求得了一个特征值1,我们可以直接利用迹来求出另一特征值λ2=0+0−1=−1。
特征值和特征向量的求解
我们的问题是如何找到特征值和特征向量,这不是一个Ax=b的求解问题,因此不能使用消元法,我们需要一个更巧妙的方法来求解它们。
观察等式Ax=λx,这个等式难解是因为其中有两个未知量(λ和x),我们的目标是将等式化成仅有一个未知量的方程,因此我们需要对其进行变形,λ可以看作是λI,这样就有
Ax=λx⇒Ax=λIx⇒(A−λI)x=0
如果对于不为零向量的x该等式成立,那么意味着矩阵(A−λI)为奇异矩阵(否则向量x必为零向量或零矩阵)。那么我们知道奇异矩阵的判定方法是其行列式为零,即
∣A−λI∣=0
这样等式中就不含未知量x了,该方程仅含未知量λ,该方程称为特征方程或特征值方程。我们可以通过特征方程来求解出λ,当然λ可能有多个不同的值,也可能有重复的值,重复的λ是难点所在。
得到λ后,我们可以继续求解向量x,此时使用消元法,我们已知(A−λI)是个奇异矩阵,寻找其零空间,利用消元法找出主列,给自由变量赋值即可。下面我们以一个示例来具体阐述求解的步骤。
例 求A=[3113]的特征值和特征向量
观察矩阵A,我们发现这是一个对称矩阵,对称矩阵意味着其特征值必为实数(这在后面的篇幅中会证明)。我们先来求(A−λI)的行列式,有
det(A−λI)=∣∣∣∣3−λ113−λ∣∣∣∣=(3−λ)2−1=λ2−6λ+8=(λ−4)(λ−2)=0
求解过程中我们发现(A−λI)的行列式最后化成了一元二次方程,我们可以轻松求解出λ1=4,λ2=2。在继续求解下去之前,对于二维的矩阵,我们可以观察到在一元二次方程展开后,一次项的系数其实就是矩阵A的迹的相反数(3+3=6),而常数项则为矩阵A的行列式(det(A)=3×3−1=8),根据因式分解的特点,我们可以进一步得出,特征值之和就等于矩阵的迹,特征值之积等于矩阵的行列式,即
i=1∑nλi=i=1∑naii,i=1∏nλi=det(A)
然后再来看特征向量,我们已经得到了两个特征值,现在只需要分别将两个特征值代入去求解特征向量,
-
当λ=4时,有A−4I=[3−4113−4]=[−111−1],这个矩阵是奇异的,代入到(A−λI)x=0,有[−111−1][x1x2]=[00],得x1=[11]。
-
当λ=2时,有A−2I=[3−2113−2]=[1111],这个矩阵是奇异的,代入到(A−λI)x=0,有[1111][x1x2]=[00],得x2=[−11]。
至此我们完成了对矩阵A的特征值和特征向量的求解,并且我们还发现两特征向量满足正交关系。
观察A=[3113]得到的特征向量,与第一节中的置换矩阵A=[0110]刚好相同,它们的特征值不相同,前者为4和2,后者为1和−1。但是我们发现,两个矩阵之间的关系可以看作[3113]=[0110]+3I,其特征值的关系为4=1+3,2=−1+3,那么两矩阵相加时,得到的矩阵的特征值之和是否等于两矩阵特征值之和?
我们设Ax=λx,Bx=αx,只需验证(A+B)x=(λ+α)x是否成立。
当B=3I时,在上述例子中我们知道,该等式是成立的,但是如果矩阵B为任意矩阵,则等式不一定成立。因为这两个式子中的特征向量x不一定相同,所以等式应该写成Ax=λx,By=αy,显然加和的等式无法成立。因此A+B的特征值并不一定等于A的特征值和B的特征值之和,仅当B为单位矩阵的倍数时成立。
复数特征值的情况
上文中还有个问题是,为什么实数构成的矩阵可能会出现虚数特征值?
例 旋转矩阵Q可以使得空间中的向量旋转90°,Q=[cos90°sin90°−sin90°cos90°]=[01−10],用Q表示是因为旋转矩阵是正交矩阵。
我们观察矩阵Q的迹和行列式发现
{λ1+λ2=0(矩阵的迹)λ1⋅λ2=1(矩阵的行列式)
从几何角度上,可以想象,哪些向量发生90°旋转后还是它自身,显然对于实向量是不存在的。如果我们求解(Q−λI)的行列式有
det(Q−λI)=[−λ1−1−λ]=λ2+1=0
解得λ1=i,λ2=−i。两个特征值均为复数,因此我们说即使矩阵全是由实数构成的,其特征值也可能不是实数。有一个结论是:如果矩阵越接近对称,那么其特征值就是实数,相反,如果矩阵越不对称,那么其特征值就越可能有虚数存在。对于反对称矩阵QT=−Q,是一个极端情况,于是我们得到了纯虚数的特征值,通常我们见到的矩阵是介于对称与反对称之间的。
特征值相同的情况
例 求A=[3013]的特征值和特征向量
首先观察矩阵A发现这是一个三角矩阵,三角矩阵的特征值就在其对角线元素上,因为在行列式的计算中,对角线两侧的元素不影响其行列式的值,有
det(A−λI)=∣∣∣∣3−λ013−λ∣∣∣∣=(3−λ)2=0
解得λ1=λ2=3。下面代入特征值计算特征向量,有
(A−λI)x=[−111−1][x1x2]=[00]
因为两个特征值都为3,因此我们只能求出一个特征向量,即x2,我们无法得出另一个与x1线性无关的特征向量了。本例中,矩阵A是一个退化矩阵,重复的特征值在特殊情况下可能导致特征向量的短缺。
特征值与特征向量的应用
在了解了什么是特征值与特征向量及它们的求解方法后,我们来讨论它们的应用问题。
对角化(Diagonalization)
首先给出对角化矩阵公式:S−1AS=Λ
其中,矩阵S是矩阵A的特征向量按列组成的,S称为特征向量矩阵(Eigenvector Matrices),矩阵Λ称为对角特征值矩阵,其对角线上的元素为矩阵A的特征值,其余元素全部为0。
推导过程:
-
根据Axn=λnxn,我们将AS展开得到
AS=A[x1x2⋯xn]=[λ1x1λ2x2⋯λnxn]
-
将其写成矩阵形式
AS=[λ1x1λ2x2⋯λnxn]=[x1x2⋯xn]⎣⎢⎢⎢⎢⎡λ10⋮00λ2⋯⋯⋱00⋮0λn⎦⎥⎥⎥⎥⎤=SΛ
-
由于矩阵S中的列向量线性无关,因此矩阵S−1必然存在,我们可以在矩阵两侧左乘逆矩阵得到
AS=SΛ⇒S−1AS=Λ⇒A=SΛS−1
因此我们得到了一种新的矩阵分解方式:A=SΛS−1。它可以将矩阵A分解为特征向量矩阵、对称特征值矩阵与
特征向量矩阵的逆的乘积。我们将这一过程称为矩阵A的对角化。它的作用使得求解矩阵的幂变得更为方便。
矩阵的幂
矩阵A的对角化对求解矩阵的幂有着至关重要的作用。我们先来探讨一个问题:A2的特征值和特征向量会有什么变化?
考虑A2的特征向量和特征值,我们依然从Ax=λx开始,我们将等式两侧同乘A得
A2x=λAx=λ2x
这说明A2和A得特征向量相同,而特征值为λ2,写成对角化形式有
A2=SΛS−1SΛS−1=SΛ2S−1
将其以此类推可知
Ak=SΛkS−1
即矩阵Ak与矩阵A的特征向量相同,特征值为λk。这就启示我们:如果要求一个矩阵A的k次幂,我们可以先对矩阵A进行对角化分解,再求其对角特征值矩阵的k次幂即可。
因此我们可以推出一个结论:如果矩阵A具有n个线性无关的特征向量,如果所有特征值均满足∣λi∣<1,则当k→∞时,Ak→0。