矩陣分解大全

矩陣分解是指根據必定的原理用某種算法將一個矩陣分解成若干個矩陣的乘積。常見的矩陣分解有可逆方陣的三角(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'成立。)it

 

MATLAB提供的lu函數用於對矩陣進行LU分解,其調用格式爲:原理

[L,U]=lu(X):產生一個上三角陣U和一個變換形式的下三角陣L(行交換),使之知足X=LU。注意,這裏的矩陣X必須是方陣。sse

[L,U,P]=lu(X):產生一個上三角陣U和一個下三角陣L以及一個置換矩陣P,使之知足PX=LU。固然矩陣X一樣必須是方陣。tar

(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是埃爾米特矩陣,經計算可知,對於任意的復向量zz×Mz必然是實數,從而能夠與0比較大小。所以這個定義是自洽的。正定方陣M的全部的特徵值 λi都是正的。)

酉矩陣

n階複方陣U的n個列向量是U空間的一個標準正交基,則U是酉矩陣(Unitary Matrix)。顯然酉矩陣是正交矩陣往復數域上的推廣。一個簡單的充分必要判別準則是:方陣U的共軛轉置乘以U等於單位陣,則U是酉矩陣。即酉矩陣的逆矩陣與其共軛轉置矩陣相等。

相關文章
相關標籤/搜索