特征值分解与Jordan标准型
这篇文章采用的证明思路可能给人缝合怪的感觉,我所希望突出的,是尽可能简洁、直接地体现“原空间分解成一些零空间(特征子空间)”的想法。我尽可能避免有循环论证,但如果还是不严谨,恕我能力不足。
算子
我们称一个 \(V\) 到 \(V\) 自身的线性变换 \(T\) 为 \(V\) 上的算子。记作 \(F \in \mathcal{L}(V, V)\),简记为 \(T \in \mathcal{L}(V)\)。
在本文中,如果没有特殊指明,我们默认算子的入空间和出空间使用同一组规范正交基,这样,算子可以简单地用矩阵表示。
事实上,我们后面的证明也会说明,改变基并不改变行列式。因此 \(\det T\) 是有意义的,算子的行列式定义为任意基表示下的矩阵行列式。
不变子空间
对于 \(V\) 上的算子 \(T\),如果存在 \(V\) 的一个子空间 \(U\),满足 \(\forall u \in U, Tu \in U\),则称 \(U\) 是 \(T\) 的一个不变子空间。
比如 \(\text{null }T, \text{range }T\) 都是不变子空间。同样地,\(0,V\) 也是不变子空间。读者自证不难。
特别地,如果 \(U\) 是一维的,则 \(U = \{u\mid Tu = \lambda u\}\)。此时,我们将 \(\lambda\) 叫作 \(T\) 的一个特征值,\(u\) 叫作 \(T\) 的一个特征向量。
可以发现,\(u\) 确定了 \(T\) 的一个一维不变子空间,而 \(\lambda\) 确定了在这个子空间上 \(T\) 的效果。
不变子空间的重要性在于,\(T\) 在子空间内的效果与子空间外无关。也就是说,如果我们能把 \(V\) 拆成一些不变子空间的直和,分别研究子空间内 \(T\) 的效果,再组合起来就完全确定了 \(T\) 的效果。
而最容易处理的不变子空间就是一维的,所以我们给它起了特征向量和特征值的名字。自然地,我们就要考虑,\(V\) 是否能分成 \(n\) 个一维不变子空间的直和。
特征值分解
我们要如何找出一维不变子空间呢?或者说,我们应该如何找出特征值和特征向量呢?
注意等式 \(Tu = \lambda u\)。进行简单的转换我们得到:\((\lambda I - T)u = 0\)。这说明两件事:
- 特征值 \(\lambda\) 是使得 \(\lambda I - T\) 不可逆的数。
- \(u \in \text{null} (\lambda I - T)\)。这个零空间也被称作特征值的特征空间。
第一条帮我们确定了特征值的计算方式。\(\lambda I - T\) 不可逆等价于 \(\det(\lambda I - T) = 0\),这是一个关于 \(\lambda\) 的方程。运用归纳法和拉普拉斯展开不难知道,此方程一定是 \(n\) 次的,因而必然有 \(n\) 个复根。所以,在允许复数的情况下,我们肯定能找到 \(n\) 个特征值(可能有重复)。
假设不重复的特征值有 \(m \ge 1\) 个,则原方程可以写为:
\[ \prod_{i=1}^m (\lambda - \lambda_i)^{c_i} = 0 \]
其中 \(\lambda_i\) 表示第 \(i\) 个不同的特征值,而 \(c_i\) 被称为 \(\lambda_i\) 的代数重数。
别忘了,我们是想把 \(V\) 拆分成 \(n\) 个一维不变子空间的直和。这里有几个问题:
- 我们是不是有 \(n\) 个不变子空间。换句话说,特征值有 \(n\) 个,特征向量就有 \(n\) 个吗?
- 这些子空间能够直和吗?换句话说,这些特征向量线性无关吗?
对于第一个问题,首先,由于 \(\det(\lambda_i I - T)=0\),所以 \(\lambda_i I - T\) 不可逆,则 \(\text{null }T \ne 0\),我们至少能找到一个特征向量 \(u \in \text{null }T\)。
但是,对于 \(c_i > 1\) 的特征值,我们不一定能够找出足够多线性无关的 \(u \in \text{null}(\lambda_i I - T)\)。这取决于 \(\dim \text{null}(\lambda_i I - T)\)。我们将 \(\dim \text{null}(\lambda_i I - T)\) 记作 \(\lambda_i\) 的几何重数。
换句话说,只有几何重数等于代数重数,才能为每个相同的特征值找到对应的特征向量。如果几何重数小于代数重数,很可惜,向量不够用,分解失败了。
记 \(\lambda_i\) 的几何重数是 \(k\),代数重数是 \(c\)。我们可以找到 \(k\) 个线性无关的向量 \(b_1,\dots, b_k\)。在其基础上扩充为 \(V\) 的一组基 \(b_1, \dots, b_n\)。则在这组基下,\(T\) 可以用如下矩阵表示:
\[ \mathcal{M}(T) = \begin{bmatrix} \lambda_i I_k & B_{12} \\ O & B_{22}\\ \end{bmatrix} \]
注意,更换基这个步骤本身也是一个线性变换。我们将换基这一步的矩阵记作 \(P\)。则原变换的矩阵就是 \(T = P^{-1}\mathcal{M}(T)P\)。 (这里实际混用了线性变换与标准正交基下的矩阵,而 \(\mathcal{M}(T)\) 则专门表示指定基下的矩阵)
则有:\(P(\lambda I - T)P^{-1} = \lambda_{i} I - \mathcal M(T)\)。
\[ \begin{aligned} \det (\lambda I - T) &= \det(P^{-1}(\lambda I - \mathcal M(T))P)\\ &= (\lambda - \lambda_{i})^k\det(\lambda I - B_{22}) \end{aligned} \]
这说明,\(\det (\lambda I - T) = 0\) 至少有 \(k\) 个根为 \(\lambda_{i}\)。所以几何重数小于等于代数重数。
上面的证明还说明,算子的行列式和基的选择是无关的。所以,\(\det T\) 是有意义的,无需总是写出 \(\det \mathcal M(T)\)。
我们已经解决了特征值相同的部分。不同特征值对应的特征向量一定线性无关吗?
考虑 \(Tu = \lambda_{1} u_{1},Tu_{2} = \lambda_{2} u_{2}, \lambda_{1} \neq \lambda_{2}\)。
如果 \(u,v\) 线性相关,则设 \(k_{1}u_{1}+k_{2}u_{2} = 0\),\(T(k_{1}u_{1}+k_{2}u_{2}) = k_{1}\lambda_{1}u_{1}+k_{2}\lambda_{2}u_{2}=0\)。
由第一个等式得到 \(-k_{1}u_{1}=k_{2}u_{2}\)。代入后式,得到:\(k_{1}u_{1}(\lambda_{1}-\lambda_{2})=0\)。
由于 \(u_{1},u_{2}\neq 0\),不难推出 \(k_{1}k_{2} \neq 0\)。则 \(\lambda_{1} - \lambda_{2} = 0\)。显然是矛盾的。
所以不同特征值对应的特征向量线性无关。
综合以上结论,我们得到:当每个特征值的几何重数等于代数重数时,我们能够找到足够的线性无关的特征向量,使得原空间分解为 \(n\) 个一维不变子空间的直和。
此时,所有特征向量组成了 \(V\) 的一组基。如果我们选择特征向量构成的基,则在数值上,每个维度都是简单的放缩。此时,\(\mathcal M(T)\) 变为一个对角矩阵:\(\operatorname{diag}(\lambda_{i})\)。
从矩阵的角度来说,将变换基的矩阵记作 \(P\)(在 \(F^n\) 上 \(P\) 就是特征向量构成的矩阵),则有:
\[ T = P^{-1}\Lambda P, \Lambda = \operatorname{diag}(\lambda_{i}) \]
这就是特征值分解。
算子的幂
算子的一个好处是变换前后的空间是相同的。所以一个算子可以反复作用,我们将这一过程称作算子的幂。
我们规定 \(T^0 = I,T^1 = T,T^n = T(T^{n-1})\)。当选取的基固定时,同样有 \(\mathcal M(T^n) = \mathcal M(T)^n\)。
我们立刻就发现,如果选择了特征向量作为基,算子对应的矩阵就变成了对角阵,而幂的矩阵变得异常好算:\(\mathcal M(T^n) = \mathcal M(T)^n = \operatorname{diag}(\lambda_{i}^n)\)。
这是特征值分解的一个最大作用。
看完特征值分解,我们单独考虑算子的幂。既然我们有算子的加法、数乘,现在又有了整数幂,不难想到:是不是可以有算子的多项式呢?
算子的多项式
我们不去涉足抽象代数方面关于算子多项式的确构成多项式环的证明。只是简单地遵循直觉:如果多项式 \(p(x) = \sum a_{i}x^i\),则规定 \(p(T)\) 是满足 \(p(T)u = \sum a_{i}T^iu\) 的算子。
下面,我们将见到一个有趣的结论:若线性变换 \(T\) 的特征多项式是 \(p(\lambda)\),则 \(p(T) = O\)。这被称为凯莱-哈密尔顿定理。
凯莱-哈密尔顿定理
证明这个结论有很多不同的方法。运用抽代中的一些高级结构,可以得到一个简单的证明。这里给出一个基于伴随的线性代数证明。此处的伴随指的是满足 \(AA^* = (\det A) I\) 的伴随。
下面提到的 \(T\) 都视作指定基后的矩阵。我要提前说明两点:
- \(\det (xI - T)\) 是关于 \(x\) 的 \(n\) 次多项式。
- \((xI - T)^*\) 的元素是关于 \(x\) 的至多 \(n-1\) 次多项式。我们记 \(A = xI - T,B = A^*,p(x) = \det A\),并将 \(B\) 中 \(x\) 的不同次数的系数提出,得到 \(B = \sum_{i=0}^{n-1}x^iB_{i}\)。
\[ \begin{aligned} AB &= p(x)I\\ p(x)I &= (xI - T)\sum_{i=0}^{n-1}x^iB_{i}\\ &= \sum_{i=0}^{n-1}x^{i+1}B_{i} - \sum_{i=0}^{n-1}x^iTB_{i}\\ &= x^nB_{n-1} + \sum_{i=1}^{n-1}x^i(B_{i-1} - TB_{i}) - TB_{0} \end{aligned} \]
将 \(p(x)\) 写成 \(p(x)=x^n + \sum_{i=0}^{n-1}x^{i}c_{i}\) 的形式,根据各项系数相等,我们得到:
\[ B_{n-1}=I, B_{i-1} - TB_{i} = c_{i}I, -TB_{0} = c_{0}I \]
将 \(p(x)I\) 表达式中的 \(x^i\) 换成左乘 \(T^i\) (注意此操作不是直接计算 \(P(T)\),因为上面的推导过程默认了 \(x\) 左右乘相同):
\[ T^nB_{n-1} + \sum_{i=0}^{n-1}T^i(B_{i-1}-TB_{i}) - TB_{0} = T^n + \sum_{i=0}^{n-1}c_{i}T^i = p(T) \]
右边直接变成多项式 \(p(T)\) 的形式,而左边的级数简单观察就可以发现,错项相消得到 \(O\),则 \(p(T) = O\)。
广义特征值分解
这太美丽了。因为我们知道,\(p(x)\) 可以写成 \(\prod(x - \lambda_{i})^{c_{i}}\) 的形式,则有:
\[ \prod_{i=1}^m (T - \lambda_{i} I)^{c_{i}} = O \]
这个因式分解是成立的,因为只有 \(T\) 的幂次时交换律是满足的。
从上面这一段,我们可以猜一个结论:\(V\) 被分解了,分解成 \(\text{null}(\lambda_{i}I - T)^{c_{i}}\) 的直和。
特征值分解实际是这个结论的特殊情况:特征值分解时,\(V\) 被分解成 \(\text{null}(\lambda_{i}I - T)\) 的直和。但并不是所有算子都能特征值分解。不过,凯莱-哈密尔顿定理对所有算子都成立。我们将这样的分解称为广义特征值分解。
我们仿照特征向量,引入广义特征向量,为满足 \((\lambda_{i}I - T)^{c_{i}}u=0\) 的向量。同样地,记 \(\text{null}(\lambda_{i}I - T)^{c_{i}}\) 为广义特征空间。
和特征值分解类似,我们要证明两部分:
- 广义特征空间无交。即和是直和
- 有足够多的广义特征向量,能够覆盖 \(V\)。
第一条需要我们证明:一个广义特征向量只对应一个特征值。
反证法:设 \((\lambda_{i}I - T)^{c_{i}}u = (\lambda_{j}I - T)^{c_{j}}u = 0\)。
设 \(m\) 是最小满足 \((\lambda_{i}I - T)^m u = 0\) 的正整数,则:
\[ \begin{aligned} (\lambda_{j}I -T)^n u &= 0\\ ((\lambda_{j} - \lambda_{i})I + \lambda_{i}I - T)^{n}u &= 0\\ \left(\sum_{i=0}^{n}\binom{n}{i} (\lambda_{j} - \lambda_{i})^i(\lambda_{i}I - T)^{n-i}\right)u&=0\\ (\lambda_{j} - \lambda_{i})^m (\lambda_{i}I - T)^{m-1} &= 0 \end{aligned} \]
最后一步是左右同时左乘 \((\lambda_{i}I - T)^{m-1}\) 得到的。由 \(m\) 的含义,求和式中只有常数剩下了,其他的项都包含 \((\lambda_{i}I - T)^m u=0\)。由于 \(m\) 最小,则 \((\lambda_{i}I - T)^{m-1} \neq 0\),则 \(\lambda_{i} = \lambda_{j}\),矛盾。
所以,一个广义特征向量只对应一个特征值,即不同特征值的广义特征空间无交。
第二条的证明是构造性的,同时基于数学归纳法。这个证明的同时构造了一个分解,我们称之为若当标准型(Jordan normal form)。
若当标准型
如果线性算子 \(T\) 在某个基下的矩阵表示只有主对角线和第一副对角线有值,并且副对角线上的值是 0 或 1,则称这个矩阵为 \(T\) 的若当标准型。
比如,\(\begin{bmatrix}2&1&0\\0&-1&0\\0&0&3\end{bmatrix}\) 就是一个若当标准型。
我们将证明如下结论:任何算子都可以找到一组基使其为若当标准型,并且基向量是该算子的广义特征向量。
幂零变换
我们先查看一个较弱的情况:如果 \(V\) 上算子 \(T\) 满足 \(\exists m \in \mathbb{N}, T^m = O\),我们称 \(T\) 为 \(V\) 上的幂零变换。
我们有断言:幂零变换的特征值都是 0。用反证法容易得到,如果有非零特征值,必然有至少一个特征向量,无论变换多少次都不是 0。
假设 \(m\) 是最小的使得 \(T^m = 0\) 的正整数,则存在 \(u\) 使得 \(T^{m-1}u \neq 0\)。我们有结论:\(u,Tu, \dots T^{m-1}u\) 线性无关。(设线性组合为 0 后,左右同乘 \(T^{m-1}\),得到 \(c_{1}T_{m-1}u=0\),说明 \(c_{1}\) 等于 0,同理说明所有系数为 0,则线性无关)
我们将 \(\text{span}(u, Tu, \dots, T^{m-1}u)\) 形式的空间称作 \(T\) 的循环子空间。显然,\(T\) 在循环子空间上,以 \(u, Tu, \dots, T^{m-1}u\) 为基的矩阵形式如下:
\[ \begin{bmatrix} 0 & 1 & 0 & \dots & 0 \\ 0 & 0 & 1 & \dots & 0 \\ 0 & 0 & 0 & \dots & 0 \\ \dots & \dots & \dots & \dots & \dots \\ 0 & 0 & 0 & \dots & 1 \\ 0 & 0 & 0 & 0 & 0 \end{bmatrix} \]
即仅副对角线为 1。显然是若当标准型。另外,显然有 \(m \le \dim V\),因此这些基经过 \(T^{\dim V}\) 后都是 0,则这些基都是 \(T\) 的广义特征向量。
我们需要说明 \(V\) 可以拆成许多循环子空间。这个证明困扰了我两个小时,由于篇幅原因我无法在此处展示了(但这是十分符合直觉的,不是吗?)。我能够确定正确性的两种证法如下:
- 对维数归纳,\(T\) 的特征空间显然是一维的循环子空间,归纳把 \(V\) 转移到 \(V\) 中特征空间的商空间。显然商空间所需的前置太多了。
- 对维数和 \(m\) 归纳。将 \(V\) 转移至 \(\text{range }T\),后者的维数和 \(m\) 都变小了。对 \(m\) 归纳是为了证明去除一个循环子空间之后剩下的是不变子空间,这样剩下的不变子空间就可以对维数归纳。
总之,当 \(V\) 拆成许多循环子空间之后,我们实际上找到了 \(T\) 的一个若当标准型,而且其主对角线都是 0。
任意变换
最终,我们可以说明上述结论对任意复数空间上的算子都成立。
一种“标准”的做法是证明 \(V = \text{range }(\lambda_{i}I - T)^{c_{i}} \oplus \text{null } (\lambda_{i} I - T)^{c_{i}}\)。这个证明运用了一些多项式的理论。然后对于每个特征值,\(\lambda_{i}I - T\) 在其零空间上是幂零变换,可以写成若当标准型;其值空间会被其他特征值拆成若当标准型,归纳即可证明。
但是,我们已经证明了凯莱-哈密尔顿定理。我口胡了一个基于对维度归纳的做法:
只考虑凯莱-哈密尔顿定理中的第一个特征值,我们有 \((\lambda_{1}I - T)^{c_{1}}p'(T) = O\)。这说明:
\[ \begin{aligned} \text{range }(\lambda_{1}I - T)^{c_{1}} &\subseteq \text{null }p'(T) \\ \text{rank } (\lambda_{1}I - T)^{c_{1}} &\leq n - \text{rank } p'(T) \\ n- \text{rank } (\lambda_{1}I - T)^{c_{1}} + n -\text{rank }p'(T) &\geq n \\ \dim \text{null } (\lambda_{1}I - T)^{c_{1}} + \dim \text{null } p'(T) &\geq n \end{aligned} \]
可以归纳证明 \(\text{null } (\lambda_{1}I - T)^{c_{1}}\) 与 \(\text{null } p'(T)\) 无交。这样,由大于等于号,我们知道,一定有足够的广义特征向量。也即任何算子都可以选择广义特征向量为基,写成若当标准型的形式。
从矩阵角度来说,即 \(\mathcal M(T) = P^{-1}JP\)。其中 \(J\) 是若当阵。
若当块
我们把副对角线均为 1 的若当阵叫做若当块。显然,若当标准型是若干个若当块组成的对角矩阵,记作 \(J = \text{diag}(J_{1},\dots,J_{m})\)。每一个若当块都对应了一个特征向量,若当块中的每一维都对应了一个广义特征向量。
我们最后来看两个问题:一是若当标准型下的矩阵幂次。二是如何确定若当块的大小。
幂次
显然,只要知道了若当块的幂次,就知道若当阵的幂次。
对于如下若当块:
\[ J = \begin{bmatrix} \lambda & 1 & 0 & \dots & 0 \\ 0 & \lambda & 1 & \dots & 0 \\ 0 & 0 & \lambda & \dots & 0 \\ \dots & \dots & \dots & \dots & \dots \\ 0 & 0 & 0 & \dots & 1 \\ 0 & 0 & 0 & \dots & \lambda \end{bmatrix} \]
其幂次为:
\[ J^k = \begin{bmatrix} \lambda^k & k\lambda^{k-1} & \dots & \binom{k}{n-1}\lambda^{k-n+1} \\ 0 & \lambda^k & \dots & \binom{k}{n-2}\lambda^{k-n+2} \\ \dots & \dots & \dots & \dots \\ 0 & 0 & \dots & \lambda^k \end{bmatrix} \]
遵循二项式定理的形式。特别地,\(0^{k}=1\) 当且仅当 \(k=0\),\(\binom{n}{m} = 0\) 当 \(m>n\)。
若当块的大小
假设特征值 \(\lambda\) 的代数重数是 4,几何重数是 2,则 \(\lambda\) 对应两个若当块。是 13 分还是 22 分呢?
从循环子空间的角度,我们不难发现,这取决于 \(B = \lambda I - T\) 的循环子空间维数。如果有一个 \(m\) 维的循环子空间,那么它对 \(B^k\) 的秩的贡献如下:当 \(k\leq m\) 时,\(k\) 每增加 1,循环子空间内就有一维在 \(B^k\) 作用下消失到 0,则 \(B^k\) 的秩减一;当 \(k> m\) 时,秩不再变化。
所以,如果 \(B^2\) 比 \(B\) 的秩小 1,说明有一个至少二维的循环子空间。一般地,如果 \(w_{k} = \text{rank }B^{k-1} - \text{rank }B^{k}\),则意味着有 \(w_{k}\) 个至少 \(k\) 维的循环子空间。则恰好 \(k\) 维,或者说大小恰为 \(k\) 的若当块的数量为 \(w_{k} - w_{k+1}\),即 \(\text{rank }B^{k-1} + \text{rank }B^{k+1} - 2\text{ rank }B^{k}\)。