线性代数(7):特征值与特征向量

线性代数(7):特征值与特征向量

特征值和特征向量的意义

假设给定矩阵AA,作用在向量xx上,结果就得到了向量AxAx(此时矩阵A就像一个函数f(x)f(x)),其中,我们会得到AxAx中的很多向量,在这些向量中,我们感兴趣的是那些线性变换前后方向保持一致的向量,这些向量是特殊的。因为对于多数向量而言,线性变换后的AxAxxx是在方向上会发生改变。对于那些特定的向量能使得AxAx平行于xx的,我们称之为特征向量(Eigenvectors)

那么平行意味着什么?我们可以用方程来表达这样的关系,即Ax=λxAx=\lambda xxx表示特征向量,λ\lambda作为向量xx的系数,可以为负数表示平行且方向相反,也可以取00,甚至可以为复数(实数构成的矩阵可能会出现虚数特征值)。这里的λ\lambda称为特征值(Eigenvalues)

我们现在并不知道该如何求矩阵的特征向量和特征值,但我们可以先来考虑以下几个问题:

(1)当特征值为00时,意味着什么?根据我们前文所学的知识,当特征值为00时,有Ax=λxAx=0Ax=\lambda x \Rightarrow Ax=0,即特征值为00的特征向量应该位于AA的零空间中。也就是说,如果矩阵AA是不可逆矩阵,那么它将会有一个特征值为λ=0\lambda = 0

(2)我们再来看投影矩阵P=A(ATA)1ATP = A(A^TA)^{-1}A^T的特征值和特征向量。

  • 当向量bb处于投影平面(AA的列空间)中时,PbPbbb是同向的,此时bb投影前后不变,即Pb=1bPb=1·b。即在投影平面中的所有向量都是投影矩阵的特征向量,而它们的特征值均为11
  • 当向量bb为投影平面的法向量时,此时bb也就是误差向量ee。我们知道误差向量ee垂直于列空间C(A)C(A),因此我们可以得到Pe=0ePe=0·e,即特征向量ee的特征值为0。
  • 因此投影矩阵的特征值为1,01,0

(3)如何求二阶置换矩阵A=[0110]A=\left[\begin{matrix} 0 & 1 \\ 1 & 0\end{matrix}\right]的特征值和特征向量。观察矩阵我们会知道,经过置换矩阵处理过的向量,其元素会发生交换,那么就有经过矩阵交换元素前后不变的情况和方向相反的情况,分别为特征值为11的特征向量[11]\left[\begin{matrix} 1 \\ 1\end{matrix}\right]和特征值为1-1时的特征向量[11]\left[\begin{matrix} 1 \\ -1 \end{matrix}\right]

对于一个n×nn×n的矩阵,将会有nn个特征值,特征值与该矩阵对角线上的元素的和相同,即i=1nλi=i=1naii\sum_{i=1}^n \lambda_i = \sum_{i=1}^n a_{ii}。我们把矩阵对角线上的元素称为矩阵的迹(Trace)。在上文二阶置换矩阵的例子中,如果我们求得了一个特征值11,我们可以直接利用迹来求出另一特征值λ2=0+01=1\lambda_2 = 0+0-1=-1

特征值和特征向量的求解

我们的问题是如何找到特征值和特征向量,这不是一个Ax=bAx=b的求解问题,因此不能使用消元法,我们需要一个更巧妙的方法来求解它们。

观察等式Ax=λxAx=\lambda x,这个等式难解是因为其中有两个未知量(λ\lambdaxx),我们的目标是将等式化成仅有一个未知量的方程,因此我们需要对其进行变形,λ\lambda可以看作是λI\lambda I,这样就有

Ax=λxAx=λIx(AλI)x=0Ax=\lambda x \Rightarrow Ax = \lambda Ix \Rightarrow (A-\lambda I)x = 0

如果对于不为零向量的xx该等式成立,那么意味着矩阵(AλI)(A-\lambda I)为奇异矩阵(否则向量xx必为零向量或零矩阵)。那么我们知道奇异矩阵的判定方法是其行列式为零,即

