我必须实现稀疏矩阵,并对其进行一些分解,如Cholesky分解,LU分解,QR分解。
实际上,我发现了一个名为JAMA的库,它能够对密集矩阵执行此操作。
但我必须实现稀疏矩阵。
有没有人可以分享他们实现稀疏矩阵的经验,或者有没有库可以实现它。
发布于 2011-08-27 05:21:49
你有没有看过Colt或Matrix-Toolkits-Java?这些可能会对你有所帮助。
发布于 2013-02-11 12:07:13
有一个支持稀疏矩阵的la4j (Linear Algebra for Java)库。la4j使用最常见和最有效的稀疏表示,如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
https://stackoverflow.com/questions/7209836
复制相似问题