1. 程式人生 > >求解矩陣特征值

求解矩陣特征值

gin 同時 eps n) 位移 標準 mat arr left

特征值的條件數

Weilandt-Hoffman定理:設A與B是兩個n階正規矩陣,它們的特征值分別是li和mj,則存在一個排列p(n),使得

$\sqrt {\sum_i \left | \pi(i)-\lambda_i \right |^2}\leqslant \left \| B-A \right \|_F$

Weilandt-Hoffman定理表明Hermite矩陣和正規矩陣的特征值是良態的,因此在此主要討論非正規矩陣對擾動的敏感程度的數據標準。

假定n階方陣A的Jordan分解為Q-1AQ=J,p是J中最大塊階數,利用廣義Bauer-Fike定理可證:

$\forall E\in C^{N\times N}\left \| QEQ^{-1} \right \|_2\leqslant 2^{1-p}\Rightarrow $

$\forall \mu\in(A+E)\exists \lambda\in \lambda(A) \left | \mu-\lambda \right |\leqslant 2^{1-\frac{1}{p}}(\left \| Q \right \|_2\left \| Q^{-1} \right \|_2)^{\frac{1}{p}}(\left \| E \right \|_2)^{\frac{1}{p}}$

因此稱v(A)為A的譜條件數,其中

$\nu(A)\leqslant \inf_{Q \in D_A} \left \| Q \right \|_2\left \| Q^{-1} \right \|_2, D_A=\left \{ Q \in C^{n \times n}\right | Q^{-1}AQ=J \}$

v(A)是對全部特征值整體而言的,實際還需要針對每個特征值的條件數。

設$\lambda$是矩陣A的單特征值,x和y是A屬於$\lambda$的右,左特征向量,稱$s(\lambda)=|y^Tx|$是$\lambda$ 的條件數。存在解析函數$\lambda(\varepsilon)$是$A+\varepsilon E$的單特征值,有

$\left | \lambda(\varepsilon )-\lambda\right |=\left \| \lambda‘(0)+O(\varepsilon)^2 \right \| \leqslant \frac{\left |\varepsilon\right |}{s(\lambda)}+O(\varepsilon)^2$

不變子空間的條件數

對於特征向量的敏感性問題,利用函數論的某些結果,可以得到

$(A+\varepsilon E)x_i(\varepsilon )=\lambda_i(\varepsilon )x_i(\varepsilon )$

$x_i(\varepsilon )=x_i+\varepsilon \sum_{j\neq i}\frac{y_j^TEx_i}{(\lambda_i-\lambda_j)s(\lambda_j)}x_j+O(\varepsilon )^2$

可以看出,當特征值分離不明顯時,特征向量對擾動會十分敏感。但是如果把敏感的特征向量放在一起形成A的不變子空間,則可以是不敏感的。因此可以定義不變子空間的條件數,一般采用分離度的倒數。

$sep(B,C)=\inf_{\left \| P \right \|_2=1}\left \| PB-CP \right \|_2\,where\, B\in C^{l \times l},C\in C^{m \times m},P\in C^{m \times l}$

QR算法

QR算法是數值計算的重大進展之一,其基本叠代格式如下,

$Q_mR_m\Leftarrow A_{m-1},A_m \Leftarrow R_mQ_m$

為了理解這個算法,需要從特征值的乘冪法推廣到正交叠代法。

$y_k\Leftarrow Au_{k-1},u_k\Leftarrow \frac{y_k}{\left \| y_k \right \|}$

乘冪法的幾何意義是子空間的叠代過程,一般形式為:

$Z_k\Leftarrow AQ_{k-1},Q_kR_k\Leftarrow Z_k$

從此可以導出QR叠代算法。由於復共軛特征值的存在,設計一個實數域算法需要特別地改進這個格式,使得矩陣A逼近其實Schur標準形。

為了節省運算量,需要把矩陣A轉換成上Hessenberg形式,然後采用Givens變換來QR分解。同時為了提高收斂速度,對特征值進行位移。

$H_1\Leftarrow Q_0^TAQ_0,Q_kR_k\Leftarrow H_k-\mu I,H_{k+1}\Leftarrow R_kQ_k+\mu I$

位移$\mu$的選取應該靠近特征值,例如Wilkinson位移,即利用矩陣右下角的二階子矩陣來計算特征值。

$\mu=\alpha_n+\delta-sign\,\delta\sqrt{\delta^2+\beta^2},\delta=\frac{\alpha_{n-1}-\alpha_n}{2}$,子矩陣為$\begin{bmatrix} \alpha_{n-1} & \beta_{n-1} \\ \beta_{n-1} & \alpha_n \end{bmatrix}$

為了避免對於復特征值引入復運算,需要進行雙重步位移,確保得到實數矩陣H。實際算法中為了節省運算,只根據M的第一列來確定作用在矩陣H上的正交變換。

$M\Leftarrow H^2-sH+tI,QR\Leftarrow M,H_2\Leftarrow Q^THQ\, where\, s=\mu_1+\mu_2,t=\mu_1\mu_2$

對稱矩陣只有實特征值,因此只需要一步位移,而且其上Hessenberg矩陣為三對角形式,利用這一點可以進一步減少運算量。然而需要註意在叠代過程中保證矩陣的對稱性,確保特征值保持為實數。

$H=I-\beta\nu\nu^T,HAH=A-\nu\omega^T-\omega\nu^T,\omega=u-\frac{1}{2}\beta(\nu u)\mu, u=\beta A \nu$

奇異值分解可從實對稱矩陣ATA的Schur分解算法導出。然而計算實對稱矩陣ATA容易引入比較大的誤差,因此隱含矩陣ATA的Schur分解算法成為奇異值分解的穩定、有效的標準算法。對應於實對稱矩陣的QR算法,三對角陣ATA隱含表示為二對角陣的乘積,帶Wilkinson位移的對稱QR算法也隱含表示為在二對角陣上的Givens變換。

二對角化:$U_1^TAV_1=\begin{bmatrix} B \\ 0 \end{bmatrix}$

計算特征向量是求解特征值的附加問題,雖然可以在QR叠代中同時計算特征向量,但是利用反冪法更穩定、更有效,其基本叠代格式如下。

$(A-\mu I)\nu_k=z_{k-1}, z_k=\frac{\nu_k}{\left \| \nu_k \right \|_2}$

求解矩陣特征值