public class DoubleQMR extends AbstractDoubleIterativeSolver
Ax = b
using the Quasi-Minimal Residual method. QMR uses two
preconditioners, and by default these are the same preconditioner.Constructor and Description |
---|
DoubleQMR(DoubleMatrix1D template)
Constructor for QMR.
|
DoubleQMR(DoubleMatrix1D template,
DoublePreconditioner M1,
DoublePreconditioner M2)
Constructor for QMR.
|
Modifier and Type | Method and Description |
---|---|
void |
setPreconditioner(DoublePreconditioner M)
Sets preconditioner
|
DoubleMatrix1D |
solve(DoubleMatrix2D A,
DoubleMatrix1D b,
DoubleMatrix1D x)
Solves the given problem, writing result into the vector.
|
getIterationMonitor, getPreconditioner, setIterationMonitor
public DoubleQMR(DoubleMatrix1D template)
template
- Vector to use as template for the work vectors needed in the
solution processpublic DoubleQMR(DoubleMatrix1D template, DoublePreconditioner M1, DoublePreconditioner M2)
template
- Vector to use as template for the work vectors needed in the
solution processM1
- Left preconditionerM2
- Right preconditionerpublic DoubleMatrix1D solve(DoubleMatrix2D A, DoubleMatrix1D b, DoubleMatrix1D x) throws IterativeSolverDoubleNotConvergedException
DoubleIterativeSolver
A
- Matrix of the problemb
- Right hand sidex
- Solution is stored here. Also used as initial guessIterativeSolverDoubleNotConvergedException
public void setPreconditioner(DoublePreconditioner M)
DoubleIterativeSolver
setPreconditioner
in interface DoubleIterativeSolver
setPreconditioner
in class AbstractDoubleIterativeSolver
M
- Preconditioner to useJump to the Parallel Colt Homepage