Package org.hipparchus.linear
Class IterativeLinearSolver
java.lang.Object
org.hipparchus.linear.IterativeLinearSolver
- Direct Known Subclasses:
PreconditionedIterativeLinearSolver
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
ConstructorDescriptionIterativeLinearSolver
(int maxIterations) Creates a new instance of this class, with default iteration manager.IterativeLinearSolver
(IterationManager manager) Creates a new instance of this class, with custom iteration manager. -
Method Summary
Modifier and TypeMethodDescriptionprotected static void
Performs all dimension checks on the parameters ofsolve
andsolveInPlace
, and throws an exception if one of the checks fails.Returns the iteration manager attached to this solver.Returns an estimate of the solution to the linear system A · x = b.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, RealVector b, RealVector x0) Returns an estimate of the solution to the linear system A · x = b.
-
Constructor Details
-
IterativeLinearSolver
public IterativeLinearSolver(int maxIterations) Creates a new instance of this class, with default iteration manager.- Parameters:
maxIterations
- the maximum number of iterations
-
IterativeLinearSolver
Creates a new instance of this class, with custom iteration manager.- Parameters:
manager
- the custom iteration manager- Throws:
NullArgumentException
- ifmanager
isnull
-
-
Method Details
-
checkParameters
protected static void checkParameters(RealLinearOperator a, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException Performs all dimension checks on the parameters ofsolve
andsolveInPlace
, 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 isnull
MathIllegalArgumentException
- ifa
is not squareMathIllegalArgumentException
- ifb
orx0
have dimensions inconsistent witha
-
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 isnull
MathIllegalArgumentException
- ifa
is not squareMathIllegalArgumentException
- ifb
has dimensions inconsistent witha
MathIllegalStateException
- at exhaustion of the iteration count, unless a customcallback
has 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 isnull
MathIllegalArgumentException
- ifa
is not squareMathIllegalArgumentException
- ifb
orx0
have dimensions inconsistent witha
MathIllegalStateException
- at exhaustion of the iteration count, unless a customcallback
has 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 isnull
MathIllegalArgumentException
- ifa
is not squareMathIllegalArgumentException
- ifb
orx0
have dimensions inconsistent witha
MathIllegalStateException
- at exhaustion of the iteration count, unless a customcallback
has been set at construction of theIterationManager
-