第 01 章 特征值、特征向量与相似
对应原书:Horn & Johnson《Matrix Analysis》第 2 版,第 1 章 Eigenvalues, Eigenvectors, and Similarity(书 p.43–82,PDF p.63–102)。
特征值是整本书、也是量化中线性代数应用的中心。主成分分析(PCA)、风险因子提取、协方差矩阵去噪、马尔可夫链的长期分布、VAR 模型的平稳性判断、有限差分格式的稳定性,归根到底都在问同一个问题:矩阵 \(A\) 在哪些方向上只做伸缩,伸缩多少倍。本章建立这套理论的基本框架:特征值存在、特征多项式、相似与对角化、左右特征向量。
学习目标
读完本章,你应当能够:
- 理解特征值问题的两个来源:同一线性变换在不同基下的表示(相似),以及二次型的约束极值(PCA)。
- 熟练使用特征多项式:迹 = 特征值之和,行列式 = 特征值之积,更一般地,\(k\) 阶主子式之和 = 特征值的第 \(k\) 个初等对称函数。
- 掌握秩一扰动与低秩矩阵的特征值计算:\(I+xy^*\)、Brauer 定理、\(AB\) 与 \(BA\) 非零特征值相同,并用于高维 PCA 和因子模型。
- 掌握可对角化的判据(\(n\) 个无关特征向量 ⇔ 非亏损),理解交换矩阵可同时对角化,并会用对角化定义矩阵函数 \(f(A)\)(如 \(\Sigma^{1/2}\))。
- 区分代数重数与几何重数,理解左特征向量与双正交原理,知道单特征值的敏感度由 \(|y^*x|\) 决定。
- 能实现幂法与收缩,用左特征向量求马尔可夫链的平稳分布。
读前导读
这一章在解决什么问题
一句话:找出矩阵"只伸缩、不转向"的方向,以及伸缩的倍数。这些方向叫特征向量,倍数叫特征值。
你其实已经见过它们。PCA 的主成分就是协方差矩阵的特征向量,主成分方差就是特征值;"第一主成分解释了 60% 的方差"就是"最大特征值占所有特征值之和的 60%"。CFA 里讲组合分散化时说"系统性风险分散不掉",用本章的话说就是协方差矩阵有一个随股票数增长的大特征值,方向接近等权组合(1.2.1 的等相关例子会精确算出来)。再比如信用评级迁移矩阵,长期各评级的占比是转移矩阵的一个"左特征向量";VAR 模型是否平稳,看系数矩阵的特征值模是否都小于 1。
本章的主线是三步:先说明特征值一定存在(借助复数);再用特征多项式算它们,并得到"迹 = 特征值之和、行列式 = 特征值之积";最后讨论什么时候能把矩阵对角化,即换到特征向量坐标系后,矩阵变成只在对角线上有数。对角化之后,\(A^{10}\)、\(\Sigma^{1/2}\)、\(e^{Qt}\) 这些矩阵函数都能逐个特征值计算。
需要先想起来的数学
1. 行列式与奇异。 \(\det B=0\) 当且仅当存在非零 \(x\) 使 \(Bx=0\)。本章的核心转换就是:\(Ax=\lambda x\) 有非零解 \(\iff(\lambda I-A)x=0\) 有非零解 \(\iff\det(\lambda I-A)=0\)。例:\(A=\begin{bmatrix}2&1\\1&2\end{bmatrix}\),\(\det(\lambda I-A)=(\lambda-2)^2-1=0\),得 \(\lambda=1,3\)。见 第 00 册第 06 章 线性代数速成。
2. 多项式的根与代数基本定理。 \(n\) 次多项式在复数范围内恰有 \(n\) 个根(重根按重数计)。实系数多项式可能没有实根,如 \(t^2+1=0\) 的根是 \(\pm i\)。根与系数的关系(韦达定理):\(t^2-st+p=(t-\lambda_1)(t-\lambda_2)\) 中 \(s=\lambda_1+\lambda_2\),\(p=\lambda_1\lambda_2\)。这就是"迹 = 特征值之和,行列式 = 特征值之积"的来源。
3. 复数与 \(A^*\)。 见第 00 章:\(\bar z\) 是共轭,\(A^*\) 是共轭转置,实矩阵时 \(A^*=A^T\)。本章的 \(y^*\) 读者都可以先当作 \(y^T\) 来理解。\(e^{i\theta}=\cos\theta+i\sin\theta\) 是模为 1 的复数,乘上它只改变"相位"不改变长度。
4. 拉格朗日乘子与梯度。 求"在约束 \(g(x)=0\) 下 \(f(x)\) 的极值",构造 \(L=f-\lambda g\),令各偏导数为零。\(\nabla_x\) 表示对向量 \(x\) 的每个分量求偏导排成的向量(梯度)。常用公式:对称 \(A\) 时 \(\nabla_x(x^TAx)=2Ax\),\(\nabla_x(x^Tx)=2x\)。见 第 00 册第 05 章 多元微积分与优化。
5. 记号。 本章的 \(\sigma(A)\) 表示谱(全部特征值的集合),不是波动率;\(\rho(A)\) 是谱半径(特征值模的最大值),不是相关系数。\(\delta_{ij}\)(Kronecker 记号)在 \(i=j\) 时为 1、否则为 0。\(\deg p\) 是多项式的次数。"首一"指最高次项系数为 1。\(\in\) 读作"属于",∎ 表示证明结束。见 第 00 册第 08 章 读懂数学证明与符号。
怎么读这一章
核心必读:1.1(两个来源,尤其 1.1.2 与 PCA 的关系)、1.2.1(定义与等相关矩阵例子)、1.3.1–1.3.2(特征多项式、迹与行列式)、1.4.2(对角化)、1.4.5(\(AB\) 与 \(BA\),高维 PCA 技巧)、1.4.6(矩阵函数)、1.5.1–1.5.2(几何重数、左特征向量与马尔可夫链)。
第一遍可以只看结论:1.2.3 的存在性证明、1.3.3 主子式之和的证明、1.3.5–1.3.7、1.4.3–1.4.4 的证明细节、1.4.7–1.4.8、1.5.3、1.5.6 的推导。1.5.4 的特征值条件数先记住结论"左右特征向量越接近正交越敏感"即可。
建议每读一个定理,就用一个 \(2\times2\) 矩阵亲手验证一次;做完量化实战 1、2 再回头看证明,会容易很多。
1.1 为什么关心特征值
原书每章的 x.0 节用例子说明本章问题的来源。第 1 章给了两个。
1.1.1 来源一:基变换与相似
第 00 章 0.10 节说明,可逆矩阵就是基变换矩阵。若线性变换 \(T\) 在基 \(\mathcal B\) 下的矩阵是 \(A\),那么 \(T\) 在所有基下的矩阵恰好构成集合
即与 \(A\) 相似(similar) 的全部矩阵。相似而不相等的矩阵只是同一个变换的不同"坐标写法",它们应当共享变换本身的内在性质。于是一个自然的问题是:能否找到一组基,使 \(T\) 的矩阵尽可能简单,比如对角阵? 若 \(S^{-1}AS=\Lambda\) 是对角阵,\(S\) 的列满足 \(As_j=\lambda_js_j\)——这就是特征值问题。
1.1.2 来源二:二次型的约束极值
对实对称矩阵 \(A\),考虑
Lagrange 函数 \(L=x^TAx-\lambda(x^Tx-1)\),一阶条件 \(\nabla_xL=2(Ax-\lambda x)=0\),即
极值点必是特征向量,且此时目标值 \(x^TAx=\lambda x^Tx=\lambda\)。所以最大值等于 \(A\) 的最大特征值(原书习题 1.0.P1–P2:单位球面紧致、\(x^TAx\) 连续,由 Weierstrass 定理最大值必取到,因此每个实对称矩阵至少有一个实特征值)。
推导拆解:梯度 \(2(Ax-\lambda x)\) 怎么来的?用 \(2\times2\) 写开。\(A=\begin{bmatrix}a&b\\b&c\end{bmatrix}\),\(x^TAx=ax_1^2+2bx_1x_2+cx_2^2\)。 对 \(x_1\) 求偏导:\(2ax_1+2bx_2\);对 \(x_2\) 求偏导:\(2bx_1+2cx_2\)。排成向量正是 \(2Ax\)。同理 \(x^Tx=x_1^2+x_2^2\) 的梯度是 \(2x\)。所以 \(\nabla_xL=2Ax-2\lambda x\),令其为零得 \(Ax=\lambda x\):拉格朗日乘子 \(\lambda\) 恰好就是特征值。 括号里的 Weierstrass 定理说的是:连续函数在"有界且包含边界"的集合(紧致集,如单位球面 \(\{x:x^Tx=1\}\))上一定能取到最大值。它保证了最大值存在,于是上面的一阶条件一定有解。 例:\(A=\begin{bmatrix}2&1\\1&2\end{bmatrix}\) 当作两只资产的协方差(方差 2、协方差 1)。\(w=[1,1]^T/\sqrt2\) 时 \(w^TAw=3\),\(w=[1,-1]^T/\sqrt2\) 时 \(w^TAw=1\),恰是两个特征值。任何单位向量的 \(w^TAw\) 都夹在 1 和 3 之间。
量化含义:把 \(A\) 换成协方差矩阵 \(\Sigma\)、\(x\) 换成组合权重 \(w\),问题 (1.0.3) 就是"在 \(\|w\|_2=1\) 约束下找方差最大的组合"——第一主成分。下一个主成分在与第一个正交的约束下再求最大值,依此类推。PCA、统计因子模型、随机矩阵理论去噪都从这里出发。商 \(\dfrac{x^TAx}{x^Tx}\) 称为 Rayleigh 商,第 04a 章会系统研究它。
1.2 特征值–特征向量方程
1.2.1 定义
定义 1.1.2:\(A\in M_n\)。若标量 \(\lambda\in\mathbf C\) 与非零向量 \(x\in\mathbf C^n\) 满足
则称 \(\lambda\) 为 \(A\) 的特征值(eigenvalue),\(x\) 为对应的特征向量(eigenvector),\((\lambda,x)\) 为特征对(eigenpair)。\(A\) 的全部特征值构成的集合称为谱(spectrum),记为 \(\sigma(A)\)。
白话解释:一般向量被 \(A\) 作用后,长度和方向都会变;特征向量是那些被 \(A\) 作用后方向不变(或正好反向)、只被拉长缩短的向量,\(\lambda\) 是伸缩倍数。\(\lambda>1\) 放大,\(0<\lambda<1\) 缩小,\(\lambda<0\) 反向,\(\lambda=0\) 压扁成零。 金融上可以把 \(A\) 想成"一期的传导机制"。例如 VAR(1) 模型 \(r_{t+1}=Ar_t+\varepsilon_{t+1}\):如果今天的冲击恰好落在特征向量 \(x\) 方向,明天它仍在 \(x\) 方向、大小乘 \(\lambda\),\(k\) 天后乘 \(\lambda^k\)。\(|\lambda|<1\) 冲击衰减,\(|\lambda|>1\) 冲击爆炸。任意冲击都可以拆成特征向量的组合,各自按自己的 \(\lambda\) 演化,这就是"看特征值判平稳"的原因。 \(\lambda\in\mathbf C\) 的意思是允许特征值为复数。复特征值对应"边转边缩放",在 VAR 中表现为振荡(见 1.4.7)。
几点要牢记:
- 特征向量永远不是零向量(否则任何 \(\lambda\) 都满足方程)。
- \(Ax=\lambda x\) 有非零解 \(\iff(\lambda I-A)x=0\) 有非零解 \(\iff\lambda I-A\) 奇异。
- 特征向量的非零倍数仍是特征向量,所以通常单位化;但即使单位化也不唯一,\(e^{i\theta}x\) 同样是单位特征向量(实数情形就是 \(\pm x\),这正是 PCA 载荷"符号不确定"的原因)。
- 对 \(Ax=\lambda x\) 取共轭得 \(\bar A\bar x=\bar\lambda\bar x\)。所以实矩阵的非实特征值成共轭对出现。
例(原书 1.1.4a):\(A=\begin{bmatrix}7&-2\\4&1\end{bmatrix}\)。\(A\begin{bmatrix}1\\2\end{bmatrix}=\begin{bmatrix}3\\6\end{bmatrix}=3\begin{bmatrix}1\\2\end{bmatrix}\),所以 \(3\in\sigma(A)\);另一个特征值是 5,特征向量 \([1,1]^T\)。
例(全 1 矩阵):\(J_n=ee^T\)。\(J_ne=ne\),所以 \(n\) 是特征值;对任何 \(x\perp e\),\(J_nx=e(e^Tx)=0\),所以 0 是特征值,对应 \(n-1\) 个无关特征向量(原书取 \(x_k=e-ne_k\))。于是
的特征值为 \(4-3=1\)(特征向量 \(e\))和 \(4-0=4\)(二重)。
量化例子:等相关矩阵。 \(n\) 只股票两两相关系数都是 \(\rho\),相关矩阵 \(C=(1-\rho)I+\rho J_n\)。由上例,\(C\) 的特征值为
\[1+(n-1)\rho\ (\text{特征向量 }e),\qquad 1-\rho\ (n-1\text{ 重}).\]最大特征值对应等权组合——"市场因子",并随股票数线性增长;其余方向的方差全都只有 \(1-\rho\)。这是"第一主成分是市场模式"的最简模型。由此还得到 \(C\) 正定的条件:\(-\dfrac1{n-1}<\rho<1\)。股票越多,允许的负相关越弱——不可能让 100 只股票两两都有 \(-0.1\) 的相关。
1.2.2 矩阵多项式与谱映射定理
对多项式 \(p(t)=a_kt^k+\cdots+a_1t+a_0\),定义 \(p(A)=a_kA^k+\cdots+a_1A+a_0I\)。由代数基本定理,首一多项式可分解为 \(p(t)=\prod(t-\alpha_j)\),相应地 \(p(A)=\prod(A-\alpha_jI)\)。
定理 1.1.6(谱映射):若 \((\lambda,x)\) 是 \(A\) 的特征对,则 \((p(\lambda),x)\) 是 \(p(A)\) 的特征对。反之,若 \(\deg p\ge1\) 且 \(\mu\) 是 \(p(A)\) 的特征值,则存在 \(\lambda\in\sigma(A)\) 使 \(\mu=p(\lambda)\)。简言之 \(\sigma(p(A))=p(\sigma(A))\)。
证明:正向由 \(A^jx=\lambda^jx\) 逐项相加。反向:\(p(A)-\mu I\) 奇异。把 \(q(t)=p(t)-\mu\) 分解为 \(\prod(t-\beta_j)\),则 \(q(A)=\prod(A-\beta_jI)\) 奇异,所以某个因子 \(A-\beta_jI\) 奇异,即 \(\beta_j\in\sigma(A)\);而 \(q(\beta_j)=0\) 说明 \(\mu=p(\beta_j)\)。∎
注意反向结论只涉及特征值,不涉及特征向量:\(A=\begin{bmatrix}0&1\\0&0\end{bmatrix}\) 满足 \(A^2=0\),所以 \(e_2\) 是 \(A^2\) 的特征向量,但 \(A\) 的特征向量只有 \(e_1\) 的倍数。
几个直接推论(含原书习题 1.1 的要点):
- \(A\) 奇异 \(\iff0\in\sigma(A)\)(观察 1.1.7)。
- \(\lambda\in\sigma(A)\iff\lambda+\mu\in\sigma(A+\mu I)\),特征向量不变(观察 1.1.8)。量化含义:协方差的岭型收缩 \(\Sigma+\varepsilon I\) 把每个特征值都加 \(\varepsilon\),主成分方向完全不变。
- \(A\) 非奇异时 \(\lambda\in\sigma(A)\iff\lambda^{-1}\in\sigma(A^{-1})\),特征向量相同(P1)。所以 \(\Sigma^{-1}\) 的最大特征值是 \(1/\lambda_{\min}(\Sigma)\):协方差最小的特征值决定了均值–方差优化中 \(\Sigma^{-1}\) 放大误差的程度。
- 行和全为 1 \(\iff Ae=e\);此时 \(p(A)\) 的行和都等于 \(p(1)\)(P2)。转移矩阵就是这样的矩阵。
- 幂等矩阵(\(A^2=A\))的特征值只能是 0 或 1;幂零矩阵的特征值全为 0;Hermitian 矩阵的特征值全为实数(P5–P7)。
- \(\begin{bmatrix}0&1\\-1&0\end{bmatrix}\)(旋转 90°)没有实特征值,复特征值为 \(\pm i\)(P9)。实矩阵未必有实特征值。
1.2.3 特征值的存在性
定理 1.1.9:每个 \(A\in M_n\) 都有特征值。更进一步,对任意非零 \(y\in\mathbf C^n\),存在次数 \(\le n-1\) 的多项式 \(g\),使 \(g(A)y\) 是 \(A\) 的特征向量。
证明(Krylov 序列):考虑 \(y,Ay,A^2y,\dots\)。\(\mathbf C^n\) 中至多 \(n\) 个向量线性无关,所以存在最小的 \(m\in\{1,\dots,n\}\) 使 \(y,Ay,\dots,A^my\) 线性相关,即有 \(a_mA^my+\cdots+a_0y=0\),且由 \(m\) 的最小性 \(a_m\ne0\)。令首一多项式 \(p(t)=t^m+(a_{m-1}/a_m)t^{m-1}+\cdots\),则 \(p(A)y=0\)。由代数基本定理 \(p\) 有零点 \(\lambda\),写 \(p(t)=(t-\lambda)g(t)\),\(\deg g=m-1\)。最小性保证 \(g(A)y\ne0\),而
所以 \(g(A)y\) 是对应 \(\lambda\) 的特征向量。∎
白话解释:这个证明的思路是"不断用 \(A\) 去乘同一个向量,迟早会出现线性相关"。\(n\) 维空间里最多放 \(n\) 个线性无关的向量,所以 \(y,Ay,\dots,A^ny\) 这 \(n+1\) 个向量必然相关,相关关系就是一个多项式 \(p\) 满足 \(p(A)y=0\)。再把 \(p\) 因式分解,剥出一个因子 \((t-\lambda)\),就逼出了特征值。 关键一步"\(p\) 有零点 \(\lambda\)"依赖代数基本定理:在复数范围内多项式一定有根。如果只允许实数,\(t^2+1\) 就没有根。所以本书默认在复数域上工作:不是因为金融里有复数收益,而是为了保证"特征值一定存在"这件事总成立,理论才能统一。对协方差这样的实对称矩阵,第 02b 章会证明特征值其实全是实数,读者用起来不会碰到复数。
证明用到了复数域的代数封闭性;这正是实矩阵可能没有实特征值的原因。在无穷维空间里结论也会失效:序列空间上的右移算子 \(S(a_1,a_2,\dots)=(0,a_1,a_2,\dots)\) 没有任何特征值(P10)。
Krylov 序列 \(y,Ay,A^2y,\dots\) 本身就是大规模特征值算法(Lanczos、Arnoldi)的出发点;下面的幂法是其中最简单的一种。
1.2.4 用伴随矩阵求特征向量
若 \(\lambda\in\sigma(A)\),则 \((A-\lambda I)\operatorname{adj}(A-\lambda I)=\det(A-\lambda I)I=0\),所以 \(\operatorname{adj}(A-\lambda I)\) 的每个非零列都是特征向量(P11)。这只在 \(\operatorname{rank}(A-\lambda I)=n-1\) 时有用(否则伴随为零,见第 00 章 0.8.1)。\(2\times2\) 情形特别方便:\(\operatorname{adj}\begin{bmatrix}a-\lambda&b\\c&d-\lambda\end{bmatrix}=\begin{bmatrix}d-\lambda&-b\\-c&a-\lambda\end{bmatrix}\)。对例 1.1.4a 取 \(\lambda=3\):\(\begin{bmatrix}-2&2\\-4&4\end{bmatrix}\),列都是 \([1,2]^T\) 的倍数。
1.3 特征多项式与代数重数
1.3.1 特征多项式
\(\lambda\in\sigma(A)\iff\det(\lambda I-A)=0\)。
定义 1.2.3:特征多项式(characteristic polynomial) \(p_A(t)=\det(tI-A)\)。(选 \(tI-A\) 而不是 \(A-tI\),是为了让它首一。)
观察 1.2.4:\(p_A\) 是 \(n\) 次首一多项式,
证明要点:按置换和展开 \(\det(tI-A)\),只有对角元之积 \((t-a_{11})\cdots(t-a_{nn})\) 能达到 \(n\) 次;其他每一项至少含一个非对角元 \(-a_{ij}\),就不含 \((t-a_{ii})\) 和 \((t-a_{jj})\),次数 \(\le n-2\)。所以 \(t^n\)、\(t^{n-1}\) 的系数只来自对角元之积,\(t^{n-1}\) 的系数为 \(-\sum a_{ii}\)。常数项 \(p_A(0)=\det(-A)=(-1)^n\det A\)。
\(2\times2\) 情形:\(p_A(t)=t^2-(\operatorname{tr}A)t+\det A\),
实矩阵的特征值为实 \(\iff r\ge0\);特别地 \(bc\ge0\)(如对称矩阵)时一定为实。
推导拆解:用例 1.1.4a 的 \(A=\begin{bmatrix}7&-2\\4&1\end{bmatrix}\) 走一遍。 第一步,写出 \(tI-A=\begin{bmatrix}t-7&2\\-4&t-1\end{bmatrix}\)。 第二步,按 \(2\times2\) 行列式 \(ad-bc\):\((t-7)(t-1)-(2)(-4)=t^2-8t+7+8=t^2-8t+15\)。对照公式:\(\operatorname{tr}A=7+1=8\),\(\det A=7\cdot1-(-2)\cdot4=15\),一致。 第三步,解二次方程:\(t^2-8t+15=(t-3)(t-5)\),特征值 3 和 5,与前面的例子吻合。 第四步,求特征向量:解 \((A-3I)x=0\),即 \(\begin{bmatrix}4&-2\\4&-2\end{bmatrix}x=0\),得 \(x=[1,2]^T\)。 判别式 \(r=(a-d)^2+4bc\):协方差矩阵 \(b=c=\sigma_{12}\),\(4bc=4\sigma_{12}^2\ge0\),所以两资产协方差矩阵的特征值一定是实数。
1.3.2 代数重数与"恰有 n 个特征值"
由代数基本定理,
特征值 \(\lambda\) 作为 \(p_A\) 零点的重数称为代数重数(algebraic multiplicity)。从此以后,"\(A\) 的特征值"一律按重数计,于是:
推导拆解:同一个多项式有两种写法,比较系数即可。 写法一(观察 1.2.4):\(p_A(t)=t^n-(\operatorname{tr}A)t^{n-1}+\cdots+(-1)^n\det A\)。 写法二(1.2.6):\(p_A(t)=(t-\lambda_1)\cdots(t-\lambda_n)\)。展开时,\(t^{n-1}\) 项来自"从 \(n-1\) 个括号里取 \(t\)、从剩下一个括号里取 \(-\lambda_i\)",所以系数是 \(-(\lambda_1+\cdots+\lambda_n)\);常数项来自"每个括号都取 \(-\lambda_i\)",等于 \((-1)^n\lambda_1\cdots\lambda_n\)。 两种写法的同次系数必须相等,于是 \(\operatorname{tr}A=\sum\lambda_i\),\(\det A=\prod\lambda_i\)。用上例核对:\(3+5=8=\operatorname{tr}A\),\(3\times5=15=\det A\)。 一个推论很实用:\(\det\Sigma=0\) 当且仅当某个特征值为 0,即存在一个方差为零的组合(冗余资产);某个特征值很小时,乘积里有一个很小的因子,\(\Sigma^{-1}\) 在对应方向上的特征值 \(1/\lambda\) 会非常大。
量化含义:协方差矩阵的迹 \(\operatorname{tr}\Sigma=\sum_i\sigma_i^2\) 是全部资产方差之和,也等于全部主成分方差之和。所以"第 \(k\) 个主成分解释的方差比例" \(\lambda_k/\sum\lambda_i=\lambda_k/\operatorname{tr}\Sigma\) 可以不做完整分解就算出分母。对相关矩阵,\(\operatorname{tr}C=n\)。
谱半径(spectral radius):\(\rho(A)=\max\{|\lambda|:\lambda\in\sigma(A)\}\)。所有特征值落在半径为 \(\rho(A)\) 的闭圆盘内。
三角矩阵:\(p_T(t)=\prod(t-t_{ii})\),特征值就是对角元。更一般地,分块上三角矩阵的特征多项式是各对角块特征多项式之积,特征值是各对角块特征值的并(含重数)。这是许多特征值算法"先化为(分块)三角,再分别处理"的依据。
1.3.3 特征多项式的系数 = 主子式之和
记 \(E_k(A)\) 为 \(A\) 的全部 \(\binom nk\) 个 \(k\) 阶主子式之和,\(S_k(\lambda_1,\dots,\lambda_n)=\sum_{i_1<\cdots<i_k}\lambda_{i_1}\cdots\lambda_{i_k}\) 为第 \(k\) 个初等对称函数(elementary symmetric function)。
定理 1.2.16:
即特征值的第 \(k\) 个初等对称函数等于 \(k\) 阶主子式之和。\(k=1\) 是"迹 = 特征值之和",\(k=n\) 是"行列式 = 特征值之积"。
证明思路:系数 \(a_k=p_A^{(k)}(0)/k!\)。由第 00 章 Jacobi 公式 \(p_A'(t)=\operatorname{tr}\operatorname{adj}(tI-A)\),而 \(\operatorname{adj}(tI-A)\) 的第 \(i\) 个对角元恰是删去第 \(i\) 行列后的特征多项式 \(p_{A_{(i)}}(t)\),所以
再求导,每个 \(n-2\) 阶主子矩阵恰好出现两次(先删 \(k\) 再删 \(\ell\),或反过来),依此类推得 \(p_A^{(k)}(0)=k!(-1)^{n-k}E_{n-k}(A)\)。另一方面把 (1.2.6) 展开,系数就是带符号的 \(S_k\)。比较即得。∎
一个推论:\(\det(I+A)=1+E_1(A)+\cdots+E_n(A)\)(P20)。\(3\times3\) 时 \(p_A(t)=t^3-(\operatorname{tr}A)t^2+(\operatorname{tr}\operatorname{adj}A)t-\det A\)(P18)。
1.3.4 秩一扰动的特征值
例 1.2.7:\(I+xy^*\) 的特征值。用第 00 章的秩一行列式公式 \(\det(B+uv^*)=\det B+v^*(\operatorname{adj}B)u\),取 \(B=(t-1)I\):
所以特征值为 \(1+y^*x\) 和 \(1\)(\(n-1\) 重),\(\det(I+xy^*)=1+y^*x\)。
定理(Brauer,例 1.2.8):设 \(Ax=\lambda x\)(\(x\ne0\)),\(A\) 的特征值为 \(\lambda,\lambda_2,\dots,\lambda_n\)。则对任意 \(y\),
只有一个特征值被移动,其余一个不动。
金融直觉:用 Brauer 定理重新得到等相关矩阵的特征值。\(C=(1-\rho)I+\rho ee^T\)。取 \(A=(1-\rho)I\),它的特征值全是 \(1-\rho\),任何向量都是特征向量,当然也包括 \(x=e\)。再取 \(y=\rho e\),则 \(A+xy^T=C\)。定理说:只有 \(e\) 方向那个特征值被移动了 \(y^Tx=\rho\,e^Te=n\rho\),变成 \(1-\rho+n\rho=1+(n-1)\rho\);其余 \(n-1\) 个仍是 \(1-\rho\)。 金融含义:在"人人特质风险相同"的底子上加一个市场因子,只有市场方向(等权组合)的风险被抬高,其余 \(n-1\) 个"多空对冲"方向(权重和为零的组合)完全感受不到市场因子。这正是市场中性组合能消除系统性风险的线性代数解释。
证明:由 \((tI-A)x=(t-\lambda)x\) 两边左乘 \(\operatorname{adj}(tI-A)\),得 \((t-\lambda)\operatorname{adj}(tI-A)x=p_A(t)x\)。由秩一行列式公式,
两边乘 \((t-\lambda)\) 并代入前式:\((t-\lambda)p_{A+xy^*}(t)=(t-\lambda)p_A(t)-y^*x\,p_A(t)=\big(t-(\lambda+y^*x)\big)p_A(t)\)。比较两边零点即得。∎
Brauer 定理是收缩(deflation) 的理论基础:已经求出特征对 \((\lambda,x)\) 后,取 \(y\) 使 \(y^*x=-\lambda\),就能把 \(\lambda\) 移到 0,而不影响其余特征值。对对称矩阵最常用的是 Hotelling 收缩 \(A-\lambda xx^T\)(\(\|x\|=1\))。
Google 矩阵(P21):设 \(Ax=\lambda x\),\(v^*x=1\),则 \(A(c)=cA+(1-c)\lambda xv^*\) 的特征值为 \(\lambda,c\lambda_2,\dots,c\lambda_n\)。PageRank 中 \(A\) 是转移矩阵、\(\lambda=1\)、\(x=e\),阻尼系数 \(c\) 把所有次要特征值压缩为 \(c\) 倍,从而保证幂法以 \(c^k\) 的速度收敛。
1.3.5 加边矩阵与箭头矩阵
加边矩阵(P13):\(A=\begin{bmatrix}B&x\\y^*&a\end{bmatrix}\) 时,
当 \(B=\lambda I_n\) 时,\(p_A(t)=(t-\lambda)^{n-1}\big(t^2-(a+\lambda)t+a\lambda-y^*x\big)\),特征值为 \(\lambda\)(\(n-1\) 重)与
这种"对角 + 一行一列"的箭头矩阵在量化里出现于:一个市场指数与 \(n\) 只特质风险相同的股票构成的联合协方差。
1.3.6 两个技术结论
定理 1.2.17:对任意 \(A\),存在 \(\delta>0\),使 \(0<|\varepsilon|<\delta\) 时 \(A+\varepsilon I\) 非奇异。(\(A+\varepsilon I\) 奇异 \(\iff-\varepsilon\in\sigma(A)\);取 \(\delta\) 为最小非零特征值的模即可。)
这是第 00 章"连续性论证"的基础:任何奇异矩阵都是非奇异矩阵 \(A+\varepsilon I\) 的极限。量化含义:\(T<N\) 时样本协方差奇异,加上 \(\varepsilon I\)(或更一般的 Ledoit–Wolf 收缩)就能求逆;\(\varepsilon\) 的大小决定了 \(\Sigma^{-1}\) 最大特征值 \(1/(\lambda_{\min}+\varepsilon)\),即优化结果对噪声的敏感程度。
定理 1.2.18:若 \(\lambda\) 的代数重数为 \(k\),则 \(\operatorname{rank}(A-\lambda I)\ge n-k\);\(k=1\) 时取等号。(证明:\(B=A-\lambda I\) 以 0 为 \(k\) 重特征值,所以 \(p_B\) 的 \(t^k\) 系数 \(\pm E_{n-k}(B)\ne0\),某个 \(n-k\) 阶主子式非零。)这是"几何重数 \(\le\) 代数重数"的一种形式,1.5 节会再见到。
1.3.7 原书习题 1.2 中值得知道的结论
- \(AB\) 与 \(BA\) 特征值相同(P17):\(C=\begin{bmatrix}0&A\\B&0\end{bmatrix}\) 满足 \(p_C(t)=p_{AB}(t^2)=p_{BA}(t^2)\)。所以 \(\operatorname{tr}AB=\operatorname{tr}BA\),\(\det(I+AB)=\det(I+BA)\)。1.4 节给出非方阵的版本。
- 特征值对扰动的敏感性(P22):把 \(n\) 阶循环移位矩阵 \(C_n\) 的 \((n,1)\) 元换成 \(\varepsilon\),特征多项式为 \(t^n-\varepsilon\),特征值的模全为 \(\varepsilon^{1/n}\)。\(n=10\)、\(\varepsilon=10^{-10}\) 时,特征值从 0 跳到模 \(0.1\):元素扰动 \(10^{-10}\),特征值变化 \(10^{-1}\)。非对称矩阵的特征值可能极其敏感。
- Abel 公式(P15):\(X'(t)=A(t)X(t)\) 时,由 Jacobi 公式 \(W(t)=\det X(t)\) 满足 \(W'=\operatorname{tr}A(t)\,W\),故 \(W(t)=W(t_0)\exp\int_{t_0}^t\operatorname{tr}A(s)ds\)。线性 ODE 的解在一点线性无关则处处无关。
- 奇数阶实矩阵至少有一个实特征值(P10):非实特征值成共轭对出现。
- P16 给出对角为 \(d_i\)、上三角全为 \(b\)、下三角全为 \(c\) 的矩阵的行列式:\(b\ne c\) 时为 \(\dfrac{bq(c)-cq(b)}{b-c}\),\(q(t)=\prod(d_i-t)\)。
1.4 相似与对角化
1.4.1 相似及其不变量
定义 1.3.1:若存在非奇异 \(S\) 使 \(B=S^{-1}AS\),称 \(B\) 与 \(A\) 相似,记 \(B\sim A\)。若 \(S\) 可取为置换矩阵 \(P\),称置换相似(只是给坐标重新编号)。相似是等价关系。
定理 1.3.3:相似矩阵的特征多项式相同。
因此相似矩阵有相同的特征值(含重数)、迹、行列式,更一般地所有主子式之和 \(E_k\) 都是相似不变量;秩也是相似不变量。零矩阵和单位阵的相似类里只有它们自己。
例 1.3.5:特征值相同是相似的必要非充分条件。\(\begin{bmatrix}0&1\\0&0\end{bmatrix}\) 与零矩阵特征值都是 \(0,0\),但不相似(零矩阵只与自己相似)。完整的相似判据(Jordan 标准形)在第 03a 章。
1.4.2 对角化
定义 1.3.6:与对角矩阵相似的矩阵称为可对角化(diagonalizable)。
定理 1.3.7:\(A\) 相似于形如
的矩阵,当且仅当 \(A\) 有 \(k\) 个线性无关的特征向量。特别地,
此时 \(S=[x^{(1)}\cdots x^{(n)}]\)(特征向量为列)使 \(S^{-1}AS=\operatorname{diag}(\lambda_1,\dots,\lambda_n)\)。
白话解释:为什么 \(S\) 的列是特征向量就能对角化?把 \(n\) 个方程 \(Ax^{(j)}=\lambda_jx^{(j)}\) 并排写成一个矩阵等式:左边是 \(A[x^{(1)}\cdots x^{(n)}]=AS\),右边是 \([\lambda_1x^{(1)}\cdots\lambda_nx^{(n)}]=S\Lambda\)(右乘对角阵 = 逐列缩放)。所以 \(AS=S\Lambda\)。\(S\) 可逆(这正需要 \(n\) 个特征向量线性无关),两边左乘 \(S^{-1}\) 就得 \(S^{-1}AS=\Lambda\),或 \(A=S\Lambda S^{-1}\)。 对角化的好处是幂次变简单:\(A^k=S\Lambda S^{-1}S\Lambda S^{-1}\cdots=S\Lambda^kS^{-1}\),中间的 \(S^{-1}S\) 全部抵消,而 \(\Lambda^k\) 只需把对角元各自 \(k\) 次方。用 \(A=\begin{bmatrix}7&-2\\4&1\end{bmatrix}\):\(S=\begin{bmatrix}1&1\\2&1\end{bmatrix}\)(列是对应 3 和 5 的特征向量),\(A^{10}=S\operatorname{diag}(3^{10},5^{10})S^{-1}\),不用真的乘十次。VAR 模型的 \(k\) 步预测 \(E[r_{t+k}]=A^kr_t\)、马尔可夫链的 \(k\) 步转移 \(P^k\) 都靠这个算。
证明:把 \(k\) 个无关特征向量排成 \(S_1\),扩充为非奇异 \(S=[S_1\ S_2]\)。由 \(AS_1=S_1\Lambda\),
因为 \(S^{-1}S_1=\begin{bmatrix}I_k\\0\end{bmatrix}\)。反之,由 \(AS=S\begin{bmatrix}\Lambda&C\\0&D\end{bmatrix}\) 的前 \(k\) 列得 \(AS_1=S_1\Lambda\)。∎
这个证明原则上就是对角化算法(求特征值、求特征向量、组成 \(S\)),但原书提醒,除了小例子,它不是实用的数值方法——实际软件用 QR 算法(第 02a 章之后)。
引理 1.3.8:对应互异特征值的特征向量线性无关。
证明:设 \(\sum_i\alpha_ix^{(i)}=0\)。令 \(B_1=(A-\lambda_2I)\cdots(A-\lambda_kI)\),则 \(B_1x^{(i)}=\prod_{j\ge2}(\lambda_i-\lambda_j)x^{(i)}\),对 \(i\ge2\) 为零,对 \(i=1\) 非零。把 \(B_1\) 作用在线性组合上得 \(\alpha_1=0\)。对每个 \(j\) 同理。∎
定理 1.3.9:\(n\) 个特征值互异 ⇒ 可对角化。这是充分不必要条件(\(I\) 有重特征值,但本身就是对角阵)。
不可对角化的典型例子:\(\begin{bmatrix}0&1\\0&0\end{bmatrix}\)。若可对角化,则相似于其特征值构成的对角阵即零矩阵,矛盾。原书 P14 给出了四种判别思路:可对角化矩阵的秩等于非零特征值个数;\(\operatorname{rank}A=\operatorname{rank}A^2\);可对角化的幂零阵只能是 0;迹为 0 的可对角化矩阵秩不可能为 1。这个矩阵四条都违反。
对角化的不唯一性(定理 1.3.27):设 \(A\) 可对角化,互异特征值 \(\mu_1,\dots,\mu_d\) 的重数为 \(n_1,\dots,n_d\),\(A=S\Lambda S^{-1}\)(\(\Lambda=\mu_1I_{n_1}\oplus\cdots\oplus\mu_dI_{n_d}\))。则 \(A=T\Lambda T^{-1}\) 当且仅当 \(T=S(R_1\oplus\cdots\oplus R_d)\),\(R_i\in M_{n_i}\) 非奇异;等价地,\(S\) 与 \(T\) 中对应同一特征值的那组列张成相同的子空间。特征值互异时,\(T\) 与 \(S\) 只差各列的非零倍数。
证明要点:\(S\Lambda S^{-1}=T\Lambda T^{-1}\iff(S^{-1}T)\Lambda=\Lambda(S^{-1}T)\),再用第 00 章结论:与 \(\Lambda\) 交换的矩阵是共形的分块对角阵。
量化含义:PCA 的不稳定。 重特征值对应的特征向量只确定到子空间,子空间内部可以任意旋转。实际数据中特征值不会恰好相等,但当 \(\lambda_k\approx\lambda_{k+1}\) 时,第 \(k\)、\(k+1\) 个主成分方向会随样本微小变化而大幅"转动"。所以:只有与相邻特征值间隔明显的主成分才值得逐个解释;间隔小的一组主成分应当作为一个子空间整体使用。
1.4.3 不变子空间与分块三角化
子空间 \(W\) 称为 \(A\)-不变(\(A\)-invariant),若 \(AW\subseteq W\)。设 \(W\) 为 \(k\) 维 \(A\)-不变子空间,取其基排成 \(S_1\),扩充成 \(S=[S_1\ S_2]\)。不变性给出 \(AS_1=S_1B\),于是
反之亦然。若 \((\lambda,\xi)\) 是 \(B\) 的特征对,则 \(A(S_1\xi)=S_1B\xi=\lambda S_1\xi\),所以任何非零不变子空间都含有特征向量。
观察 1.3.18:\(A\) 相似于 (1.3.17) 形的分块上三角阵 ⇔ \(A\) 有非平凡不变子空间。(原书此处把 \(k\) 的范围印作 \(\{2,\dots,n-1\}\),按上面的推导应为 \(1\le k\le n-1\)。)
1.4.4 交换族与同时对角化
引理 1.3.19(交换族有公共特征向量):若 \(\mathcal F\subseteq M_n\) 中任意两个矩阵交换,则存在一个非零向量是 \(\mathcal F\) 中每个矩阵的特征向量。
证明思路:取维数最小的非零 \(\mathcal F\)-不变子空间 \(W\)。任取 \(A\in\mathcal F\),\(W\) 中有 \(A\) 的特征向量,对应特征值 \(\lambda\);令 \(W_{A,\lambda}=\{x\in W:Ax=\lambda x\}\ne\{0\}\)。对 \(B\in\mathcal F\)、\(x\in W_{A,\lambda}\),\(A(Bx)=B(Ax)=\lambda Bx\),所以 \(Bx\in W_{A,\lambda}\)——\(W_{A,\lambda}\) 也是 \(\mathcal F\)-不变的。由 \(W\) 的最小性 \(W_{A,\lambda}=W\),即每个 \(A\) 在 \(W\) 上都是数乘,\(W\) 中每个非零向量都是公共特征向量。∎(实际上 \(\dim W=1\)。这是第 02a 章"交换族可同时上三角化"的出发点。)
定理 1.3.12 / 1.3.21:设 \(\mathcal F\) 中每个矩阵都可对角化。则
证明思路(两个矩阵):"⇐"显然,对角阵互相交换。"⇒":先把 \(A\) 对角化并把相同特征值排在一起,\(A=\mu_1I_{n_1}\oplus\cdots\oplus\mu_dI_{n_d}\)。由于 \(B\) 与之交换,\(B\) 必为共形分块对角 \(B_1\oplus\cdots\oplus B_d\)(第 00 章 0.9 节)。可对角化矩阵的直和块也可对角化(引理 1.3.10),取 \(T_i^{-1}B_iT_i\) 为对角,\(T=T_1\oplus\cdots\oplus T_d\)。由于 \(T_i^{-1}(\mu_iI)T_i=\mu_iI\),\(T^{-1}AT\) 仍对角,而 \(T^{-1}BT\) 也对角。一般族对 \(n\) 归纳。∎
"都可对角化"这个前提不能去掉(P5)。若 \(B\) 特征值互异,则 \(AB=BA\) 当且仅当二者可同时对角化,而且 \(A\) 一定是 \(B\) 的多项式(P4、P8)。
量化含义:两个协方差矩阵可以用同一组主成分对角化,当且仅当它们交换。例如一个协方差矩阵 \(\Sigma\) 和它的任何多项式/函数(\(\Sigma^2\)、\(\Sigma^{-1}\)、\(\Sigma+\varepsilon I\))共享特征向量;但牛市协方差与熊市协方差一般不交换,主成分方向不同——这就是"相关结构切换"。
1.4.5 \(AB\) 与 \(BA\):高维 PCA 的对偶技巧
定理 1.3.22:\(A\in M_{m,n}\),\(B\in M_{n,m}\),\(m\le n\)。则 \(BA\) 的 \(n\) 个特征值等于 \(AB\) 的 \(m\) 个特征值再加上 \(n-m\) 个 0,即
若 \(m=n\) 且 \(A\)、\(B\) 之一非奇异,则 \(AB\sim BA\)。
证明:直接验证
且左右两个矩阵互逆。所以两个分块下三角阵相似:左边特征值是 \(AB\) 的加 \(n\) 个 0,右边是 \(BA\) 的加 \(m\) 个 0。∎
推导拆解:"直接验证"展开如下(按分块乘法,块的顺序不能交换)。 先算中间与右边:\(\begin{bmatrix}AB&0\\B&0\end{bmatrix}\begin{bmatrix}I_m&A\\0&I_n\end{bmatrix}=\begin{bmatrix}AB&AB\cdot A\\B&BA\end{bmatrix}=\begin{bmatrix}AB&ABA\\B&BA\end{bmatrix}\)。 再左乘 \(\begin{bmatrix}I_m&-A\\0&I_n\end{bmatrix}\):第一块行 \(=[AB-AB,\ ABA-ABA]=[0,\ 0]\),第二块行不变 \(=[B,\ BA]\)。得 \(\begin{bmatrix}0&0\\B&BA\end{bmatrix}\)。 两侧矩阵互逆:\(\begin{bmatrix}I&-A\\0&I\end{bmatrix}\begin{bmatrix}I&A\\0&I\end{bmatrix}=\begin{bmatrix}I&A-A\\0&I\end{bmatrix}=I\)。所以两个分块三角阵相似、特征多项式相同。分块三角阵的特征值是对角块特征值的并(1.3.2 节):左边是 \(\sigma(AB)\) 加 \(0_n\) 的 \(n\) 个零,右边是 \(0_m\) 的 \(m\) 个零加 \(\sigma(BA)\)。两边各 \(m+n\) 个特征值相同,消去公共的零就得到结论。 维数直觉:\(AB\) 是 \(m\times m\),\(BA\) 是 \(n\times n\),大的那个多出来的 \(n-m\) 个特征值只能是 0,因为 \(BA\) 的秩不超过 \(m\)。
注意两者都奇异时 \(AB\) 与 \(BA\) 未必相似:\(A=\begin{bmatrix}1&0\\0&0\end{bmatrix}\)、\(B=\begin{bmatrix}0&0\\1&0\end{bmatrix}\) 给出 \(AB=0\) 而 \(BA\ne0\)(P9)。
例 1.3.23(低秩矩阵的特征值):\(A=XY^T\),\(X,Y\in M_{n,r}\),\(r<n\)。则 \(A\) 的特征值 = \(r\times r\) 矩阵 \(Y^TX\) 的特征值加 \(n-r\) 个 0。例子:
- \(J_n=ee^T\) 的特征值为 \(e^Te=n\) 与 \(n-1\) 个 0;
- \(xy^T\) 的特征值为 \(y^Tx\) 与 \(n-1\) 个 0;
- \(xy^T+zw^T=[x\ z][y\ w]^T\) 的特征值是 \(2\times2\) 矩阵 \(\begin{bmatrix}y^Tx&y^Tz\\w^Tx&w^Tz\end{bmatrix}\) 的两个特征值与 \(n-2\) 个 0。
例 1.3.25:\(A=[i+j]_{i,j=1}^n=ve^T+ev^T\)(\(v=[1,2,\dots,n]^T\))是秩 2 的 Hankel 矩阵。它的非零特征值是 \(\begin{bmatrix}e^Tv&e^Te\\v^Tv&v^Te\end{bmatrix}=\begin{bmatrix}\frac{n(n+1)}2&n\\\frac{n(n+1)(2n+1)}6&\frac{n(n+1)}2\end{bmatrix}\) 的特征值
一正一负。例如 \(n=4\) 时为 \(20.954\) 与 \(-0.954\)。类似地,斜对称 Toeplitz 矩阵 \([i-j]\) 的非零特征值为 \(\pm\dfrac{ni}2\sqrt{\dfrac{n^2-1}3}\)(例 1.3.26)。
例 1.3.24(行列式引理的另证):\(\det(A+xy^T)=\det A\det(I+A^{-1}xy^T)=\det A\,(1+y^TA^{-1}x)\),因为 \(A^{-1}xy^T\) 的特征值是 \(y^TA^{-1}x\) 与 \(n-1\) 个 0。原书 P28 的一般形式是 Sylvester 行列式定理 \(\det(I_m+AB)=\det(I_n+BA)\)。
量化应用:\(T\ll N\) 的 PCA。 设去均值收益矩阵 \(X\in\mathbf R^{T\times N}\)(\(T\) 期、\(N\) 只股票),样本协方差 \(S=\frac1{T-1}X^TX\) 是 \(N\times N\)。由定理 1.3.22,它的非零特征值与 \(T\times T\) 的 Gram 矩阵 \(G=\frac1{T-1}XX^T\) 完全相同;若 \(Gu=\lambda u\),则 \(v=X^Tu/\sqrt{(T-1)\lambda}\) 是 \(S\) 的单位特征向量。于是 4000 只股票、120 个月的 PCA 只需分解一个 \(120\times120\) 矩阵。同时这也说明 \(S\) 至少有 \(N-T+1\) 个零特征值,不能直接求逆。
因子模型:\(BFB^T\)(\(B\in\mathbf R^{N\times K}\))的非零特征值等于 \(K\times K\) 矩阵 \(FB^TB\) 的特征值,可以快速计算系统性风险的主方向与占比。
1.4.6 矩阵函数
若 \(A=S\Lambda S^{-1}\) 可对角化,定义
原书 P30 用定理 1.3.27 证明这个定义与对角化的选取无关(不同的 \(S\) 只差特征子空间内的变换,而 \(f(\Lambda)\) 在每个特征子空间上是数乘)。多项式情形 \(p(A)=Sp(\Lambda)S^{-1}\) 与直接代入一致(P3)。特别地,取 \(f=p_A\) 得 \(p_A(A)=Sp_A(\Lambda)S^{-1}=0\)——这是 Cayley–Hamilton 定理在可对角化情形的证明(P6,一般情形见第 02a 章)。可对角化矩阵都有平方根,而 \(\begin{bmatrix}0&1\\0&0\end{bmatrix}\) 没有(P7)。
量化应用:对协方差矩阵 \(\Sigma=U\Lambda U^T\)(\(U\) 正交,第 2、4 章证明对称矩阵总能这样分解):
- \(\Sigma^{1/2}=U\Lambda^{1/2}U^T\):\(z\sim N(0,I)\) 时 \(\Sigma^{1/2}z\sim N(0,\Sigma)\),用于蒙特卡洛生成相关收益;
- \(\Sigma^{-1/2}\):白化,把相关收益变成不相关的单位方差序列,马氏距离 \(\|\Sigma^{-1/2}(r-\mu)\|\);
- \(e^{Qt}\):连续时间马尔可夫链(如信用评级迁移)的转移概率矩阵,\(Q\) 为生成元。
推导拆解:手算一个 \(\Sigma^{1/2}\)。取 \(\Sigma=\begin{bmatrix}2&1\\1&2\end{bmatrix}\)。 第一步,特征分解:特征值 3(特征向量 \([1,1]^T/\sqrt2\))和 1(特征向量 \([1,-1]^T/\sqrt2\)),\(U=\frac1{\sqrt2}\begin{bmatrix}1&1\\1&-1\end{bmatrix}\),\(U^T=U^{-1}\)。 第二步,对特征值开方:\(\Lambda^{1/2}=\operatorname{diag}(\sqrt3,1)\)。 第三步,转回原坐标:\(\Sigma^{1/2}=U\Lambda^{1/2}U^T=\frac12\begin{bmatrix}\sqrt3+1&\sqrt3-1\\\sqrt3-1&\sqrt3+1\end{bmatrix}\approx\begin{bmatrix}1.366&0.366\\0.366&1.366\end{bmatrix}\)。 核对:平方后对角元 \(\frac14[(\sqrt3+1)^2+(\sqrt3-1)^2]=\frac14\cdot8=2\),非对角元 \(\frac14\cdot2(\sqrt3+1)(\sqrt3-1)=\frac14\cdot4=1\),确实还原 \(\Sigma\)。 思路是"换到特征向量坐标 → 在每个方向上对标量做 \(f\) → 换回来"。注意 \(\Sigma^{1/2}\) 不是对每个元素开平方:逐元素开方得到 \(\begin{bmatrix}1.414&1\\1&1.414\end{bmatrix}\),平方后并不等于 \(\Sigma\)。
1.4.7 实相似与 Mirsky 定理
定理 1.3.29:若两个实矩阵在 \(\mathbf C\) 上相似,则在 \(\mathbf R\) 上也相似;对实矩阵族的同时相似同样成立。
证明思路:\(A(C+iD)=(C+iD)B\),\(C,D\) 实,取实部虚部得 \(AC=CB\)、\(AD=DB\),所以 \(A(C+\tau D)=(C+\tau D)B\) 对任意实数 \(\tau\) 成立。多项式 \(\det(C+tD)\) 在 \(t=i\) 处非零,故不恒为零,只有有限个零点,必有实数 \(\tau\) 使 \(C+\tau D\) 非奇异(引理 1.3.28)。∎
实矩阵的复特征值(P33):若实矩阵 \(A\) 有特征值 \(a+ib\)(\(b>0\)),特征向量 \(u+iv\),则 \(u,v\) 线性无关,且
可以用实相似把 \(A\) 化为左上角是这个 \(2\times2\) 实块的分块三角形。这是实 Schur 形(第 02a 章)的基础。量化含义:AR(2) 或 VAR 模型的系数矩阵出现共轭复特征值 \(re^{\pm i\theta}\) 时,脉冲响应呈衰减振荡,周期约 \(2\pi/\theta\)——经济周期、价格的均值回复振荡都这样识别。
定理 1.3.31(Mirsky):\(n\ge2\),给定复数 \(\lambda_1,\dots,\lambda_n\) 与 \(d_1,\dots,d_n\),存在以 \(\lambda_i\) 为特征值、\(d_i\) 为对角元的矩阵,当且仅当 \(\sum\lambda_i=\sum d_i\)。数据为实时可取实矩阵。
即对一般矩阵,特征值与对角元之间唯一的约束是迹相等。(对 Hermitian 矩阵还有更强的"优超"约束,见第 04a 章,那时会知道协方差矩阵的对角元——各资产方差——被特征值"优超"。)证明是构造性的:用 \(L(s,t)=\begin{bmatrix}1&0\\s-t&1\end{bmatrix}\) 做相似,把上双对角阵的对角元逐个调成 \(d_i\),再归纳。
1.4.8 原书习题 1.3 中的其他结论(选读)
- 等相关矩阵(P38):\(B(t)=(1-t)I_n+tJ_n\) 的特征值为 \(1+(n-1)t\) 与 \(1-t\)(\(n-1\) 重);\(t\ne1\)、\(t\ne-\frac1{n-1}\) 时
\[B(t)^{-1}=\frac1{1-t}\Big(I_n-\frac{t}{1+(n-1)t}J_n\Big).\]常相关系数模型的协方差逆、组合优化闭式解都用这个公式。
- 分块中心对称(P19):\(\mathcal A=\begin{bmatrix}B&C\\C&B\end{bmatrix}\) 经正交矩阵 \(Q=\frac1{\sqrt2}\begin{bmatrix}I&I\\I&-I\end{bmatrix}\) 相似于 \((B+C)\oplus(B-C)\)。两组结构对称的资产(如一组股票与其对应的另一市场上市股票)的联合协方差可以这样拆成"和"与"差"两部分分别分析。P37 给出一般中心对称矩阵的类似约化。
- 复矩阵的实表示(P20):\(A=A_1+iA_2\mapsto R_1(A)=\begin{bmatrix}A_1&A_2\\-A_2&A_1\end{bmatrix}\) 保持加法、乘法、逆与相似,特征值为 \(\sigma(A)\cup\overline{\sigma(A)}\),\(A\) Hermitian ⇔ \(R_1(A)\) 实对称。可以把复 Hermitian 特征问题转成实对称问题求解。P21 是另一种实表示 \(R_2\)。
- Burnside 定理(P35):\(n\ge2\) 时,\(M_n\) 的子代数等于 \(M_n\) 当且仅当它不可约。纯理论结果。
- P22:\(A\sim B\) ⇔ 存在 \(X,Y\)(至少一个非奇异)使 \(A=XY\)、\(B=YX\)。P13:两个可对角化矩阵相似 ⇔ 特征多项式相同。P41:对角等价与互异特征值(Choi–Huang–Li–Sze 2012:每个可逆矩阵都对角等价于一个特征值互异的矩阵)。
1.5 左特征向量与几何重数
1.5.1 特征空间与几何重数
\(A\) 与 \(A^T\) 的特征多项式相同(\(\det(tI-A)^T=\det(tI-A)\)),所以特征值相同;\(A^*\) 的特征值是 \(A\) 的特征值的共轭。但特征向量可以不同:\(A=\begin{bmatrix}2&3\\0&4\end{bmatrix}\) 对应 2 的特征向量是 \([1,0]^T\),而 \(A^T\) 对应 2 的特征向量是 \([1,-3/2]^T\)(例 1.4.5)。
对应同一 \(\lambda\) 的特征向量的非零线性组合仍是特征向量。它们连同零向量构成特征空间(eigenspace) \(\operatorname{nullspace}(A-\lambda I)\)。
定义 1.4.3:\(\lambda\) 的几何重数(geometric multiplicity) 是其特征空间的维数
不加限定的"重数"指代数重数。
几何重数 \(\le\) 代数重数。原书从三个角度证明了这一点:定理 1.2.18(秩下界)、定理 1.3.7(\(k\) 个无关特征向量 ⇒ \(p_A=p_\Lambda p_D\) 中 \(\lambda\) 至少出现 \(k\) 次)、定理 1.4.10(见下文)。
分类(定义 1.4.4):
| 名称 | 含义 |
|---|---|
| 单(simple)特征值 | 代数重数 = 1(从而几何重数 = 1) |
| 半单(semisimple)特征值 | 代数重数 = 几何重数 |
| 非亏损(nondefective)矩阵 | 每个特征值都半单 |
| 亏损(defective)矩阵 | 某个特征值几何重数 < 代数重数 |
| 非减次(nonderogatory)矩阵 | 每个特征值几何重数都是 1 |
| 减次(derogatory)矩阵 | 某个特征值几何重数 ≥ 2 |
关键关系:可对角化 ⇔ 非亏损;特征值互异 ⇔ 非减次且非亏损。例:
- \(A_1=\begin{bmatrix}1&0\\0&2\end{bmatrix}\):特征值单,非亏损、非减次;
- \(A_2=I_2\):特征值 1 的代数、几何重数都是 2,非亏损但减次;
- \(A_3=\begin{bmatrix}1&1\\0&1\end{bmatrix}\):特征值 1 代数重数 2、几何重数 1,亏损但非减次。
白话解释:代数重数是"特征多项式里 \((t-\lambda)\) 出现几次",几何重数是"真正能找到几个独立的特征向量"。以 \(A_3\) 为例:\(p_{A_3}(t)=(t-1)^2\),代数重数 2;但 \(A_3-I=\begin{bmatrix}0&1\\0&0\end{bmatrix}\) 秩为 1,零空间只有 \([1,0]^T\) 一个方向,几何重数 \(2-1=1\)。特征值"该有两个方向"却只有一个,缺了一个,所以叫亏损。缺方向就凑不齐 \(n\) 个特征向量组成 \(S\),于是不能对角化。 直观上,\(A_3\) 作用在 \([x_1,x_2]^T\) 上得到 \([x_1+x_2,\,x_2]^T\),是"剪切":把第二个坐标的一部分推到第一个坐标上,只有水平方向保持不动。在动态模型里,这种矩阵的幂 \(A_3^k=\begin{bmatrix}1&k\\0&1\end{bmatrix}\) 会线性增长,而不是像对角阵那样只有 \(\lambda^k\)。第 03a 章 Jordan 形会系统处理这种情形。
不可约的上 Hessenberg 矩阵(次对角元全非零)满足 \(\operatorname{rank}(A-\lambda I)\ge n-1\),所以一定非减次(P11)——这是 QR 算法的理论保证之一。
协方差矩阵(实对称)永远是非亏损的(第 02b 章谱定理),所以亏损、减次的区分对它不重要;但对 VAR 系数矩阵、转移矩阵、有限差分矩阵这些非对称矩阵就很重要。
1.5.2 左特征向量与双正交原理
定义 1.4.6:非零向量 \(y\) 满足 \(y^*A=\lambda y^*\),称为 \(A\) 对应 \(\lambda\) 的左特征向量(left eigenvector)。原来的 \(x\) 称为右特征向量。\(y\) 是 \(A\) 的左特征向量 ⇔ \(y\) 是 \(A^*\) 对应 \(\bar\lambda\) 的右特征向量。
若 \(A=S\Lambda S^{-1}\),\(S=[x_1\cdots x_n]\),\(S^{-*}=[y_1\cdots y_n]\),则 \(x_j\) 是右特征向量,\(y_j\) 是左特征向量,且由 \(S^{-1}S=I\),
定理 1.4.7:设 \(Ax=\lambda x\),\(y^*A=\mu y^*\),\(x,y\ne0\)。
(a) 双正交原理:若 \(\lambda\ne\mu\),则 \(y^*x=0\)。
(b) 若 \(\lambda=\mu\) 且 \(y^*x\ne0\),则存在非奇异 \(S=[x\ S_1]\)(\(S^{-*}\) 的第一列为 \(y/(x^*y)\)),使
反之,若 \(A\) 相似于 (1.4.8) 形,则对应 \(\lambda\) 有一对不正交的左右特征向量。
证明:(a) \(y^*Ax\) 既等于 \(\lambda y^*x\) 又等于 \(\mu y^*x\)。(b) 规范化使 \(y^*x=1\),取 \(S_1\) 的列为 \(y^\perp\) 的一组基,可验证 \(S=[x\ S_1]\) 非奇异,且 \(S^{-*}\) 的第一列恰为 \(y\)。于是
其中用到了 \(y^*S_1=0\)、\(Z_1^*x=0\)(来自 \(S^{-1}S=I\))。∎
与 1.3 节的 Brauer 收缩对比:(1.4.8) 把 \(\lambda\) 完全分离成一个 \(1\times1\) 直和块(不只是三角化),前提是左右特征向量不正交。
观察 1.4.6a:若同一个向量 \(x\) 既是右特征向量(\(\lambda\))又是左特征向量(\(\mu\)),则 \(\lambda=\mu\)。
定理 1.4.9(特征向量在相似下的变换):\(B=S^{-1}AS\)。若 \(x\) 是 \(B\) 的右特征向量,则 \(Sx\) 是 \(A\) 的右特征向量;若 \(y\) 是 \(B\) 的左特征向量,则 \(S^{-*}y\) 是 \(A\) 的左特征向量。
量化应用:马尔可夫链的平稳分布。 设 \(P\) 是行随机的转移矩阵(\(P_{ij}\) = 从状态 \(i\) 转到 \(j\) 的概率),则 \(Pe=e\):1 是特征值,右特征向量是 \(e\)。平稳分布 \(\pi\) 满足 \(\pi^TP=\pi^T\),是 1 对应的左特征向量。两者的"分工"正是左右特征向量携带不同信息的例子:右特征向量 \(e\) 平凡,所有有用信息都在左特征向量里。分布演化 \(\pi_t^T=\pi_0^TP^t\) 收敛到 \(\pi\) 的速度由次大特征值模 \(|\lambda_2|\) 决定。市场状态切换模型(regime switching)的长期状态占比、信用评级迁移的长期分布都这么算。
推导拆解:两状态的牛熊切换。\(P=\begin{bmatrix}0.9&0.1\\0.2&0.8\end{bmatrix}\)(第 1 行:今天牛市,明天 90% 仍牛、10% 转熊)。 右特征向量:\(Pe=[0.9+0.1,\ 0.2+0.8]^T=e\),平凡。 左特征向量:设 \(\pi^T=[\pi_1,\pi_2]\),\(\pi^TP=\pi^T\) 的第一个分量是 \(0.9\pi_1+0.2\pi_2=\pi_1\),即 \(0.1\pi_1=0.2\pi_2\)。再加上 \(\pi_1+\pi_2=1\),得 \(\pi=[2/3,\,1/3]\):长期三分之二时间在牛市。 另一个特征值:迹 \(=1.7=1+\lambda_2\),所以 \(\lambda_2=0.7\)。偏离长期分布的程度每期乘 0.7,大约 \(\ln2/\ln(1/0.7)\approx2\) 期衰减一半。 为什么"左"乘?因为 \(\pi^T\) 是行向量(概率分布),\(\pi_t^TP\) 表示"今天的分布经过一步转移得到明天的分布"。行向量从左边乘矩阵,所以平稳分布是左特征向量。
1.5.3 几何重数、主子矩阵与代数重数
定理 1.4.10:设 \(k\ge1\),考虑三个命题:
(a) \(\lambda\) 的几何重数 \(\ge k\); (b) 对每个 \(m\ge n-k+1\),\(\lambda\) 是 \(A\) 的每一个 \(m\) 阶主子矩阵的特征值; (c) \(\lambda\) 的代数重数 \(\ge k\)。
则 (a) ⇒ (b) ⇒ (c)。特别地,代数重数 \(\ge\) 几何重数。
证明:(a)⇒(b):\(\operatorname{rank}(A-\lambda I)\le n-k\),所以所有阶数 \(>n-k\) 的子式为零,每个这样的主子矩阵 \(A[\alpha]-\lambda I\) 都奇异。(b)⇒(c):\(A-\lambda I\) 所有阶数 \(\ge n-k+1\) 的主子式为零,于是 \(E_j(A-\lambda I)=0\)(\(j\ge n-k+1\)),由定理 1.2.16,\(p_{A-\lambda I}(t)\) 的 \(t^0,\dots,t^{k-1}\) 系数全为零,即 0 是 \(A-\lambda I\) 的至少 \(k\) 重特征值。∎
量化含义:若一个协方差矩阵的最小特征值 \(\lambda_{\min}\) 有 \(k\) 维特征空间(\(k\) 个独立的"零风险"或"最小风险"组合方向),那么删去任意 \(k-1\) 只股票后,剩下的协方差子矩阵仍以 \(\lambda_{\min}\) 为特征值——冗余资产不是一两只股票造成的。
1.5.4 单特征值与左右特征向量的夹角
几何重数为 1 的特征值,代数重数可以大于 1(如 \(A_3\)),但原书指出这只在其左右特征向量正交时发生。
引理 1.4.11:若 \(\lambda\) 的几何重数为 1,\(Ax=\lambda x\)、\(y^*A=\lambda y^*\),则存在 \(\gamma\ne0\) 使 \(\operatorname{adj}(\lambda I-A)=\gamma xy^*\)。
(\(\operatorname{rank}(\lambda I-A)=n-1\),伴随秩为 1;由 \((\lambda I-A)\operatorname{adj}(\lambda I-A)=0\) 知其列是右特征向量,行是左特征向量的共轭转置。)
定理 1.4.12:设 \(\lambda\in\sigma(A)\),\(Ax=\lambda x\)、\(y^*A=\lambda y^*\)。
(a) 若 \(\lambda\) 是单特征值,则 \(y^*x\ne0\); (b) 若 \(\lambda\) 的几何重数为 1,则 \(\lambda\) 是单特征值 \(\iff y^*x\ne0\)。
证明:由 Jacobi 公式 \(p_A'(\lambda)=\operatorname{tr}\operatorname{adj}(\lambda I-A)=\gamma\operatorname{tr}(xy^*)=\gamma\,y^*x\)。\(\lambda\) 是单根 \(\iff p_A'(\lambda)\ne0\iff y^*x\ne0\)。∎(原书 P13 进一步给出 \(\gamma y^*x=\prod_{j\ge2}(\lambda-\lambda_j)\)。)
数值意义:特征值条件数。 对单特征值,第 06 章会证明一阶扰动公式
\[\delta\lambda\approx\frac{y^*(\delta A)x}{y^*x},\qquad|\delta\lambda|\lesssim\kappa(\lambda)\,\|\delta A\|_2,\qquad\kappa(\lambda)=\frac{\|x\|_2\|y\|_2}{|y^*x|}.\]左右特征向量越接近正交,特征值越敏感。对称矩阵 \(x=y\),\(\kappa=1\),特征值非常稳定——这是协方差 PCA 数值上可靠的原因。但 VAR 模型的系数矩阵是非对称的:交叉影响强时 \(\kappa\) 可达上百,系数的估计误差会被放大上百倍传到特征值上,从而让"最大特征值模是否小于 1"(平稳性判断)变得不可靠。
1.5.5 幂法与收缩
幂法(power method,P7):设 \(A\) 恰有一个模最大的特征值 \(\lambda_1\)(\(|\lambda_1|>|\lambda_2|\ge\cdots\))。从 \(x^{(0)}\) 出发迭代
若 \(x^{(0)}\) 不与 \(\lambda_1\) 的左特征向量正交,则 \(x^{(k)}\) 在方向意义下收敛到 \(\lambda_1\) 的特征向量,误差按 \(|\lambda_2/\lambda_1|^k\) 衰减。
为什么需要左特征向量条件:把 \(x^{(0)}\) 按右特征向量展开 \(x^{(0)}=\sum c_jx_j\),由双正交 \(c_1=y_1^*x^{(0)}/y_1^*x_1\)。只要 \(c_1\ne0\),\(A^kx^{(0)}=\sum c_j\lambda_j^kx_j\) 中第一项最终占主导。随机初值几乎必然满足该条件。
推导拆解:把"第一项占主导"写清楚。提出 \(\lambda_1^k\):
\[A^kx^{(0)}=\lambda_1^k\Big(c_1x_1+c_2\big(\tfrac{\lambda_2}{\lambda_1}\big)^kx_2+\cdots+c_n\big(\tfrac{\lambda_n}{\lambda_1}\big)^kx_n\Big).\]括号里除第一项外,每项都带着 \((\lambda_j/\lambda_1)^k\),模小于 1,随 \(k\) 增大像几何级数一样趋于 0,最慢的是 \(|\lambda_2/\lambda_1|^k\)。每步做的归一化只是去掉前面的 \(\lambda_1^k\) 防止数值溢出,不改变方向。例如协方差矩阵 \(\lambda_1=3\)、\(\lambda_2=1\) 时,每迭代一次误差缩小到 \(1/3\),20 步后约 \(3\times10^{-10}\)。若两者很接近(如 \(\lambda_2/\lambda_1=0.99\)),就要上千步,这时应改用 Lanczos 等方法。 "几乎必然"在这里的意思是:随机抽一个初值,恰好让 \(c_1=0\) 的概率为零(这样的初值只落在一个低一维的超平面上)。
收缩(P8、P9):求得 \((\lambda_1,x_1)\) 后,用一个首列为 \(x_1\) 的非奇异 \(S\) 做相似,\(S^{-1}AS=\begin{bmatrix}\lambda_1&\star\\0&B\end{bmatrix}\),\(B\) 的特征值是其余 \(n-1\) 个;对 \(B\) 重复幂法。对称矩阵用 Hotelling 收缩 \(A-\lambda_1x_1x_1^T\) 更简单(Brauer 定理的特例)。幂法与收缩至今仍用于只需前几个主成分的大规模稀疏问题。
1.5.6 三对角 Toeplitz 矩阵的谱
P16:对角元为 \(a\)、超对角元为 \(b\)、次对角元为 \(c\)(\(bc\ne0\))的 \(n\) 阶三对角 Toeplitz 矩阵可对角化,且
P17:二阶差分矩阵(\(a=2\),\(b=c=-1\))的特征值为 \(4\sin^2\dfrac{\pi\kappa}{2(n+1)}\),都在 \((0,4)\) 内。
量化应用:有限差分定价的稳定性。 用显式格式解热方程 \(u_t=Du_{xx}\)(Black–Scholes 方程经变量替换可化为此形式):\(u^{m+1}=(I-rA)u^m\),\(A\) 为上述二阶差分矩阵,\(r=D\Delta t/\Delta x^2\)。误差不放大要求 \(|1-r\lambda_\kappa|\le1\) 对所有 \(\kappa\) 成立,即 \(r\lambda_{\max}\le2\)。\(\lambda_{\max}\to4\),所以稳定条件为 \(r=D\Delta t/\Delta x^2\le\tfrac12\)。这就是显式格式时间步长必须随空间网格平方缩小的原因,也是实务偏好隐式或 Crank–Nicolson 格式的原因(见第 08 册衍生品数值方法部分)。
量化实战
实战 1:等相关矩阵、市场因子、Rayleigh 商与白化
import numpy as np
rng = np.random.default_rng(0)
# ---------- 1. 等相关矩阵的谱:市场因子 ----------
n, rho = 100, 0.3
C = (1 - rho) * np.eye(n) + rho * np.ones((n, n))
ev = np.linalg.eigvalsh(C)
print("最大特征值:", ev[-1].round(4), " 理论 1+(n-1)ρ =", 1 + (n - 1) * rho)
print("其余特征值的取值:", np.unique(ev[:-1].round(10)), " 理论 1-ρ =", 1 - rho)
# 单因子模型模拟:r_i = β_i·m + ε_i,看样本相关矩阵的第一主成分
T = 1000
beta = rng.uniform(0.8, 1.2, n)
m = rng.normal(0, 0.01, T)
eps = rng.normal(0, 0.015, (T, n))
R = m[:, None] * beta[None, :] + eps
Corr = np.corrcoef(R.T)
w, V = np.linalg.eigh(Corr) # 升序
pc1 = V[:, -1] * np.sign(V[:, -1].sum()) # 统一符号
print("\n样本相关阵前 3 大特征值:", w[::-1][:3].round(3))
print("第一主成分载荷:最小 %.4f 最大 %.4f(等权为 %.4f)"
% (pc1.min(), pc1.max(), 1 / np.sqrt(n)))
print("PC1 组合收益与市场因子的相关:", np.corrcoef(R @ pc1, m)[0, 1].round(4))
# ---------- 2. Rayleigh 商:max wᵀΣw / wᵀw = λ_max ----------
Sigma = np.cov(R.T)
lam, U = np.linalg.eigh(Sigma)
W = rng.normal(size=(n, 20000))
rq = np.einsum('ij,ij->j', W, Sigma @ W) / np.einsum('ij,ij->j', W, W)
print("\n2 万个随机方向的 Rayleigh 商最大值: %.3e" % rq.max())
print("λ_max = %.3e,在特征向量处取到: %.3e" % (lam[-1], U[:, -1] @ Sigma @ U[:, -1]))
# ---------- 3. 矩阵函数:Σ^{1/2} 与 Σ^{-1/2}(白化) ----------
def mat_func(S, f):
lam, U = np.linalg.eigh(S)
return (U * f(lam)) @ U.T # U f(Λ) Uᵀ
S_half = mat_func(Sigma, np.sqrt)
S_mhalf = mat_func(Sigma, lambda x: 1 / np.sqrt(x))
print("\n‖Σ^{1/2}Σ^{1/2} - Σ‖ =", np.abs(S_half @ S_half - Sigma).max())
Z = (R - R.mean(0)) @ S_mhalf # 白化后的收益
print("白化后样本协方差与 I 的最大偏差: %.2e" % np.abs(np.cov(Z.T) - np.eye(n)).max())
关键输出:
最大特征值: 30.7 理论 1+(n-1)ρ = 30.7
其余特征值的取值: [0.7] 理论 1-ρ = 0.7
样本相关阵前 3 大特征值: [32.141 1.157 1.15 ]
第一主成分载荷:最小 0.0779 最大 0.1153(等权为 0.1000)
PC1 组合收益与市场因子的相关: 0.9884
2 万个随机方向的 Rayleigh 商最大值: 1.590e-03
λ_max = 1.069e-02,在特征向量处取到: 1.069e-02
‖Σ^{1/2}Σ^{1/2} - Σ‖ = 1.0842021724855044e-18
白化后样本协方差与 I 的最大偏差: 5.33e-15
读法:(1) 等相关矩阵的谱与理论完全一致。(2) 单因子模拟中,第一个特征值 32.1 远大于其余(约 1.15),第一主成分载荷接近等权、与市场因子相关 0.99,这就是"PC1 = 市场"。其余特征值没有精确等于 \(1-\rho\),而是散布在 1 附近,这是样本噪声,随机矩阵理论(Marchenko–Pastur 分布)专门刻画这一散布。(3) 两万个随机方向的 Rayleigh 商最大也只有 \(\lambda_{\max}\) 的 15%:在 100 维空间里,随机方向几乎都和市场方向近似正交。高维下"碰巧"找到风险最大的方向几乎不可能,必须解特征值问题。(4) \(\Sigma^{1/2}\)、\(\Sigma^{-1/2}\) 用 \(Uf(\Lambda)U^T\) 计算,白化后协方差为单位阵。
实战 2:\(AB\) 与 \(BA\)——高维 PCA 对偶、因子模型谱、Brauer 定理
import numpy as np, time
rng = np.random.default_rng(3)
# ---------- 1. AB 与 BA:T << N 时的 PCA 对偶技巧 ----------
N, T = 4000, 120 # 4000 只股票,120 个月
X = rng.normal(0, 0.05, (T, N))
X -= X.mean(axis=0) # 去均值,X 为 T×N
t0 = time.perf_counter()
S_big = X.T @ X / (T - 1) # N×N 协方差
lam_big = np.linalg.eigvalsh(S_big)[::-1][:5]
t_big = time.perf_counter() - t0
t0 = time.perf_counter()
G = X @ X.T / (T - 1) # T×T Gram 矩阵:与 S_big 非零特征值相同
lam_small, U = np.linalg.eigh(G)
lam_small, U = lam_small[::-1], U[:, ::-1]
V = X.T @ U[:, :5] / np.sqrt((T - 1) * lam_small[:5]) # 映回 N 维并单位化
t_small = time.perf_counter() - t0
print(f"N×N 特征分解 {t_big:.2f}s;T×T 对偶 {t_small:.4f}s")
print("前 5 个特征值(N×N):", lam_big.round(5))
print("前 5 个特征值(T×T):", lam_small[:5].round(5))
print("映回的特征向量满足 Sv=λv:",
np.allclose(S_big @ V, V * lam_small[:5]), ";正交单位:", np.allclose(V.T @ V, np.eye(5)))
print("N×N 协方差的数值秩:", np.linalg.matrix_rank(S_big), "(≤ T-1 =", T - 1, ")")
# ---------- 2. 因子模型:BFBᵀ 的非零特征值 = F BᵀB 的特征值 ----------
N, K = 2000, 5
B = rng.normal(1, 0.5, (N, K))
F = np.diag([4.0, 1.0, 0.5, 0.3, 0.2]) * 1e-4
sys_big = np.linalg.eigvalsh(B @ F @ B.T)[::-1][:K]
sys_small = np.sort(np.linalg.eigvals(F @ B.T @ B).real)[::-1]
print("\nBFBᵀ 前 K 个特征值:", sys_big.round(6))
print("F BᵀB 的特征值 :", sys_small.round(6))
# ---------- 3. 秩一扰动(Brauer 定理):只移动一个特征值 ----------
A = rng.normal(size=(6, 6))
lam, Xv = np.linalg.eig(A)
x = Xv[:, 0] # A 的一个特征向量,对应 lam[0]
y = rng.normal(size=6) + 1j * rng.normal(size=6)
A2 = A + np.outer(x, y.conj()) # A + x y*
print("\n原特征值: ", np.sort_complex(lam).round(4))
print("扰动后特征值:", np.sort_complex(np.linalg.eigvals(A2)).round(4))
print("理论上被移动的那个: λ1 + y*x =", np.round(lam[0] + y.conj() @ x, 4), "(原 λ1 =", np.round(lam[0], 4), ")")
关键输出(耗时随机器不同):
N×N 特征分解 2.46s;T×T 对偶 0.0010s
前 5 个特征值(N×N): [0.1153 0.11383 0.11195 0.11187 0.11087]
前 5 个特征值(T×T): [0.1153 0.11383 0.11195 0.11187 0.11087]
映回的特征向量满足 Sv=λv: True ;正交单位: True
N×N 协方差的数值秩: 119 (≤ T-1 = 119 )
BFBᵀ 前 K 个特征值: [1.376417 0.085582 0.03321 0.016717 0.011188]
F BᵀB 的特征值 : [1.376417 0.085582 0.03321 0.016717 0.011188]
原特征值: [-2.1244+0.j -1.279 +0.j 1.3521-0.5404j 1.3521+0.5404j
1.968 -2.4455j 1.968 +2.4455j]
扰动后特征值: [-2.1244-0.j -1.279 +0.j 1.3521-0.5404j 1.3521+0.5404j
1.968 -2.4455j 2.6853+4.7708j]
理论上被移动的那个: λ1 + y*x = (2.6853+4.7708j) (原 λ1 = (1.968+2.4455j) )
读法:(1) 对偶法得到完全相同的前 5 个特征值,并通过 \(v=X^Tu/\sqrt{(T-1)\lambda}\) 恢复出 \(N\) 维单位正交特征向量,速度快三个数量级;协方差秩只有 119,有 3881 个零特征值。(2) 2000 只股票的系统性协方差 \(BFB^T\) 的谱只需分解一个 \(5\times5\) 矩阵。(3) 加上秩一矩阵 \(xy^*\)(\(x\) 是特征向量)后,6 个特征值中只有一个移动到 \(\lambda_1+y^*x\),其余五个纹丝不动(这里扰动是复的,所以原来的共轭对被拆开了一个)。
实战 3:幂法与收缩求前几个主成分
import numpy as np
rng = np.random.default_rng(11)
# 构造一个 3 因子结构的收益协方差(200 只股票)
n, T = 200, 2000
B = rng.normal(0, 1, (n, 3)) * np.array([1.0, 0.6, 0.4])
f = rng.normal(0, 0.01, (T, 3))
R = f @ B.T + rng.normal(0, 0.01, (T, n))
Sigma = np.cov(R.T)
def power_method(A, tol=1e-12, max_iter=5000, seed=0):
x = np.random.default_rng(seed).normal(size=A.shape[0])
x /= np.linalg.norm(x)
lam_old = 0.0
for k in range(max_iter):
y = A @ x
lam = x @ y # Rayleigh 商估计特征值
x = y / np.linalg.norm(y)
if abs(lam - lam_old) < tol * abs(lam):
break
lam_old = lam
return lam, x, k + 1
# 幂法 + 收缩(Hotelling deflation):A ← A - λ x xᵀ
A = Sigma.copy()
lams, vecs = [], []
for j in range(4):
lam, x, it = power_method(A, seed=j)
lams.append(lam); vecs.append(x)
print(f"第 {j+1} 个特征值 {lam:.6e},迭代 {it} 次")
A = A - lam * np.outer(x, x) # Brauer:把 λ 移到 0,其余特征值不动
ev, EV = np.linalg.eigh(Sigma)
print("numpy eigh 前 4 个:", ev[::-1][:4])
print("特征向量夹角余弦:", [float(round(abs(vecs[j] @ EV[:, -1 - j]), 6)) for j in range(4)])
gaps = ev[::-1][:5]
print("相邻特征值比 λ2/λ1, λ3/λ2, λ4/λ3, λ5/λ4:", (gaps[1:] / gaps[:-1]).round(3))
关键输出:
第 1 个特征值 2.121030e-02,迭代 15 次
第 2 个特征值 7.348497e-03,迭代 16 次
第 3 个特征值 2.625536e-03,迭代 8 次
第 4 个特征值 1.716730e-04,迭代 514 次
numpy eigh 前 4 个: [0.0212103 0.0073485 0.00262554 0.00017167]
特征向量夹角余弦: [1.0, 1.0, 1.0, 1.0]
相邻特征值比 λ2/λ1, λ3/λ2, λ4/λ3, λ5/λ4: [0.346 0.357 0.065 0.977]
读法:幂法 + 收缩依次得到前 4 个特征对,与 eigh 一致。迭代次数完全由相邻特征值之比决定:前三个因子特征值彼此间隔明显(比值约 0.35、0.07),十几次就收敛;第 4 个已经是噪声特征值,与第 5 个之比 0.977,收敛要 500 多次。这同时是一个诊断:幂法收敛很慢,说明相邻特征值几乎相等,对应的主成分方向本身就不稳定(定理 1.3.27)。这里有 3 个真实因子,第 4 个"主成分"不应被解释。
实战 4:马尔可夫状态转移、阻尼与特征值敏感性
import numpy as np
import scipy.linalg as sla
np.set_printoptions(suppress=True)
# ---------- 1. 市场状态转移矩阵:平稳分布 = 左特征向量 ----------
# 状态:0 牛市,1 震荡,2 熊市;P[i, j] = P(明天 j | 今天 i),行和为 1
P = np.array([[0.90, 0.08, 0.02],
[0.10, 0.80, 0.10],
[0.05, 0.15, 0.80]])
print("Pe = e ?", np.allclose(P @ np.ones(3), np.ones(3)))
lam, VL, VR = sla.eig(P, left=True, right=True)
i1 = np.argmin(abs(lam - 1))
pi = VL[:, i1].real; pi /= pi.sum() # 左特征向量 yᵀP = yᵀ,归一化
print("特征值:", np.sort(lam.real)[::-1].round(4))
print("平稳分布 π:", pi.round(4), " 检验 πᵀP = πᵀ:", np.allclose(pi @ P, pi))
P100 = np.linalg.matrix_power(P, 100)
print("P^100 的各行(都趋于 π):\n", P100.round(4))
# ---------- 2. "Google 化":P(c) = cP + (1-c) e vᵀ,只缩小次要特征值 ----------
v = np.ones(3) / 3 # vᵀe = 1
for c in [0.85, 0.5]:
Pc = c * P + (1 - c) * np.outer(np.ones(3), v)
print(f"c={c}: 特征值", np.sort(np.linalg.eigvals(Pc).real)[::-1].round(4),
" 理论 [1, c·λ2, c·λ3] =", np.round([1, c * np.sort(lam.real)[::-1][1], c * np.sort(lam.real)[::-1][2]], 4))
# ---------- 3. 特征值的敏感性 ----------
# (a) 非正规的极端例子:n 阶移位矩阵 (n,1) 位置放 ε,特征值模长 = ε^{1/n}
n, eps = 10, 1e-10
Cn = np.diag(np.ones(n - 1), 1); Cn[-1, 0] = eps
print(f"\nε = {eps:g} 时 C_n(ε) 的谱半径 = {max(abs(np.linalg.eigvals(Cn))):.4f},ε^(1/n) = {eps**(1/n):.4f}")
# (b) 单特征值的条件数 κ = ‖x‖‖y‖/|y*x|:VAR(1) 系数矩阵,交叉影响很强
A = np.array([[0.90, 8.0],
[0.00, 0.85]])
lam, VL, VR = sla.eig(A, left=True, right=True)
kappa = [np.linalg.norm(VR[:, i]) * np.linalg.norm(VL[:, i]) / abs(VL[:, i].conj() @ VR[:, i])
for i in range(2)]
print("VAR 系数矩阵特征值:", lam.real, " 条件数 κ:", np.round(kappa, 1))
rng = np.random.default_rng(0)
E = rng.normal(size=(2, 2)); E *= 1e-4 / np.linalg.norm(E, 2) # ‖E‖₂ = 1e-4 的估计误差
lam_pert = np.sort(np.linalg.eigvals(A + E).real)[::-1]
print("扰动后特征值:", lam_pert.round(5), " 实际移动:", np.abs(lam_pert - np.sort(lam.real)[::-1]).round(5),
" 一阶上界 κ‖E‖ ≈", np.round(np.array(kappa) * 1e-4, 5))
关键输出:
Pe = e ? True
特征值: [1. 0.8306 0.6694]
平稳分布 π: [0.4464 0.3393 0.2143] 检验 πᵀP = πᵀ: True
P^100 的各行(都趋于 π):
[[0.4464 0.3393 0.2143]
[0.4464 0.3393 0.2143]
[0.4464 0.3393 0.2143]]
c=0.85: 特征值 [1. 0.706 0.569] 理论 [1, c·λ2, c·λ3] = [1. 0.706 0.569]
c=0.5: 特征值 [1. 0.4153 0.3347] 理论 [1, c·λ2, c·λ3] = [1. 0.4153 0.3347]
ε = 1e-10 时 C_n(ε) 的谱半径 = 0.1000,ε^(1/n) = 0.1000
VAR 系数矩阵特征值: [0.9 0.85] 条件数 κ: [160. 160.]
扰动后特征值: [0.91249 0.83754] 实际移动: [0.01249 0.01246] 一阶上界 κ‖E‖ ≈ [0.016 0.016]
读法:(1) 平稳分布是转移矩阵的左特征向量:长期约 45% 时间处于牛市、34% 震荡、21% 熊市;\(P^{100}\) 的每一行都收敛到 \(\pi\)。次大特征值 0.83 决定收敛速度,半衰期约 \(\ln0.5/\ln0.83\approx3.7\) 天。(2) 与均匀分布混合后,特征值 1 不动,其余恰好乘以 \(c\)——原书 1.2.P21 的 Google 矩阵定理。(3) 移位矩阵的 \(10^{-10}\) 扰动让特征值移动 0.1。(4) 交叉系数大的 VAR(1) 矩阵,左右特征向量几乎正交,条件数 160:系数矩阵 \(10^{-4}\) 的估计误差把特征值推动了 0.0125,放大约 125 倍。如果真实特征值是 0.99,同样规模的误差就足以让估计出的模型"看起来"非平稳。
本章小结
特征值问题有两个来源:同一线性变换在不同基下的表示(相似),以及二次型的约束极值(PCA)。每个复方阵按重数计恰有 \(n\) 个特征值(特征多项式 \(p_A(t)=\det(tI-A)\) 的零点),其初等对称函数等于主子式之和,最常用的是迹 = 特征值之和、行列式 = 特征值之积。相似保持特征多项式;可对角化等价于有 \(n\) 个无关特征向量(非亏损),特征值互异是其充分条件;可对角化的矩阵族可以同时对角化当且仅当它们两两交换;对角化给出矩阵函数 \(f(A)=Sf(\Lambda)S^{-1}\)。秩一和低秩结构的特征值可以化为小矩阵计算:Brauer 定理说明秩一扰动只移动一个特征值,\(AB\) 与 \(BA\) 的非零特征值相同,这是高维 PCA 对偶技巧和因子模型谱计算的基础。左特征向量与右特征向量满足双正交原理;几何重数不超过代数重数;单特征值的左右特征向量不正交,二者夹角决定特征值对扰动的敏感度。对量化最重要的四件事是:PCA 就是 Rayleigh 商的极值问题;\(T\ll N\) 时用 \(XX^T\) 代替 \(X^TX\);马尔可夫链平稳分布是左特征向量;非对称矩阵(VAR、转移矩阵)的特征值可能很敏感,对称矩阵(协方差)则不会。
| 概念/公式 | 表达式 | 用途 |
|---|---|---|
| 特征对 | \(Ax=\lambda x\),\(x\ne0\) | |
| 特征多项式 | \(p_A(t)=\det(tI-A)=\prod(t-\lambda_i)\) | 特征值计数 |
| 迹与行列式 | \(\operatorname{tr}A=\sum\lambda_i\),\(\det A=\prod\lambda_i\) | 解释方差比例 |
| 系数与主子式 | \(S_k(\lambda)=E_k(A)\) | |
| 谱映射 | \(\sigma(p(A))=p(\sigma(A))\) | 收缩 \(\Sigma+\varepsilon I\) |
| Brauer 定理 | \(\sigma(A+xy^*)=\{\lambda+y^*x,\lambda_2,\dots,\lambda_n\}\) | 收缩、Google 矩阵 |
| \(AB\) 与 \(BA\) | \(p_{BA}(t)=t^{n-m}p_{AB}(t)\) | 高维 PCA、因子谱 |
| 低秩特征值 | \(\sigma(XY^T)\setminus\{0\}=\sigma(Y^TX)\setminus\{0\}\) | |
| 行列式恒等式 | \(\det(I_m+AB)=\det(I_n+BA)\) | |
| 可对角化 | \(\iff n\) 个无关特征向量 \(\iff\) 非亏损 | |
| 互异特征值 | ⇒ 可对角化 | |
| 同时对角化 | 可对角化族:交换 \(\iff\) 同时可对角化 | |
| 矩阵函数 | \(f(A)=Sf(\Lambda)S^{-1}\) | \(\Sigma^{1/2}\)、白化、\(e^{Qt}\) |
| 等相关矩阵 | 特征值 \(1+(n-1)\rho\)、\(1-\rho\) | 市场因子 |
| 几何重数 | \(n-\operatorname{rank}(A-\lambda I)\le\) 代数重数 | |
| 双正交 | \(\lambda\ne\mu\Rightarrow y^*x=0\) | 幂法收敛条件 |
| 特征值条件数 | \(\kappa=|x||y|/\vert y^*x\vert \) | VAR 平稳性判断的可靠性 |
| 平稳分布 | \(\pi^TP=\pi^T\)(左特征向量) | 状态切换、评级迁移 |
| 三对角 Toeplitz 谱 | \(a+2\sqrt{bc}\cos\frac{\pi\kappa}{n+1}\) | 有限差分稳定性 |
练习
基础
- 求 \(A=\begin{bmatrix}7&-2\\4&1\end{bmatrix}\) 的特征多项式、全部特征值与特征向量,并用伴随矩阵法 \(\operatorname{adj}(A-\lambda I)\) 验证特征向量。 答案要点:\(p_A(t)=t^2-8t+15\),特征值 3、5,特征向量 \([1,2]^T\)、\([1,1]^T\)。
- 证明幂等矩阵的特征值只能是 0 或 1,并说明 OLS 帽子矩阵 \(H=X(X^TX)^{-1}X^T\) 的迹等于回归元个数 \(k\)。 提示:\(\lambda x=Ax=A^2x=\lambda^2x\);\(\operatorname{tr}H=\operatorname{tr}\big((X^TX)^{-1}X^TX\big)=k\)(用 \(\operatorname{tr}AB=\operatorname{tr}BA\)),而迹 = 特征值之和 = 特征值 1 的个数。
- \(n\) 只股票两两相关系数为 \(\rho\)。(a) 求相关矩阵正定的 \(\rho\) 范围;(b) 求第一主成分解释的方差比例,并讨论 \(n\to\infty\) 时的极限。 答案要点:(a) \(-\frac1{n-1}<\rho<1\);(b) \(\frac{1+(n-1)\rho}{n}\to\rho\)。
- 设 \(A\in M_n\) 可对角化。证明 \(\operatorname{rank}A\) 等于非零特征值的个数,并举例说明不可对角化时结论可能不成立。 提示:秩是相似不变量;反例 \(\begin{bmatrix}0&1\\0&0\end{bmatrix}\)。
- 设转移矩阵 \(P=\begin{bmatrix}1-a&a\\b&1-b\end{bmatrix}\)(\(0<a,b<1\))。求其特征值与平稳分布,并说明收敛速度由什么决定。 答案要点:特征值 \(1\) 与 \(1-a-b\);\(\pi=\big(\frac b{a+b},\frac a{a+b}\big)\);收敛速度由 \(|1-a-b|\) 决定。
进阶
- 证明 Brauer 定理的一个推论(Hotelling 收缩):若 \(A\) 实对称,\((\lambda_1,x_1)\) 是特征对且 \(\|x_1\|_2=1\),则 \(A-\lambda_1x_1x_1^T\) 的特征值为 \(0,\lambda_2,\dots,\lambda_n\),且对应 \(\lambda_j\)(\(j\ge2\))的特征向量与 \(A\) 相同。 提示:特征值部分直接取 Brauer 定理中的 \(y=-\lambda_1x_1\)。特征向量部分:实对称矩阵的左、右特征向量相同,由双正交原理,不同特征值的特征向量正交;取 \(A\) 的一组标准正交特征向量 \(x_1,\dots,x_n\)(第 02b 章谱定理保证存在),则 \((A-\lambda_1x_1x_1^T)x_j=\lambda_jx_j-\lambda_1x_1(x_1^Tx_j)=\lambda_jx_j\)。
- 设 \(X\in\mathbf R^{T\times N}\),\(T<N\)。证明:若 \(u\) 是 \(XX^T\) 对应 \(\lambda>0\) 的单位特征向量,则 \(v=X^Tu/\sqrt\lambda\) 是 \(X^TX\) 对应 \(\lambda\) 的单位特征向量。
- 单因子模型 \(\Sigma=\sigma_m^2\beta\beta^T+\sigma_\varepsilon^2I\)(\(\beta\in\mathbf R^n\))。求 \(\Sigma\) 的全部特征值与特征向量,以及条件数 \(\lambda_{\max}/\lambda_{\min}\)。 答案要点:\(\sigma_m^2\|\beta\|^2+\sigma_\varepsilon^2\)(特征向量 \(\beta\))与 \(\sigma_\varepsilon^2\)(\(n-1\) 重,\(\beta^\perp\));条件数 \(1+\sigma_m^2\|\beta\|^2/\sigma_\varepsilon^2\),随股票数线性增长。
- 用定理 1.3.22 证明 \(\det(I_m+AB)=\det(I_n+BA)\),并用它把 \(\det(D+BFB^T)\)(\(D\) 对角 \(N\times N\),\(B\) 为 \(N\times K\))化为 \(K\times K\) 的行列式计算。 提示:\(\det(D+BFB^T)=\det D\cdot\det(I_N+D^{-1}BFB^T)=\det D\cdot\det(I_K+FB^TD^{-1}B)\)。
- 编程:AR(2) 过程 \(x_t=\phi_1x_{t-1}+\phi_2x_{t-2}+\varepsilon_t\) 的伴随矩阵为 \(\begin{bmatrix}\phi_1&\phi_2\\1&0\end{bmatrix}\)。取 \(\phi_1=1.2\)、\(\phi_2=-0.5\),求特征值,判断平稳性,计算振荡周期 \(2\pi/\theta\)(\(\theta\) 为特征值辐角),并模拟一条脉冲响应验证。 答案要点:\(\lambda=0.6\pm0.3742i\),\(|\lambda|\approx0.707<1\),平稳;\(\theta\approx0.5576\),周期约 11.3 期。
原书推荐习题
- 1.0.P1–P2:Rayleigh 商最大值 = 最大特征值(PCA 的理论基础)。
- 1.1.P2:行和为 1 与特征向量 \(e\)(随机矩阵);1.1.P11–P12:用伴随矩阵求特征向量。
- 1.2.P13:加边矩阵的特征多项式(箭头矩阵、单因子模型);1.2.P15:Abel 公式;1.2.P17:\(AB\) 与 \(BA\) 特征值相同;1.2.P21:Google 矩阵;1.2.P22:特征值对扰动的敏感性。
- 1.3.P3、P30:矩阵函数的定义与良定性;1.3.P8:特征值互异时交换 ⇔ 同时对角化;1.3.P14:可对角化的四种必要条件;1.3.P20:复矩阵的实表示;1.3.P33:实矩阵复特征值的 \(2\times2\) 实块;1.3.P38:等相关矩阵的谱与逆。
- 1.4.P1:秩一矩阵的特征结构;1.4.P7–P9:幂法与收缩(建议编程实现);1.4.P13:伴随矩阵与单特征值的定量关系;1.4.P16–P17:三对角 Toeplitz 矩阵的显式谱。
(原书 1.4.P14 写作 \((A-tI)\operatorname{adj}(A-tI)=p_A(t)I\);按 \(p_A(t)=\det(tI-A)\) 的约定,右边应为 \(\det(A-tI)I=(-1)^np_A(t)I\),不影响该题结论。)
原书对照
| 本章小节 | 原书小节 | 书页 | PDF 页 |
|---|---|---|---|
| 1.1 为什么关心特征值 | 1.0 Introduction | 43–44 | 63–64 |
| 1.2 特征值–特征向量方程 | 1.1 The eigenvalue–eigenvector equation(含习题 1.1) | 44–49 | 64–69 |
| 1.3 特征多项式与代数重数 | 1.2 The characteristic polynomial and algebraic multiplicity(含习题 1.2) | 49–57 | 69–77 |
| 1.4 相似与对角化 | 1.3 Similarity(正文 p.57–69,习题 1.3 约 p.69–75) | 57–75 | 77–95 |
| 1.5 左特征向量与几何重数 | 1.4 Left and right eigenvectors and geometric multiplicity(习题 1.4 约 p.80–82) | 75–82 | 95–102 |
第 1 章以后的走向:第 2 章用酉相似把任意矩阵化为上三角(Schur 定理)、证明实对称矩阵可正交对角化(谱定理)并引入 SVD;第 3 章给出相似的完全不变量 Jordan 标准形,回答本章留下的"如何判断两个矩阵相似""不求特征向量如何判断可对角化"两个问题。