繁体   English   中英

Java中的稀疏矩阵实现和操作

[英]Sparse Matrix implemantation and operations in java

我必须实现稀疏矩阵并做一些分解,如Cholesky分解,LU分解,QR分解就可以了。

实际上我找到了一个名为JAMA的库,它能够为密集矩阵做到这一点。

但我必须实现稀疏矩阵。

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

有一个支持稀疏矩阵的la4j (线性代数for Java)库。 la4j使用最常见和有效的稀疏表示sush作为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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM