分治法计算对称三对角矩阵特征值
题目描述
给定一个 \(n \times n\) 的实对称三对角矩阵 \(T\),要求计算其全部特征值。对称三对角矩阵的形式如下:
\[T = \begin{bmatrix} a_1 & b_1 & & & \\ b_1 & a_2 & b_2 & & \\ & b_2 & \ddots & \ddots & \\ & & \ddots & a_{n-1} & b_{n-1} \\ & & & b_{n-1} & a_n \end{bmatrix} \]
分治法通过递归将矩阵分割为更小的子矩阵,合并子问题的解时利用特征值之间的 interlacing 性质(即 Cauchy 交错定理)和秩-1修正矩阵的特征值求解技巧。
解题步骤
- 问题分解
- 将矩阵 \(T\) 分割为两个对称三对角矩阵和一个秩-1修正项。例如,取分割点 \(k\)(通常为中间位置):
\[ T = \begin{bmatrix} T_1 & 0 \\ 0 & T_2 \end{bmatrix} + b_k \cdot \mathbf{v} \mathbf{v}^\top \]
其中 $T_1$ 是前 $k \times k$ 主子矩阵,$T_2$ 是后 $(n-k) \times (n-k)$ 子矩阵,向量 $\mathbf{v}$ 的第 $k$ 和 $k+1$ 分量为 1,其余为 0。
- 秩-1修正项 \(b_k \mathbf{v} \mathbf{v}^\top\) 仅在位置 \((k,k+1)\) 和 \((k+1,k)\) 有非零值,确保分割不破坏三对角结构。
- 递归求解子问题
- 递归计算 \(T_1\) 和 \(T_2\) 的特征值,得到两个递增序列:
\[ \lambda_1^{(1)} \le \lambda_2^{(1)} \le \cdots \le \lambda_k^{(1)}, \quad \lambda_1^{(2)} \le \lambda_2^{(2)} \le \cdots \le \lambda_{n-k}^{(2)} \]
- 递归基:当子矩阵为 \(1 \times 1\) 时,特征值即矩阵元素本身。
-
合并子问题的解
- 合并后的矩阵可写为 \(D + \rho \mathbf{u} \mathbf{u}^\top\),其中 \(D = \operatorname{diag}(T_1, T_2)\) 是对角矩阵(其对角线为 \(T_1\) 和 \(T_2\) 的特征值),\(\rho = b_k\),\(\mathbf{u}\) 是单位向量(第 \(k\) 和 \(k+1\) 分量非零)。
- 问题转化为求 秩-1修正对角矩阵 \(D + \rho \mathbf{u} \mathbf{u}^\top\) 的特征值。
-
求解秩-1修正特征值问题
- 特征值 \(\lambda\) 满足 secular equation:
\[ 1 + \rho \sum_{j=1}^n \frac{u_j^2}{d_j - \lambda} = 0 \]
其中 $d_j$ 是 $D$ 的对角元(即子问题的特征值),$u_j$ 是 $\mathbf{u}$ 的分量。
- 由于 \(\mathbf{u}\) 仅有两个非零分量(均为 1),方程简化为:
\[ 1 + \rho \left( \frac{1}{d_k - \lambda} + \frac{1}{d_{k+1} - \lambda} \right) = 0 \]
实际中需考虑 $d_j$ 可能有重根,需用更通用的形式。
- 数值求解 secular equation
- 特征值位于 \(D\) 的各特征值之间(交错性)。具体地,若 \(d_1 \le d_2 \le \cdots \le d_n\),则 \(D + \rho \mathbf{u} \mathbf{u}^\top\) 的特征值 \(\lambda_i\) 满足:
\[ d_1 \le \lambda_1 \le d_2 \le \lambda_2 \le \cdots \le d_n \le \lambda_n \quad (\text{若 } \rho > 0) \]
- 在每个区间 \((d_i, d_{i+1})\) 上用牛顿法或有理插值法快速求解 secular equation。
- 收敛性与复杂度
- 递归深度为 \(O(\log n)\),每层合并需 \(O(n)\) 操作(因需对 \(O(n)\) 个区间求根),总复杂度为 \(O(n \log n)\)(实际中常用更优化的实现达到 \(O(n \log^k n)\))。
关键点
- 分治法将原问题拆解为独立子问题,避免直接处理完整矩阵。
- 利用秩-1修正的特征值交错性质,将特征值定位到隔离区间,保证求根稳定性。
- 该方法尤其适合并行计算,因子问题可独立求解。