矩陣的Crout分解

2021-06-08 15:35:02 字數 913 閱讀 2431

%本函式將乙個滿秩方陣按crout方式分解

function [l,u]=crout(a)

b=size(a);

%b(1)行

%b(2)列

n=b(1);%這裡只處理n*n的非奇異矩陣

%錯誤檢查

if b(1)~=b(2)%非方陣錯誤

error('matlab:crout:input matrix should be a square matrix.  see crout.');

endif n~=rank(a)%非滿秩矩陣錯誤

error('matlab:crout:input matrix should be full rank.  see crout.');

end   

%初始化

l=zeros(n,n);

u=zeros(n,n);  

%u中的主對角線元素均為1

for i=1:n

u(i,i)=1;

end%開始計算

for k=1:n

for i=k:n %l中計算的方式是行為外迴圈,列為內迴圈

temp_sum=0; %臨時和

for t=1:k-1

temp_sum=temp_sum+l(i,t)*u(t,k);

endl(i,k)=a(i,k)-temp_sum; %計算l的第k列元素

endfor j=k+1:n %u中計算的方式是列為外迴圈,行為內迴圈

temp_sum=0; %臨時和

for t=1:k-1

temp_sum=temp_sum+l(k,t)*u(t,j);

endu(k,j)=(a(k,j)-temp_sum)/l(k,k);%計算u的第k行元素

endend

end %end of function

矩陣的分解

matlab中有這個恒等式 a triu a,1 tril a,1 diag diag a 將矩陣分解為乙個上三角陣 下三角陣和乙個對角陣。測試如下 format compact a 1 2 3 4 5 6 7 8 9 a 1 2 3 4 5 6 7 8 9 u triu a,1 u 0 2 3 0...

矩陣分解 Cholesky分解

矩陣分解是將矩陣拆解為數個矩陣的乘積,可分為三角分解 滿秩分解 qr分解 jordan分解和svd 奇異值 分解等。cholesky分解法是求解對稱正定線性方程組最常用的方法之一。可採用如下命令 r chol a 產生乙個上三角陣r,使r r a。若a為非對稱正定,則輸出乙個出錯資訊。r,p cho...

矩陣的各種分解

對於矩陣為高維的情況下,這個變換就對應著很多方向的變化,我們 1 at b t 1at b 則稱a與b相似,記作a b,從a到b的這種變化稱為相似變換,t稱為相似變換矩陣。矩陣的相似關係是一種等價關係 並不是相等 相似矩陣滿足以下特性 對稱性 若a b,則b a 傳遞性 若a b,b a,則a c ...