AλI=0|A-\lambda I| = 0

这样等式中就不含未知量xx了,该方程仅含未知量λ\lambda,该方程称为特征方程特征值方程。我们可以通过特征方程来求解出λ\lambda,当然λ\lambda可能有多个不同的值,也可能有重复的值,重复的λ\lambda是难点所在。

得到λ\lambda后,我们可以继续求解向量xx,此时使用消元法,我们已知(AλI)(A-\lambda I)是个奇异矩阵,寻找其零空间,利用消元法找出主列,给自由变量赋值即可。下面我们以一个示例来具体阐述求解的步骤。

例 求A=[3113]A=\left[\begin{matrix} 3 & 1 \\ 1 & 3\end{matrix}\right]的特征值和特征向量

观察矩阵AA,我们发现这是一个对称矩阵,对称矩阵意味着其特征值必为实数(这在后面的篇幅中会证明)。我们先来求(AλI)(A-\lambda I)的行列式,有

det(AλI)=3λ113λ=(3λ)21=λ26λ+8=(λ4)(λ2)=0det(A-\lambda I)= \begin{vmatrix} 3-\lambda & 1 \\ 1 & 3-\lambda\end{vmatrix} = (3-\lambda)^2 -1 = \lambda^2-6\lambda + 8=(\lambda-4)(\lambda -2)=0

求解过程中我们发现(AλI)(A-\lambda I)的行列式最后化成了一元二次方程,我们可以轻松求解出λ1=4,λ2=2\lambda_1 = 4, \lambda_2 = 2。在继续求解下去之前,对于二维的矩阵,我们可以观察到在一元二次方程展开后,一次项的系数其实就是矩阵AA的迹的相反数(3+3=63+3=6),而常数项则为矩阵AA的行列式(det(A)=3×31=8det(A) = 3×3-1 = 8),根据因式分解的特点,我们可以进一步得出,特征值之和就等于矩阵的迹,特征值之积等于矩阵的行列式,即

i=1nλi=i=1naii,i=1nλi=det(A)\sum_{i=1}^n \lambda_i = \sum_{i=1}^n a_{ii}, \quad \prod_{i=1}^n \lambda_i = det(A)

然后再来看特征向量,我们已经得到了两个特征值,现在只需要分别将两个特征值代入去求解特征向量,

  • λ=4\lambda = 4时,有A4I=[341134]=[1111]A-4I = \left[\begin{matrix} 3-4 & 1 \\ 1 & 3-4\end{matrix}\right] = \left[\begin{matrix} -1 & 1 \\ 1 & -1\end{matrix}\right],这个矩阵是奇异的,代入到(AλI)x=0(A-\lambda I)x = 0,有[1111][x1x2]=[00]\left[\begin{matrix} -1 & 1 \\ 1 & -1\end{matrix}\right]\left[\begin{matrix} x_1 \\ x_2\end{matrix}\right] = \left[\begin{matrix} 0 \\ 0\end{matrix}\right],得x1=[11]x_1=\left[\begin{matrix} 1 \\ 1\end{matrix}\right]

  • λ=2\lambda = 2时,有A2I=[321132]=[1111]A-2I = \left[\begin{matrix} 3-2 & 1 \\ 1 & 3-2\end{matrix}\right] = \left[\begin{matrix} 1 & 1 \\ 1 & 1\end{matrix}\right],这个矩阵是奇异的,代入到(AλI)x=0(A-\lambda I)x = 0,有[1111][x1x2]=[00]\left[\begin{matrix} 1 & 1 \\ 1 & 1\end{matrix}\right]\left[\begin{matrix} x_1 \\ x_2\end{matrix}\right] = \left[\begin{matrix} 0 \\ 0\end{matrix}\right],得x2=[11]x_2=\left[\begin{matrix} -1 \\ 1\end{matrix}\right]

至此我们完成了对矩阵AA的特征值和特征向量的求解,并且我们还发现两特征向量满足正交关系。

