4.3 正交迭代法 幂迭代和反迭代都只能同时计算一个特征对. 如果想同时计算多个特征对, 我们可以采用多个初始向量进行迭代. 而正交迭代算法就是基于这种思想, 它能够计算 A A A 的一个不变子空间, 从而可以同时计算出多个特征值.
算法4.4.正交迭代法(OrthogonalIteration)
1: Choose an n × p n \times p n × p column orthogonal matrix Z 0 Z_0 Z 0 2: set k = 0 k = 0 k = 0 3: while not convergence do 4: compute Y k + 1 = A Z k Y_{k + 1} = AZ_k Y k + 1 = A Z k 5: Y k + 1 = Z k + 1 R ^ k + 1 Y_{k + 1} = Z_{k + 1}\hat{R}_{k + 1} Y k + 1 = Z k + 1 R ^ k + 1 % \% % QR分解 6: k = k + 1 k = k + 1 k = k + 1 7: end while
正交迭代方法有时也称为子空间迭代方法 (subspace iteration method) 和同步迭代方法 (si-multaneous iteration method).
在算法中使用QR分解是为了保持 Z k Z_{k} Z k 的列正交性, 使得其列向量组构成子空间 span { A k Z 0 } \operatorname{span}\{A^{k}Z_{0}\} span { A k Z 0 } 的一组正交基. 一方面提高算法的数值稳定性, 另一方面避免所有列都收敛到最大特征值所对应的特征向量.
下面我们分析该算法的收敛性质. 假设 A A A 是可对角化的, 即 A = V Λ V − 1 A = V\Lambda V^{-1} A = V Λ V − 1 , 其中 Λ = d i a g ( λ 1 , λ 2 , … , λ n ) \Lambda = \mathrm{diag}(\lambda_1, \lambda_2, \ldots, \lambda_n) Λ = diag ( λ 1 , λ 2 , … , λ n ) , 且 ∣ λ 1 ∣ ≥ ⋯ ≥ ∣ λ p ∣ > ∣ λ p + 1 ∣ ≥ ⋯ ≥ ∣ λ n ∣ |\lambda_1| \geq \dots \geq |\lambda_p| > |\lambda_{p+1}| \geq \dots \geq |\lambda_n| ∣ λ 1 ∣ ≥ ⋯ ≥ ∣ λ p ∣ > ∣ λ p + 1 ∣ ≥ ⋯ ≥ ∣ λ n ∣ . 则可得
span { Z k } = span { Y k } = span { A Z k − 1 } , k = 1 , 2 , … , \operatorname {s p a n} \left\{Z _ {k} \right\} = \operatorname {s p a n} \left\{Y _ {k} \right\} = \operatorname {s p a n} \left\{A Z _ {k - 1} \right\}, \quad k = 1, 2, \dots , span { Z k } = span { Y k } = span { A Z k − 1 } , k = 1 , 2 , … , 由此可知
span { Z k } = span { A k Z 0 } = span { V Λ k V − 1 Z 0 } . \operatorname {s p a n} \{Z _ {k} \} = \operatorname {s p a n} \{A ^ {k} Z _ {0} \} = \operatorname {s p a n} \{V \Lambda^ {k} V ^ {- 1} Z _ {0} \}. span { Z k } = span { A k Z 0 } = span { V Λ k V − 1 Z 0 } . 我们注意到
Λ k V − 1 Z 0 = λ p k [ ( λ 1 / λ p ) k ⋱ 1 ⋱ ( λ n / λ p ) k ] V − 1 Z 0 ≜ λ p k [ W p ( k ) W n − p ( k ) ] . \Lambda^ {k} V ^ {- 1} Z _ {0} = \lambda_ {p} ^ {k} \left[ \begin{array}{c c c c c} (\lambda_ {1} / \lambda_ {p}) ^ {k} & & & & \\ & \ddots & & \\ & & 1 & & \\ & & & \ddots & \\ & & & & (\lambda_ {n} / \lambda_ {p}) ^ {k} \end{array} \right] V ^ {- 1} Z _ {0} \triangleq \lambda_ {p} ^ {k} \left[ \begin{array}{c} W _ {p} ^ {(k)} \\ W _ {n - p} ^ {(k)} \end{array} \right]. Λ k V − 1 Z 0 = λ p k ( λ 1 / λ p ) k ⋱ 1 ⋱ ( λ n / λ p ) k V − 1 Z 0 ≜ λ p k [ W p ( k ) W n − p ( k ) ] . 由于当 i > p i > p i > p 时有 ∣ λ i / λ p ∣ < 1 \left|\lambda_i / \lambda_p\right| < 1 ∣ λ i / λ p ∣ < 1 , 所以当 k k k 趋于无穷大时, W n − p ( k ) W_{n - p}^{(k)} W n − p ( k ) 趋向于 0. 令 V = [ V p , V n − p ] V = [V_p, V_{n - p}] V = [ V p , V n − p ] , 则
V Λ k V − 1 Z 0 = λ p k [ V p , V n − p ] [ W p ( k ) W n − p ( k ) ] = λ p k ( V p W p ( k ) + V n − p W n − p ( k ) ) . V \Lambda^ {k} V ^ {- 1} Z _ {0} = \lambda_ {p} ^ {k} [ V _ {p}, V _ {n - p} ] \left[ \begin{array}{c} W _ {p} ^ {(k)} \\ W _ {n - p} ^ {(k)} \end{array} \right] = \lambda_ {p} ^ {k} \left(V _ {p} W _ {p} ^ {(k)} + V _ {n - p} W _ {n - p} ^ {(k)}\right). V Λ k V − 1 Z 0 = λ p k [ V p , V n − p ] [ W p ( k ) W n − p ( k ) ] = λ p k ( V p W p ( k ) + V n − p W n − p ( k ) ) . 所以当 k → ∞ k\to \infty k → ∞ 时,有
span { Z k } = span { V Λ k V − 1 Z 0 } = span { V p W p ( k ) + V n − p W n − p ( k ) } → span { V p W p ( k ) } = span { V p } , \begin{array}{l} \operatorname {s p a n} \left\{Z _ {k} \right\} = \operatorname {s p a n} \left\{V \Lambda^ {k} V ^ {- 1} Z _ {0} \right\} = \operatorname {s p a n} \left\{V _ {p} W _ {p} ^ {(k)} + V _ {n - p} W _ {n - p} ^ {(k)} \right\} \\ \rightarrow \operatorname {s p a n} \left\{V _ {p} W _ {p} ^ {(k)} \right\} = \operatorname {s p a n} \left\{V _ {p} \right\}, \\ \end{array} span { Z k } = span { V Λ k V − 1 Z 0 } = span { V p W p ( k ) + V n − p W n − p ( k ) } → span { V p W p ( k ) } = span { V p } , 即 span { Z k } \operatorname{span}\{Z_k\} span { Z k } 趋向于 A A A 的一个 p p p 维不变子空间 span { V p } \operatorname{span}\{V_p\} span { V p } .
定理4.1 给定正整数 p ( 1 ≤ p ≤ n ) p (1 \leq p \leq n) p ( 1 ≤ p ≤ n ) , 考虑算法4.4. 假设 A A A 是可对角化的, 且 ∣ λ 1 ∣ ≥ ⋯ ≥ ∣ λ p ∣ > ∣ λ p + 1 ∣ ≥ ⋯ ≥ ∣ λ n ∣ |\lambda_1| \geq \dots \geq |\lambda_p| > |\lambda_{p+1}| \geq \dots \geq |\lambda_n| ∣ λ 1 ∣ ≥ ⋯ ≥ ∣ λ p ∣ > ∣ λ p + 1 ∣ ≥ ⋯ ≥ ∣ λ n ∣ . 则 span { Z k } \operatorname{span}\{Z_k\} span { Z k } 收敛到 A A A 的一个 p p p 维不变子空间.
当 A A A 不可对角化时, 利用 Jordan 标准型, 我们可以得到同样的结论, 见 [132, 133].
在正交迭代中, 如果我们取 Z 0 = I Z_{0} = I Z 0 = I , 则可得到一类特殊的正交迭代法. 此时, 在一定条件下, 正交迭代会收敛到 A A A 的 Schur 分解.