從eigen 3.3開始,lu,cholesky和qr分解可以在適當的位置執行,即直接在給定的輸入矩陣內執行。 在處理大型矩陣時,或者當可用記憶體非常有限時(嵌入式系統),此功能特別有用。為此,必須使用ref <>矩陣型別例項化相應的分解類,並且必須使用輸入矩陣作為引數來構造分解物件。 作為乙個例子,讓我們考慮使用部分旋轉的就地lu分解。
這裡,lu物件計算並儲存由矩陣a保持的儲存器中的l和u因子。因此,a的係數在因子分解期間被破壞,並且由l和u因子代替,因為可以驗證:
由於儲存器在a和lu之間共享,因此修改矩陣a將使lu無效。 通過修改a的內容並嘗試再次解決初始問題,可以輕鬆驗證這一點:
請注意,呼叫compute不會更改lu物件引用的記憶體。 因此,如果使用不同於a的另乙個矩陣a1呼叫計算方法,則不會修改a1的內容。 這仍然是將用於儲存矩陣a1的l和u因子的a的內容。 這可以很容易地驗證如下:
矩陣a1不變,因此可以求解a1 * x = b,並直接檢查殘差而不需要a1的任何副本:
矩陣分解 Cholesky分解
矩陣分解是將矩陣拆解為數個矩陣的乘積,可分為三角分解 滿秩分解 qr分解 jordan分解和svd 奇異值 分解等。cholesky分解法是求解對稱正定線性方程組最常用的方法之一。可採用如下命令 r chol a 產生乙個上三角陣r,使r r a。若a為非對稱正定,則輸出乙個出錯資訊。r,p cho...
非負矩陣分解 低秩矩陣分解
一般的矩陣分解,分解的矩陣有正有負。很多實際應用中,負數沒有意義,如文字等等。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 基矩陣...
矩陣的分解
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...