0

我必须实现稀疏矩阵并对其进行一些分解,例如 Cholesky 分解、LU 分解、QR 分解。

实际上,我找到了一个名为 JAMA 的库,它能够为密集矩阵执行此操作。

但我必须实现稀疏矩阵。

任何人都可以分享他们实现稀疏矩阵的经验,或者是否有任何库来实现它。

4

2 回答 2

1

您看过ColtMatrix-Toolkits-Java吗?这些可能会帮助你。

于 2011-08-26T21:21:48.927 回答
1

有一个支持稀疏矩阵的la4j(Java 线性代数)库。la4j 使用最常见和最有效的稀疏表示作为CRS(压缩行存储)CCS(压缩列存储)。这是 la4j 中的相应类:CRSMatrixCCSMatrix。因此,您可以查看源代码或直接使用 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
于 2013-02-11T04:07:12.670 回答