本文的閱讀等級:中級
令 為一
階矩陣。若
,
,則
稱為上 Hessenberg 矩陣,也就是說,
的主對角下標元 (subdiagonal,即
) 之下的所有元為零。若
的主對角上標元 (superdiagonal,即
) 之上的所有元為零,則稱為下 Hessenberg 矩陣。此特殊矩陣因德國工程師黑森貝格 (Karl Adolf Hessenberg) 而得名。見下例,
是上 Hessenberg 矩陣,
是下 Hessenberg 矩陣,
同時是上、下 Hessenberg 矩陣,稱為三對角 (tridiagonal) 矩陣 (見“特殊矩陣 (11):三對角矩陣”):
。
明顯地,對稱 Hessenberg 矩陣必定是三對角矩陣。下 Hessenberg 矩陣的轉置即為上 Hessenberg 矩陣,在不失一般性的原則下,以下討論限定於上 Hessenberg 矩陣。若上 Hessenberg 矩陣的所有主對角下標元皆不等於零,即 ,
,我們稱之為未約化 (unreduced) Hessenberg 矩陣,否則稱為約化 Hessenberg 矩陣。值得注意的是,約化 Hessenberg 矩陣的主對角分塊由未約化 Hessenberg 矩陣構成。上例中,若
且其他主對角下標元皆不為零,則
,
其中 和
都是未約化 Hessenberg 矩陣。下面我們介紹 Hessenberg 矩陣的一些性質,LU 分解和 QR 分解,以及一個相當有用的算法,稱為 Hessenberg 約化 (reduction):利用 Householder 變換,任一實方陣皆正交相似於一 Hessenberg 矩陣。
矩陣乘積
兩個 Hessenberg 矩陣的乘積未必是 Hessenberg 矩陣,但 Hessenberg 矩陣與三角矩陣的乘積仍為 Hessenberg 矩陣。準確地說,若 為一上 Hessenberg 矩陣,
為一上三角矩陣,則
和
都是上 Hessenberg 矩陣。
對角化
若 是未約化 Hessenberg 矩陣
的特徵值,則
的幾何重數,即
,等於
。證明於下。因為
不可逆,
。再有,
的前
個行向量包含非零的主對角下標元
,這些行向量構成一線性獨立集,因此
。合併以上結果,
。使用秩─零度定理,可得
。
如果未約化 Hessenberg 矩陣 包含相重的特徵值
,則
的幾何重數必小於代數重數,故知
是不可對角化矩陣 (見“可對角化矩陣與缺陷矩陣的判定”)。從 Jordan 形式來說,令
是未約化 Hessenberg 矩陣
的 Jordan 形式:
,
其中 是
的相異特徵值,
表示對應
的「超級」Jordan 分塊 (見“Jordan 形式大解讀 (上)”)。因為特徵值
的幾何重數等於
,故僅有一個基本 Jordan 分塊
,換句話說,
的指標 (index,即最大基本 Jordan 分塊的階數) 等於代數重數。譬如,未約化 Hessenberg 矩陣
有特徵值
,立知
的 Jordan 形式為
。
利用上述性質可推論實對稱、未約化三對角矩陣,形如
,
必有相異的特徵值,否則它是不可對角化矩陣,這與實對稱矩陣可正交對角化相矛盾 (見“實對稱矩陣可正交對角化的證明”)。
行列式
為方便說明,考慮 階上 Hessenberg 矩陣
。令
代表
的
階領先主子陣 (它們也都是 Hessenberg 矩陣)。利用餘因子公式計算行列式,針對第四行展開,可得
其中我們定義 。推廣至一般情況,
階上 Hessenberg 矩陣
的行列式可用下列遞歸表達式計算[1]:
。
運用這個行列式公式 (或其他公式),不難驗證 階 Hessenberg 矩陣
的行列式即是費布納西數列:,其中
,
,
(見“費布納西數列的表達式”)。
LU 分解
如果 Hessenberg 矩陣 可逆且所有的
階領先主子陣也都可逆,則
有唯一的 LU 分解 (見“LU 分解”):
,
其中下三角矩陣 是上 Hessenberg 矩陣,
是上三角矩陣 (主對角元
皆不為零)。乘開上式,可解出 (1)
,(2)
,(3)
。相較一般
階矩陣的 LU 分解的計算量
,Hessenberg 矩陣的計算量為
。
QR 分解
在一般情況下,Householder 變換應用於 QR 分解所耗費的運算量少於 Givens 旋轉 (見“QR 分解的數值計算方法比較”),不過也有例外發生,Hessenberg 矩陣即為其一。原因在於 Hessenberg 矩陣已經具有許多零元,我們只要消去主對角下標元即可獲得 QR 分解的上三角矩陣 。見下例,使用 Givens 旋轉 (見“Givens 旋轉於 QR 分解的應用”),可得
,
其中 代表消去
元的 Givens 旋轉矩陣,且
,
。繼續對右下
階 Hessenberg 子陣執行消去運算可將主對角下標元
悉數消滅,過程如下:
所以,。旋轉矩陣是正交矩陣 (orthogonal matrix),
,正交矩陣乘積仍是正交矩陣,因此
有 QR 分解式
。如同 LU 分解,一般
階矩陣的 QR 分解的計算量是
,Hessenberg 矩陣的計算量則為
。
Hessenberg 約化
如果方陣 相似於一三角矩陣
,即存在一可逆矩陣
使得
,則
的主對角元就是
的特徵值。現實上,尋找使矩陣三角化的變換矩陣
是一個相當困難的工作。退而求其次,下面我們介紹如何運用 Householder 變換 (見“特殊矩陣 (4):Householder 矩陣”) 求一正交矩陣
使得
為一 Hessenberg 矩陣,這裡
限定為實矩陣。
我們用 為例說明計算步驟。將
以分塊矩陣表示:
。
步驟一:消去向量 的末三元。設計主對角分塊正交矩陣
,其中
階 Householder 矩陣
使得
。注意,
滿足
,同樣地,
,因此它們是對稱正交矩陣。所以,
。
步驟二:對 階子陣
重複上述程序。設計
,其中
階 Householder 矩陣
使得
,故
。
步驟三:接著繼續對右下 階子陣重複消去程序,便告結束。給定一
階矩陣,執行
個步驟即可得上 Hessenberg 矩陣
,其中
是正交矩陣,因為
。
如果對下 Hessenberg 矩陣 重複上述約化程序,可得到一個三對角矩陣
,其中
是正交矩陣。換句話說,對於任一實方陣
,存在一正交矩陣
使得
為一三對角矩陣。
表面上,Hessenberg 矩陣似乎不具備豐富的 (理論) 性質,但它是數值線性代數中極為重要的特殊矩陣。本文解說了如何利用 Householder 變換將給定實方陣化約成一上 Hessenberg 矩陣,以及運用 Givens 旋轉快速求出 Hessenberg 矩陣的 QR 分解。因為這兩個特性,Hessenberg 矩陣遂成為今日普遍採用的一種特徵值數值計算方法──QR 迭代法──的骨幹。日後我將另文介紹這個優異的特徵值算法。
參考來源:
[1] Nathan D. Cahill, John R. E’Errico, Darren A. Narayan, and Jack Y. Narayan, Fibonacci Determinants, The College Mathematics Journal, Vol. 33, 2002, pp. 221-225.