矩陣分解 Cholesky分解

2021-10-24 14:17:41 字數 884 閱讀 3869

矩陣分解是將矩陣拆解為數個矩陣的乘積,可分為三角分解、滿秩分解、qr分解、jordan分解和svd(奇異值)分解等。

cholesky分解法是求解對稱正定線性方程組最常用的方法之一。

可採用如下命令:

r=chol(a):產生乙個上三角陣r,使r』r=a。若a為非對稱正定,則輸出乙個出錯資訊。

[r,p]=chol(a):這個命令格式將不輸出出錯資訊。當a為對稱正定的,則p=0,r與上述格式得到的結果相同;否則p為乙個正整數。如果a為滿秩矩陣,則a為乙個階數為q=p-1的上三角陣,且滿足r』r=x(1:q,1:q)。

cholesky分解後,線性方程組ax=b變成r『rx=b,所以x=r(r』b)。

也可採用如下程式:

function [x]=decomchol(a,b)

[n,n]=size(a);

x=zeros(n,1);

y=zeros(n,1);

for i=1:n

a(i,i)=sqrt(a(i,i)-a(i,1:i-1)*a(i,1:i-1)』);

if a(i,i)==0

『a is singular. no unique solution』

break;

end;

for j=i+1:n

a(j,i)=(a(j,i)-a(j,1:i-1)*a(i,1:i-1)』)/a(i,i);

enda

b前代法

for j=1:n

y(j)=(b(j)-a(j,1:j-1)*y(1:j-1))/a(j,j);

endy;

a=a』

for k=n: -1 :1

x(k)=(y(k)-a(k,k+1:n)*x(k+1:n))/a(k,k);

end

矩陣的Cholesky分解的Matlab實現

cholesky分解在matlab裡面有專門的函式chol 其呼叫格式為 r chol x 這一函式功能就不介紹了,但有些場合只能用最基礎的函式,所以,下面給出cholesky分解的最基礎形式。cholesky分解法 function x m chol a,b n,n size a x zeros ...

矩陣分解(2)QR分解

qr分解法是三種將矩陣分解的方式之一。這種方式,把矩陣分解成乙個半正交矩陣與乙個上三角矩陣的積。qr分解經常用來解線性最小二乘法問題。qr分解也是特定特徵值演算法即qr演算法的基礎。實數矩陣a的qr分解是把a分解為 這裡的q是正交矩陣 意味著qtq i 而r是上三角矩陣。類似的,我們可以定義a的ql...

非負矩陣分解 低秩矩陣分解

一般的矩陣分解,分解的矩陣有正有負。很多實際應用中,負數沒有意義,如文字等等。nmf中要求原矩陣和分解後矩陣都為非負矩陣,這個分解存在唯一。引入稀疏,區域性計算。以人臉識別為例 v r n m v in r v r n m m張臉,每張圖n個畫素 w r n r w in r w r n r 基矩陣...