Package org.hipparchus.linear
Class IterativeLinearSolver
- java.lang.Object
-
- org.hipparchus.linear.IterativeLinearSolver
-
- Direct Known Subclasses:
PreconditionedIterativeLinearSolver
public abstract class IterativeLinearSolver extends Object
This abstract class defines an iterative solver for the linear system A · x = b. In what follows, the residual r is defined as r = b - A · x, where A is the linear operator of the linear system, b is the right-hand side vector, and x the current estimate of the solution.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedIterativeLinearSolver(int maxIterations)Creates a new instance of this class, with default iteration manager.protectedIterativeLinearSolver(IterationManager manager)Creates a new instance of this class, with custom iteration manager.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected static voidcheckParameters(RealLinearOperator a, RealVector b, RealVector x0)Performs all dimension checks on the parameters ofsolveandsolveInPlace, and throws an exception if one of the checks fails.IterationManagergetIterationManager()Returns the iteration manager attached to this solver.RealVectorsolve(RealLinearOperator a, RealVector b)Returns an estimate of the solution to the linear system A · x = b.RealVectorsolve(RealLinearOperator a, RealVector b, RealVector x0)Returns an estimate of the solution to the linear system A · x = b.abstract RealVectorsolveInPlace(RealLinearOperator a, RealVector b, RealVector x0)Returns an estimate of the solution to the linear system A · x = b.
-
-
-
Constructor Detail
-
IterativeLinearSolver
protected IterativeLinearSolver(int maxIterations)
Creates a new instance of this class, with default iteration manager.- Parameters:
maxIterations- the maximum number of iterations
-
IterativeLinearSolver
protected IterativeLinearSolver(IterationManager manager) throws NullArgumentException
Creates a new instance of this class, with custom iteration manager.- Parameters:
manager- the custom iteration manager- Throws:
NullArgumentException- ifmanagerisnull
-
-
Method Detail
-
checkParameters
protected static void checkParameters(RealLinearOperator a, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException
Performs all dimension checks on the parameters ofsolveandsolveInPlace, and throws an exception if one of the checks fails.- Parameters:
a- the linear operator A of the systemb- the right-hand side vectorx0- the initial guess of the solution- Throws:
NullArgumentException- if one of the parameters isnullMathIllegalArgumentException- ifais not squareMathIllegalArgumentException- ifborx0have dimensions inconsistent witha
-
getIterationManager
public IterationManager getIterationManager()
Returns the iteration manager attached to this solver.- Returns:
- the manager
-
solve
public RealVector solve(RealLinearOperator a, RealVector b) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException
Returns an estimate of the solution to the linear system A · x = b.- Parameters:
a- the linear operator A of the systemb- the right-hand side vector- Returns:
- a new vector containing the solution
- Throws:
NullArgumentException- if one of the parameters isnullMathIllegalArgumentException- ifais not squareMathIllegalArgumentException- ifbhas dimensions inconsistent withaMathIllegalStateException- at exhaustion of the iteration count, unless a customcallbackhas been set at construction of theIterationManager
-
solve
public RealVector solve(RealLinearOperator a, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException
Returns an estimate of the solution to the linear system A · x = b.- Parameters:
a- the linear operator A of the systemb- the right-hand side vectorx0- the initial guess of the solution- Returns:
- a new vector containing the solution
- Throws:
NullArgumentException- if one of the parameters isnullMathIllegalArgumentException- ifais not squareMathIllegalArgumentException- ifborx0have dimensions inconsistent withaMathIllegalStateException- at exhaustion of the iteration count, unless a customcallbackhas been set at construction of theIterationManager
-
solveInPlace
public abstract RealVector solveInPlace(RealLinearOperator a, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException
Returns an estimate of the solution to the linear system A · x = b. The solution is computed in-place (initial guess is modified).- Parameters:
a- the linear operator A of the systemb- the right-hand side vectorx0- initial guess of the solution- Returns:
- a reference to
x0(shallow copy) updated with the solution - Throws:
NullArgumentException- if one of the parameters isnullMathIllegalArgumentException- ifais not squareMathIllegalArgumentException- ifborx0have dimensions inconsistent withaMathIllegalStateException- at exhaustion of the iteration count, unless a customcallbackhas been set at construction of theIterationManager
-
-