观察A=[3113]A=\left[\begin{matrix} 3 & 1 \\ 1 & 3\end{matrix}\right]得到的特征向量,与第一节中的置换矩阵A=[0110]A=\left[\begin{matrix} 0 & 1 \\ 1 & 0\end{matrix}\right]刚好相同,它们的特征值不相同,前者为4422,后者为111-1。但是我们发现,两个矩阵之间的关系可以看作[3113]=[0110]+3I\left[\begin{matrix} 3 & 1 \\ 1 & 3\end{matrix}\right] = \left[\begin{matrix} 0 & 1 \\ 1 & 0\end{matrix}\right]+3I,其特征值的关系为4=1+32=1+34=1+3,2=-1+3,那么两矩阵相加时,得到的矩阵的特征值之和是否等于两矩阵特征值之和?

我们设Ax=λxBx=αxAx=\lambda x,Bx=\alpha x,只需验证(A+B)x=(λ+α)x(A+B)x=(\lambda+\alpha)x是否成立。

B=3IB=3I时,在上述例子中我们知道,该等式是成立的,但是如果矩阵BB为任意矩阵,则等式不一定成立。因为这两个式子中的特征向量xx不一定相同,所以等式应该写成Ax=λxBy=αyAx=\lambda x,By=\alpha y,显然加和的等式无法成立。因此A+BA+B的特征值并不一定等于AA的特征值和BB的特征值之和,仅当BB为单位矩阵的倍数时成立。

复数特征值的情况

上文中还有个问题是,为什么实数构成的矩阵可能会出现虚数特征值?

例 旋转矩阵QQ可以使得空间中的向量旋转90°90°Q=[cos90°sin90°sin90°cos90°]=[0110]Q=\left[\begin{matrix} cos90° & -sin90° \\ sin90° & cos90° \end{matrix}\right] = \left[\begin{matrix} 0 & -1 \\ 1 & 0 \end{matrix}\right],用QQ表示是因为旋转矩阵是正交矩阵。

我们观察矩阵QQ的迹和行列式发现

