化為海森堡形式
/ HESS-en-berg /
在對矩陣施展 QR 演算法以求特徵值之前,你會先做一次性的整理,讓之後的一切便宜得多。你把矩陣壓成一種近乎三角的形狀,稱為海森堡形式(Hessenberg form):第一條次對角線以下全為零。它仍保有完整的上三角,外加主對角線下方一條額外的對角線,其餘皆為零。關鍵是這透過正交變換完成,所以(在精確算術下)特徵值被完全保留,而結構卻變得稀疏。
這個化簡使用豪斯霍爾德反射(Householder reflection),就像 QR 分解那樣,但要從兩側施加:A 變成 Q^T A Q。兩側正交變換 Q^T A Q 是一個相似變換(similarity transformation),所以不改變特徵值——這正是重點。(只從左側施加豪斯霍爾德會改變特徵值;你必須兩側夾擊。)一欄接一欄,每個反射把某一欄次對角線以下的元素歸零,而不擾動已造好的零。代價是固定的 O(n^3),只做一次。對稱矩陣的結果更妙:海森堡再加對稱,逼出「三對角」形式(只有主對角線與相鄰兩條對角線非零),處理起來極其便宜。
何必如此?因為對一個滿的 n×n 矩陣做一步 QR 要 O(n^3),但對海森堡矩陣只要 O(n^2),對三對角矩陣只要 O(n)。既然 QR 演算法需要很多步,這種每步成本的降低,正是讓「求出所有特徵值」變得負擔得起的關鍵——整體 O(n^3),而非 O(n^4) 甚至更糟。海森堡形式也被 QR 步驟保持(海森堡矩陣做一步 QR 仍是海森堡),所以你只付一次化簡的成本,卻在之後每次疊代都收割節省。它是標準稠密特徵值求解器那不起眼卻不可或缺的第一步。
一個 4x4 滿矩陣最多有 16 個非零元素。它的海森堡形式保留 4+3+2+1 = 10 個上三角元素加 3 個次對角元素——但左下角的 3 個元素(位置 (3,1),(4,1),(4,2))被歸零。若矩陣對稱,結果是三對角:只剩 4 個對角值與 3 個非對角值,7 個數就描述了整個譜。
兩側豪斯霍爾德反射把 A 壓成海森堡(對稱則三對角),且不改變特徵值。
變換必須從「兩側」施加(相似變換 Q^T A Q)才能保留特徵值;像 QR 最小平方那樣只從單側施加豪斯霍爾德會改變它們。你無法靠有限多次相似變換一路化到三角——那等於直接交出特徵值,有限演算法做不到;海森堡就是有限化簡所能到達的盡頭。