%本函式將乙個滿秩方陣按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 ...