我必須實現稀疏矩陣並做一些分解,如Cholesky分解,LU分解,QR分解。Java中的稀疏矩陣實現和操作
其實我找到了一個名爲JAMA的庫,它可以爲密集矩陣做到這一點。我不得不實現稀疏矩陣。
任何人都可以分享他們實現稀疏矩陣的經驗,或者是否有任何庫來實現它。
我必須實現稀疏矩陣並做一些分解,如Cholesky分解,LU分解,QR分解。Java中的稀疏矩陣實現和操作
其實我找到了一個名爲JAMA的庫,它可以爲密集矩陣做到這一點。我不得不實現稀疏矩陣。
任何人都可以分享他們實現稀疏矩陣的經驗,或者是否有任何庫來實現它。
你看過Colt還是Matrix-Toolkits-Java?這些可能會幫助你。
有一個支持稀疏矩陣的la4j(Linear Algebra for Java)庫。 la4j使用最常見和有效的稀疏表示sush CRS (Compressed Row Storage)和CCS (Compressed Column Storage)。以下是la4j中的相應類:CRSMatrix和CCSMatrix。因此,您可以直接查看源代碼或直接使用la4j的稀疏矩陣進行分解。
下面是簡單的例子:
Matrix a = new CRSMatrix(new double[][]{
{ 1.0, 0.0, 0.0 },
{ 0.0, 2.0, 0.0 },
{ 0.0, 0.0, 3.0 }
});
Matrix[] qr = a.decompose(Matrices.QR_DECOMPOSITOR); // qr[0] = Q, qr[1] = R
Matrix[] u = a.decompose(Matrices.CHOLESKY_DECOMPOSITOR); // u[0] = U
這個解決方案已經過時。 – kongshem