{λ1+λ2=0λ1λ2=1\begin{cases} \lambda_1+\lambda_2 = 0(矩阵的迹) \\ \lambda_1·\lambda_2=1(矩阵的行列式)\end{cases}

从几何角度上,可以想象,哪些向量发生90°90°旋转后还是它自身,显然对于实向量是不存在的。如果我们求解(QλI)(Q-\lambda I)的行列式有

det(QλI)=[λ11λ]=λ2+1=0det(Q-\lambda I) = \left[\begin{matrix} -\lambda & -1 \\ 1 & -\lambda\end{matrix}\right] = \lambda^2+1=0

解得λ1=i,λ2=i\lambda_1 = i, \lambda_2=-i。两个特征值均为复数,因此我们说即使矩阵全是由实数构成的,其特征值也可能不是实数。有一个结论是:如果矩阵越接近对称,那么其特征值就是实数,相反,如果矩阵越不对称,那么其特征值就越可能有虚数存在。对于反对称矩阵QT=QQ^T=-Q,是一个极端情况,于是我们得到了纯虚数的特征值,通常我们见到的矩阵是介于对称与反对称之间的。

特征值相同的情况

例 求A=[3103]A = \left[\begin{matrix} 3 & 1 \\ 0 & 3\end{matrix}\right]的特征值和特征向量

首先观察矩阵AA发现这是一个三角矩阵,三角矩阵的特征值就在其对角线元素上,因为在行列式的计算中,对角线两侧的元素不影响其行列式的值,有

det(AλI)=3λ103λ=(3λ)2=0det(A-\lambda I) = \begin{vmatrix} 3-\lambda & 1 \\ 0 & 3-\lambda\end{vmatrix} = (3-\lambda)^2 = 0

解得λ1=λ2=3\lambda_1 = \lambda_2= 3。下面代入特征值计算特征向量,有

(AλI)x=[1111][x1x2]=[00](A-\lambda I)x=\left[\begin{matrix} -1 & 1 \\ 1 & -1\end{matrix}\right]\left[\begin{matrix} x_1 \\ x_2\end{matrix}\right] = \left[\begin{matrix} 0 \\ 0\end{matrix}\right]

因为两个特征值都为33,因此我们只能求出一个特征向量,即x2x_2,我们无法得出另一个与x1x_1线性无关的特征向量了。本例中,矩阵AA是一个退化矩阵,重复的特征值在特殊情况下可能导致特征向量的短缺。

特征值与特征向量的应用

在了解了什么是特征值与特征向量及它们的求解方法后,我们来讨论它们的应用问题。

对角化(Diagonalization)

首先给出对角化矩阵公式:S1AS=ΛS^{-1}AS=\Lambda

其中,矩阵SS是矩阵A的特征向量按列组成的,SS称为特征向量矩阵(Eigenvector Matrices),矩阵Λ\Lambda称为对角特征值矩阵,其对角线上的元素为矩阵AA的特征值,其余元素全部为00

推导过程:

  • 根据Axn=λnxnAx_n=\lambda_n x_n,我们将AS展开得到

    AS=A[x1x2xn]=[λ1x1λ2x2λnxn]AS = A\left[\begin{matrix} x_1 & x_2 & \cdots & x_n\end{matrix}\right] = \left[\begin{matrix} \lambda_1x_1 & \lambda_2x_2 & \cdots & \lambda_nx_n\end{matrix}\right]

  • 将其写成矩阵形式

    AS=[λ1x1λ2x2λnxn]=[x1x2xn][λ1000λ2000λn]=SΛAS = \left[\begin{matrix} \lambda_1x_1 & \lambda_2x_2 & \cdots & \lambda_nx_n\end{matrix}\right] = \left[\begin{matrix} x_1 & x_2 & \cdots & x_n\end{matrix}\right]\left[\begin{matrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & & \vdots \\ \vdots & & \ddots & 0 \\ 0 & \cdots & 0&\lambda_n\end{matrix}\right]=S\Lambda

  • 由于矩阵S中的列向量线性无关,因此矩阵S1S^{-1}必然存在,我们可以在矩阵两侧左乘逆矩阵得到

    AS=SΛS1AS=ΛA=SΛS1AS = S\Lambda \Rightarrow S^{-1}AS=\Lambda \Rightarrow A = S\Lambda S^{-1}

因此我们得到了一种新的矩阵分解方式:A=SΛS1A = S\Lambda S^{-1}。它可以将矩阵AA分解为特征向量矩阵、对称特征值矩阵与

特征向量矩阵的逆的乘积。我们将这一过程称为矩阵AA的对角化。它的作用使得求解矩阵的幂变得更为方便。

矩阵的幂

矩阵AA的对角化对求解矩阵的幂有着至关重要的作用。我们先来探讨一个问题:A2A^2的特征值和特征向量会有什么变化?

考虑A2A^2的特征向量和特征值,我们依然从Ax=λxAx=\lambda x开始,我们将等式两侧同乘AA

A2x=λAx=λ2xA^2x=\lambda Ax = \lambda^2x

这说明A2A^2AA得特征向量相同,而特征值为λ2\lambda^2,写成对角化形式有

A2=SΛS1SΛS1=SΛ2S1A^2 = S\Lambda S^{-1}S\Lambda S^{-1} = S\Lambda^2S^{-1}

将其以此类推可知

Ak=SΛkS1A^k = S\Lambda^kS^{-1}

即矩阵AkA^k与矩阵AA的特征向量相同,特征值为λk\lambda^k。这就启示我们:如果要求一个矩阵AAkk次幂,我们可以先对矩阵AA进行对角化分解,再求其对角特征值矩阵的kk次幂即可。

因此我们可以推出一个结论:如果矩阵AA具有nn个线性无关的特征向量,如果所有特征值均满足λi<1|\lambda_i|<1,则当kk \rightarrow \infty时,Ak0A^k \rightarrow 0