Alexandre Hoffmann
Alexandre Hoffmann

Reputation: 85

armadillo sparse lu (or cholesky) decomposition

I need to solve a linear equation (Ax = b), with a large sparse A and with différents b multiple time. Thus, an LU (or Cholesky if A is symmetric), factorisation is highly preferable.

I'm using the armadillo library and I've heard that one can use the function:

spsolve(x, A, b, "superlu");

In order to solve such a system. I'm not very concerned about retrieving the L and U matrices. However, it is of primal importance that both L and U aren't recomputed every time I call spsolve.

Does spsolve(x, A, b, "superlu") store the LU decomposition and if not, is there a way to retrieve said matrices?

Upvotes: 2

Views: 651

Answers (1)

SparseSolverCodes
SparseSolverCodes

Reputation: 71

The fact is that armadillo is, essentially, a "wrap-up" for software developed by the other teams; this particularly is correct for the superlu sparse solver. The feature that you are asking for (solving a series of systems of equations with one and the same matrix but different right-hand sides) may not exist in armadillo at all. You should probably use a sparse linear solver directly (not necessarily superlu) that has that feature embedded. In case if you system is very large, so a factorisation-based solver cannot cope with that, an iterative solver may do, and there is an option to go in such case: since modern CPUs are multi-core, several independent solution processes can be run in parallel. One such iterative solver is described in the following blog (you may ask questions and/or participate in discussion there): http://comecau.blogspot.com/2018_09_05_archive.html

Upvotes: 0

Related Questions