我有一個平方n * n矩陣S必須被分解成兩個矩陣的乘積 - A1和A2,其中A2是矩陣轉置爲A1(A2 = A1^T),所以A1 * A2 = S.有沒有任何算法可以有效地進行這樣的操作? C#/ C++解決方案會很好。矩陣分解
矩陣分解
回答
+1:我正要爲新版本的問題添加相同的鏈接。 – 2010-07-21 17:42:05
如果S不是對稱的,該怎麼辦? – Singularity 2010-07-21 17:51:22
@Singularity:使用(AB)^ T = B^T.A^T並且看到如果這樣的分解是可能的,那麼S = S^T。 – 2010-07-21 17:57:00
至於安德烈建議,看來你正在嘗試做Cholesky分解。
在polish wiki site for it中提供了C++代碼。
也有單獨的小節中的「在C數字食譜」(2.9 Cholesky分解,可以在這裏找到:http://www.nrbook.com/a/bookcpdf/c2-9.pdf)
- 1. 將矩陣分解爲初等矩陣
- 2. CSR矩陣的LU分解
- 3. 4x4矩陣分解算法
- 4. Svg爲矩陣分解
- 5. 矩陣分解算法
- 6. OpenCV:基本矩陣分解
- 7. Python的矩陣分解
- 8. matlab:稀疏矩陣分解
- 9. 大型稀疏矩陣上的快速非負矩陣分解
- 10. 在C++中將矩陣分解成方形子矩陣
- 11. Scikit學習非負矩陣分解(NMF)爲稀疏矩陣
- 12. 矩陣分配
- 13. LU分解的矩陣乘法問題?
- 14. 複雜矩陣的Schur分解
- 15. 哈爾分解的矩陣歸一化
- 16. 矩陣的Svd和Eigen分解
- 17. 三對角矩陣的LU分解(Java)
- 18. 應用上QR大型矩陣分解
- 19. 瞭解cudaMalloc的使用分配矩陣
- 20. SciPy的LU分解置換矩陣
- 21. 矩陣代數設計分解
- 22. 分解轉化的樞軸矩陣
- 23. Crout矩陣分解的Python實現
- 24. 計算numpy矩陣的極性分解?
- 25. 非負矩陣分解未能收斂
- 26. 把方矩陣分解成對
- 27. Schur分解找到酉矩陣?
- 28. 左矩陣分區和Numpy求解
- 29. SVD分解後的矩陣重構
- 30. 矩陣矩陣解釋的移調矩陣
這可能是一個更大的算法的一部分,很少有爲了好玩做線性代數:)如果你要包括的情況下,其中S是不是對稱的,那麼你還應該添加更大的問題。 否則,請在算法開始處添加對稱檢查,這將節省大量計算。 – Andrei 2010-07-21 18:07:47
我正在做一些統計研究,並在某一點找到一個協方差矩陣,我必須執行這種操作。實際上,它必須是對稱的,但目前它不是(儘管事實上所有公式都是正確的)......似乎我需要在使用矩陣進行操作之前深入研究代碼。無論如何感謝提出的方法,這可能是它。 – Singularity 2010-07-21 18:28:26
據我所知,協方差矩陣*必須是對稱的,在機器精度和累積誤差的範圍內。如果你得到一個明顯不對稱的協方差矩陣,那麼你的代碼可能有些根本錯誤。 – 2010-07-21 18:44:37