我以压缩稀疏行格式(CSR)存储稀疏矩阵A.我想计算A的LU分解。常见算法效率不高,因为它们必须循环遍历矩阵的所有系数。是否有一种有效的算法利用CSR格式来计算LU分解? 谢谢你的帮助!
答案 0 :(得分:0)
我是la4j(线性代数for Java)库的作者。 la4j支持CRS格式以及LU分解。所以,你可以尝试使用它。但是,la4j(0.4.0)在执行分解时并没有真正处理concreet格式的细节。但这就是我在下一次发布时要做的事情。您可以subscribe自行更新或尝试实施此类算法,并向la4j发送拉取请求。
如何使用LU分解器:
Matrix a = new CRSMatrix(new double[][]{
{1.0, 2.0},
{3.0, 4.0}
});
// lu[0] - L, lu[1] - U
Matrix[][] lu = a.decompose(Matrices.LU_DECOMPOSITOR);