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 0 6
0 0 0
>> l=tril(a,-1)
l =0 0 0
4 0 0
7 8 0
>> d=diag(diag(a))
d =1 0 0
0 5 0
0 0 9
triu函式說明如下:
triu extract upper triangular part.
triu(x) is the upper triangular part of x.
triu(x,k) is the elements on and above the k-th diagonal of x. k = 0 is the main diagonal, k > 0 is above the main diagonal and k < 0 is below the main diagonal.
有兩種用法,乙個是單一引數,即乙個矩陣,該函式返回帶主對角線的上三角陣,測試如下:
>> triu(a)
ans =
1 2 3
0 5 6
0 0 9
如果是兩個引數,第二個引數將指明主對角線上的第k次的元素,例如:
>> triu(a,2)
ans =
0 0 3
0 0 0
0 0 0
當然k還可以小於0:
>> triu(a,-1)
ans =
1 2 3
4 5 6
0 8 9
tril和triu用法類似。
矩陣分解 Cholesky分解
矩陣分解是將矩陣拆解為數個矩陣的乘積,可分為三角分解 滿秩分解 qr分解 jordan分解和svd 奇異值 分解等。cholesky分解法是求解對稱正定線性方程組最常用的方法之一。可採用如下命令 r chol a 產生乙個上三角陣r,使r r a。若a為非對稱正定,則輸出乙個出錯資訊。r,p cho...
矩陣的Crout分解
本函式將乙個滿秩方陣按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 ...
矩陣的各種分解
對於矩陣為高維的情況下,這個變換就對應著很多方向的變化,我們 1 at b t 1at b 則稱a與b相似,記作a b,從a到b的這種變化稱為相似變換,t稱為相似變換矩陣。矩陣的相似關係是一種等價關係 並不是相等 相似矩陣滿足以下特性 對稱性 若a b,則b a 傳遞性 若a b,b a,則a c ...