1. 简介

以物理中「力」的角度来看待,我们通常会将「合力」分解为各个「分力」,来描述整个「合力」的影响。特征值分解便是将「矩阵」分解成各个方向的分量,通过对各个分量的刻画来描述此矩阵。

特征分解:eigen decomposition

特征向量:eigen vector

特征值:eigen value

2. 理解

设矩阵 ARn×nA \in \mathbb{R}^{n \times n},向量 xRn×1x \in \mathbb{R}^{n \times 1},则有:

  • 矩阵乘法本质是一种变换。以几何角度来看,AxAx 表示对向量 xx 进行旋转和伸缩变换。

  • 矩阵 AA 的特征向量是一种特殊的向量,满足 Ax=λxAx = \lambda x。也就是说,矩阵 AA 对特征向量 xx 只起到伸缩变换的作用,而没有旋转变换的作用

  • Ax=λxAx = \lambda x 表示矩阵 AA 和特征值 λ\lambda、特征向量 xx 之间建立了联系,但无法通过单一的 λ\lambdaxx 来表示 AA,因为单一的式子是不完备的。对于秩为 mm 的矩阵 AA,应该存在 mm 个这样的式子,满足:

    A(x1,x2,,xm)=(λ1x1,λ2x2,,λmxm)=(x1,x2,,xm)[λ1000λ2000λm]\begin{aligned} A(x_1, x_2, \cdots, x_m) & = (\lambda_1 x_1, \lambda_2 x_2, \cdots, \lambda_m x_m) \\ & = (x_1, x_2, \cdots, x_m) \left[\begin{matrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ 0 & 0 & \cdots & \lambda_m \\ \end{matrix}\right] \end{aligned}

    简化表达为:

    AV=VΛAV = V \Lambda

    从而可以得到矩阵 AA 的表达:A=VΛV1A = V \Lambda V^{-1},也即矩阵 AA特征值分解

  • 特征值和特征向量是为了研究向量在经过线性变换后的方向不变性而提出的。一个矩阵和该矩阵的非特征值向量相乘是对该向量的旋转和伸缩变换,一个矩阵和该矩阵的特征向量相乘是对该向量的伸缩变换,其伸缩程度取决于对应特征值的大小。

  • 矩阵在特征向量所指的方向上具有增强(或减弱)特征向量的作用。也就是说,如果矩阵持续地叠代作用于向量,那么特征向量的就会突显出来。

  • 设矩阵 ARn×nA \in \mathbb{R}^{n \times n} 的特征向量为 (v1,v2,,vn)(v_1, v_2, \cdots, v_n),特征值为 (λ1,λ2,,λn)(\lambda_1, \lambda_2, \cdots, \lambda_n),则对于向量 x=x1v1+x2v2++xnvnx = x_1 v_1 + x_2 v_2 + \cdots + x_n v_n,有

    Ax=A(x1v1+x2v2++xnvn)=x1Av1+x2Av2++xnAvn=x1λ1v1+x2λ2v2++xnλnvn\begin{aligned} Ax &= A(x_1 v_1 + x_2 v_2 + \cdots + x_n v_n) \\ &= x_1 A v_1 + x_2 A v_2 + \cdots + x_n A v_n \\ &= x_1 \lambda_1 v_1 + x_2 \lambda_2 v_2 + \cdots + x_n \lambda_n v_n \\ \end{aligned}

    使用 AA 作用 xxkk 次,有

    Akx=Ak1Ax=Ak1(x1λ1v1+x2λ2v2++xnλnvn)=Ak2(x1λ12v1+x2λ22v2++xnλn2vn)=x1λ1kv1+x2λ2kv2++xnλnkvn\begin{aligned} A^k x &= A^{k-1} A x \\ &= A^{k-1} (x_1 \lambda_1 v_1 + x_2 \lambda_2 v_2 + \cdots + x_n \lambda_n v_n) \\ &= A^{k-2} (x_1 \lambda_1^2 v_1 + x_2 \lambda_2^2 v_2 + \cdots + x_n \lambda_n^2 v_n) \\ &\quad \vdots \\ & = x_1 \lambda_1^k v_1 + x_2 \lambda_2^k v_2 + \cdots + x_n \lambda_n^k v_n \\ \end{aligned}

    一般假定 λ1>λ2>>λn\lambda_1 \gt \lambda_2 \gt \cdots \gt \lambda_n,故有

    Akx=λ1k(x1v1+x2λ2kλ1kv2++xnλnkλ1kvn)\begin{aligned} A^k x &= \lambda_1^k(x_1 v_1 + x_2 \frac{\lambda_2^k}{\lambda_1^k} v_2 + \cdots + x_n \frac{\lambda_n^k}{\lambda_1^k} v_n) \\ \end{aligned}

    kk \rightarrow \infty 时,有

    limkAkx=λ1kx1v1\lim_{k \rightarrow \infty} A^k x = \lambda_1^k x_1 v_1

    即当矩阵 AA 作用在 xx 上足够多次时,将得到矩阵 AA 的主特征向量的伸缩,归一化便可得到主特征向量 v1v_1

3. 求解

只有对可对角化矩阵才可以施以特征分解。

  • 首先求出所有特征值,由

    Av=λv(λIA)v=0Av = \lambda v \Rightarrow (\lambda I - A) v = 0

    为使上述方程有非零解,要求 det(λIA)=0\det{(\lambda I - A)} = 0

  • 再根据求出的特征值 λ\lambda,代入 Av=λvAv = \lambda v 去计算对应的特征向量 vv

附录