public abstract class PreconditionedIterativeLinearSolver extends IterativeLinearSolver
This abstract class defines preconditioned iterative solvers. When A is ill-conditioned, instead of solving system A · x = b directly, it is preferable to solve either
Concrete implementations of this abstract class must be provided with the
preconditioner M, as a RealLinearOperator.
| Constructor and Description |
|---|
PreconditionedIterativeLinearSolver(int maxIterations)
Creates a new instance of this class, with default iteration manager.
|
PreconditionedIterativeLinearSolver(IterationManager manager)
Creates a new instance of this class, with custom iteration manager.
|
| Modifier and Type | Method and Description |
|---|---|
protected static void |
checkParameters(RealLinearOperator a,
RealLinearOperator m,
RealVector b,
RealVector x0)
Performs all dimension checks on the parameters of
solve
and
solveInPlace,
and throws an exception if one of the checks fails. |
RealVector |
solve(RealLinearOperator a,
RealLinearOperator m,
RealVector b)
Returns an estimate of the solution to the linear system A · x =
b.
|
RealVector |
solve(RealLinearOperator a,
RealLinearOperator m,
RealVector b,
RealVector x0)
Returns an estimate of the solution to the linear system A · x =
b.
|
RealVector |
solve(RealLinearOperator a,
RealVector b)
Returns an estimate of the solution to the linear system A · x =
b.
|
RealVector |
solve(RealLinearOperator a,
RealVector b,
RealVector x0)
Returns an estimate of the solution to the linear system A · x =
b.
|
abstract RealVector |
solveInPlace(RealLinearOperator a,
RealLinearOperator m,
RealVector b,
RealVector x0)
Returns an estimate of the solution to the linear system A · x =
b.
|
RealVector |
solveInPlace(RealLinearOperator a,
RealVector b,
RealVector x0)
Returns an estimate of the solution to the linear system A · x =
b.
|
checkParameters, getIterationManagerpublic PreconditionedIterativeLinearSolver(int maxIterations)
maxIterations - the maximum number of iterationspublic PreconditionedIterativeLinearSolver(IterationManager manager) throws NullArgumentException
manager - the custom iteration managerNullArgumentException - if manager is nullpublic RealVector solve(RealLinearOperator a, RealLinearOperator m, RealVector b, RealVector x0) throws NullArgumentException, NonSquareOperatorException, DimensionMismatchException, MaxCountExceededException
a - the linear operator A of the systemm - the preconditioner, M (can be null)b - the right-hand side vectorx0 - the initial guess of the solutionNullArgumentException - if one of the parameters is nullNonSquareOperatorException - if a or m is not
squareDimensionMismatchException - if m, b or
x0 have dimensions inconsistent with aMaxCountExceededException - at exhaustion of the iteration count,
unless a custom
callback
has been set at construction of the IterationManagerpublic RealVector solve(RealLinearOperator a, RealVector b) throws NullArgumentException, NonSquareOperatorException, DimensionMismatchException, MaxCountExceededException
solve in class IterativeLinearSolvera - the linear operator A of the systemb - the right-hand side vectorNullArgumentException - if one of the parameters is nullNonSquareOperatorException - if a is not squareDimensionMismatchException - if b has dimensions
inconsistent with aMaxCountExceededException - at exhaustion of the iteration count,
unless a custom
callback
has been set at construction of the IterationManagerpublic RealVector solve(RealLinearOperator a, RealVector b, RealVector x0) throws NullArgumentException, NonSquareOperatorException, DimensionMismatchException, MaxCountExceededException
solve in class IterativeLinearSolvera - the linear operator A of the systemb - the right-hand side vectorx0 - the initial guess of the solutionNullArgumentException - if one of the parameters is nullNonSquareOperatorException - if a is not squareDimensionMismatchException - if b or x0 have
dimensions inconsistent with aMaxCountExceededException - at exhaustion of the iteration count,
unless a custom
callback
has been set at construction of the IterationManagerprotected static void checkParameters(RealLinearOperator a, RealLinearOperator m, RealVector b, RealVector x0) throws NullArgumentException, NonSquareOperatorException, DimensionMismatchException
solve
and
solveInPlace,
and throws an exception if one of the checks fails.a - the linear operator A of the systemm - the preconditioner, M (can be null)b - the right-hand side vectorx0 - the initial guess of the solutionNullArgumentException - if one of the parameters is nullNonSquareOperatorException - if a or m is not
squareDimensionMismatchException - if m, b or
x0 have dimensions inconsistent with apublic RealVector solve(RealLinearOperator a, RealLinearOperator m, RealVector b) throws NullArgumentException, NonSquareOperatorException, DimensionMismatchException, MaxCountExceededException
a - the linear operator A of the systemm - the preconditioner, M (can be null)b - the right-hand side vectorNullArgumentException - if one of the parameters is nullNonSquareOperatorException - if a or m is not
squareDimensionMismatchException - if m or b have
dimensions inconsistent with aMaxCountExceededException - at exhaustion of the iteration count,
unless a custom
callback
has been set at construction of the IterationManagerpublic abstract RealVector solveInPlace(RealLinearOperator a, RealLinearOperator m, RealVector b, RealVector x0) throws NullArgumentException, NonSquareOperatorException, DimensionMismatchException, MaxCountExceededException
a - the linear operator A of the systemm - the preconditioner, M (can be null)b - the right-hand side vectorx0 - the initial guess of the solutionx0 (shallow copy) updated with the
solutionNullArgumentException - if one of the parameters is nullNonSquareOperatorException - if a or m is not
squareDimensionMismatchException - if m, b or
x0 have dimensions inconsistent with aMaxCountExceededException - at exhaustion of the iteration count,
unless a custom
callback
has been set at construction of the IterationManagerpublic RealVector solveInPlace(RealLinearOperator a, RealVector b, RealVector x0) throws NullArgumentException, NonSquareOperatorException, DimensionMismatchException, MaxCountExceededException
solveInPlace in class IterativeLinearSolvera - the linear operator A of the systemb - the right-hand side vectorx0 - initial guess of the solutionx0 (shallow copy) updated with the
solutionNullArgumentException - if one of the parameters is nullNonSquareOperatorException - if a is not squareDimensionMismatchException - if b or x0 have
dimensions inconsistent with aMaxCountExceededException - at exhaustion of the iteration count,
unless a custom
callback
has been set at construction of the IterationManagerCopyright © 2003–2016 The Apache Software Foundation. All rights reserved.