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 |
|---|---|
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.
|
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 IterationManagerpublic 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 IterationManagerJas4pp 1.5 © Java Analysis Studio for Particle Physics