矩陣分解是指根據一定的原理用某種算法將一個矩陣分解成若干個矩陣的乘積。常見的矩陣分解有可逆方陣的三角(LU)分解、滿秩方陣的正交三角(QR)分解、對稱正定矩陣的Cholesky分解,以及任意方陣的Schur分解、Hessenberg分解、EVD分解、任意矩陣SVD分解、GMD分解等。
(1) 可逆方陣的LU分解
矩陣的LU分解就是將一個矩陣表示為一個交換下三角矩陣和一個上三角矩陣的乘積形式。線性代數中已經證明,只要方陣A是非奇異的(即可逆的),LU分解總是可以進行的。
當L為單位下三角矩陣而U為上三角矩陣時,此三角分解稱為杜利特(Doolittle)分解。當L為下三角矩陣而U為單位上三角矩陣時,此三角分解稱為克勞特(Crout)分解。顯然,如果存在,矩陣的三角分解不是唯一的。
(PS:方陣A可唯一地分解為A=LDU(其中L,U分別為單位下,上三角矩陣,D為對角矩陣)的充分必要條件為A的前n-1個順序主子式都不為0。特別:對n階對稱正定矩陣,存在一個非奇異下三角矩陣L,使得A=LL'成立。)
MATLAB提供的lu函數用於對矩陣進行LU分解,其調用格式為:
[L,U]=lu(X):產生一個上三角陣U和一個變換形式的下三角陣L(行交換),使之滿足X=LU。注意,這里的矩陣X必須是方陣。
[L,U,P]=lu(X):產生一個上三角陣U和一個下三角陣L以及一個置換矩陣P,使之滿足PX=LU。當然矩陣X同樣必須是方陣。
(2) 滿秩方陣的QR分解
對矩陣X進行QR分解,就是把X分解為一個正交矩陣Q和一個上三角矩陣R的乘積形式。QR分解只能對方陣進行。
MATLAB的函數qr可用於對矩陣進行QR分解,其調用格式為:
[Q,R]=qr(X):產生一個一個正交矩陣Q和一個上三角矩陣R,使之滿足X=QR。
[Q,R,E]=qr(X):產生一個一個正交矩陣Q、一個上三角矩陣R以及一個置換矩陣E,使之滿足XE=QR。
(3) 對稱正定矩陣的Cholesky分解
如果矩陣X是對稱正定的,則Cholesky分解將矩陣X分解成一個下三角矩陣和上三角矩陣的乘積。設上三角矩陣為R,則下三角矩陣為其轉置,即X=R'R。MATLAB函數chol(X)用於對矩陣X進行Cholesky分解,其調用格式為:
R=chol(X):產生一個上三角陣R,使R'R=X。若X為非對稱正定,則輸出一個出錯信息。
[R,p]=chol(X):這個命令格式將不輸出出錯信息。當X為對稱正定的,則p=0,R與上述格式得到的結果相同;否則p為一個正整數。如果X為滿秩矩陣,則R為一個階數為q=p-1的上三角陣,且滿足R'R=X(1:q,1:q)。
(4) 任意方陣的Schur分解
任意一個n階方陣X可以分解為X=URU',其中U為酉矩陣,R為上三角schur矩陣且其主對角線上的元素為X的特征值。
[U,R]=schur(X)
(5) 任意方陣的Hessenberg分解
任意一個n階方陣X可以分解為X=PHP', 其中P為酉矩陣, H的第一子對角線下的元素均為0,即H為Hessenberg矩陣。
[P,H]=hess(X)
(6) 任意方陣的特征值分解EVD
任意一個n階方陣X可以分解為XV=VD,其中D為X的特征值對角陣,V為X的特征向量矩陣。
[V,D]=eig(X)
[V,D]=eig(X,Y)計算廣義特征值矩陣D和廣義特征值向量矩陣V,使得XV=YVD。
(7)任意矩陣的奇異值分解SVD
任意一個m×n維的矩陣X可以分解為X=USV',U,V均為酉矩陣,S為m×n維的對角矩陣,其對角線元素為X的從大到小排序的非負奇異值。
[U,S,V]=svd(X)
(8) 任意矩陣的幾何均值分解GMD
任意矩陣m×n維的矩陣X可以分解為X=QRP', Q,P均為酉矩陣,R為k×k維的實正線上三角矩陣,其主對角線元素均等於X的所有K個正奇異值的幾何均值,k=rank(X)。
(PS: 一個n×n的實對稱矩陣 M 是正定的當且僅當對於所有的非零實系數向量z,都有 z'Mz > 0。
對於復數的情況,定義則為:一個n × n的埃爾米特矩陣 M 是正定的當且僅當對於每個非零的復向量z,都有z×Mz > 0。其中z× 表示z的共軛轉置。由於 M是埃爾米特矩陣,經計算可知,對於任意的復向量z,z×Mz必然是實數,從而可以與0比較大小。因此這個定義是自洽的。正定方陣M的所有的特征值 λi都是正的。)
酉矩陣
n階復方陣U的n個列向量是U空間的一個標准正交基,則U是酉矩陣(Unitary Matrix)。顯然酉矩陣是正交矩陣往復數域上的推廣。一個簡單的充分必要判別准則是:方陣U的共軛轉置乘以U等於單位陣,則U是酉矩陣。即酉矩陣的逆矩陣與其共軛轉置矩陣相等。
