public class ConjugateGradientSolver extends Object implements IterativeLinearSystemSolver
Ax = bNote that if the coefficient matrix A passed into the algorithm is not symmetric positive-definite, the algorithm behaves unexpectedly. Only left preconditioning is supported in this implementation. The preconditioner must be symmetric and positive definite.
IterativeLinearSystemSolver.Solution
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_RESIDUAL_REFRESH_RATE
The algorithm recomputes the residual as b - Axi once per this number of iterations
|
Constructor and Description |
---|
ConjugateGradientSolver(int maxIteration,
Tolerance tolerance)
Construct a Conjugate Gradient (CG) solver.
|
ConjugateGradientSolver(PreconditionerFactory leftPreconditionerFactory,
int residualRefreshRate,
int maxIteration,
Tolerance tolerance)
Construct a Conjugate Gradient (CG) solver.
|
Modifier and Type | Method and Description |
---|---|
IterativeLinearSystemSolver.Solution |
solve(LSProblem problem) |
IterativeLinearSystemSolver.Solution |
solve(LSProblem problem,
IterationMonitor<Vector> monitor)
Solves iteratively
Ax = b
until the solution converges, i.e., the norm of residual
(b - Ax) is less than or equal to the threshold.
|
public static final int DEFAULT_RESIDUAL_REFRESH_RATE
public ConjugateGradientSolver(PreconditionerFactory leftPreconditionerFactory, int residualRefreshRate, int maxIteration, Tolerance tolerance)
leftPreconditionerFactory
- constructs a new left preconditionerresidualRefreshRate
- the number of iterations before the next refreshmaxIteration
- the maximum number of iterationstolerance
- the convergence thresholdpublic ConjugateGradientSolver(int maxIteration, Tolerance tolerance)
maxIteration
- the maximum number of iterationstolerance
- the convergence thresholdpublic IterativeLinearSystemSolver.Solution solve(LSProblem problem) throws ConvergenceFailure
ConvergenceFailure
public IterativeLinearSystemSolver.Solution solve(LSProblem problem, IterationMonitor<Vector> monitor) throws ConvergenceFailure
IterativeLinearSystemSolver
Ax = buntil the solution converges, i.e., the norm of residual (b - Ax) is less than or equal to the threshold.
solve
in interface IterativeLinearSystemSolver
problem
- a system of linear equationsmonitor
- an iteration monitorConvergenceFailure
- if the algorithm fails to convergeCopyright © 2010-2020 NM FinTech Ltd.. All Rights Reserved.