0

我正在寻找一个 Java 中的线性代数库,它可以处理大型“稀疏”矩阵(比如 100 万乘 100 万)并在矩阵上执行像 SVD、LU 这样的分解。

我环顾四周并尝试了 COLT,但是它只能处理最多固定数量的元素的矩阵。

EJML 站点还提到它无法处理这个问题。(http://code.google.com/p/efficient-java-matrix-library/wiki/FAQ)

我知道 C++ 中有一些包可以处理这种大小的数据,但是,我不能从 Java 迁移,因为我有所有其他代码都是围绕 Java 构建的。

有什么想法吗?任何帮助是极大的赞赏!

4

1 回答 1

0

尝试查看la4j(Java 的线性代数)。它处理稀疏矩阵和密集矩阵。所以你可以尝试这样的事情:

Matrix a = new CRSMatrix(...); // Compressed Row Storage format
Matrix vd[] = a.decompose(Matrices.EIGEN_DECOMPOSITOR); // vd[0] = V, vd[1] = D

因此,它适用于稀疏矩阵,但我不确定(100 万 X 100 万)大小。

于 2013-02-27T03:16:16.457 回答