矩陣的分解

2021-06-08 15:35:02 字數 1217 閱讀 4182

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 ...