org.apache.commons.math3.linear

## Class IterativeLinearSolver

- java.lang.Object
- - org.apache.commons.math3.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.
  Since:
    3.0
  Version:
    $Id: IterativeLinearSolver.java 1244107 2012-02-14 16:17:55Z erans $

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `IterativeLinearSolver(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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected static void` | `checkParameters(RealLinearOperator a, 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.
    `IterationManager` | `getIterationManager()` Returns the iteration manager attached to this solver.
    `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, RealVector b, RealVector x0)` Returns an estimate of the solution to the linear system A · x = b.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### IterativeLinearSolver

          public IterativeLinearSolver(int maxIterations)

      Creates a new instance of this class, with default iteration manager.
      Parameters:
        `maxIterations` - the maximum number of iterations

    - #### IterativeLinearSolver

          public IterativeLinearSolver(IterationManager manager)
                                throws NullArgumentException

      Creates a new instance of this class, with custom iteration manager.
      Parameters:
        `manager` - the custom iteration manager
      Throws:
        `NullArgumentException` - if `manager` is `null`

  - ### Method Detail

    - #### checkParameters

          protected static void checkParameters(RealLinearOperator a,
                             RealVector b,
                             RealVector x0)
                                         throws NullArgumentException,
                                                NonSquareOperatorException,
                                                DimensionMismatchException

      Performs all dimension checks on the parameters of `solve` and `solveInPlace`, and throws an exception if one of the checks fails.
      Parameters:
        `a` - the linear operator A of the system
        `b` - the right-hand side vector
        `x0` - the initial guess of the solution
      Throws:
        `NullArgumentException` - if one of the parameters is `null`
        `NonSquareOperatorException` - if `a` is not square
        `DimensionMismatchException` - if `b` or `x0` have dimensions inconsistent with `a`

    - #### getIterationManager

          public IterationManager getIterationManager()

      Returns the iteration manager attached to this solver.
      Returns:
        the manager

    - #### solve

          public RealVector solve(RealLinearOperator a,
                         RealVector b)
                           throws NullArgumentException,
                                  NonSquareOperatorException,
                                  DimensionMismatchException,
                                  MaxCountExceededException

      Returns an estimate of the solution to the linear system A · x = b.
      Parameters:
        `a` - the linear operator A of the system
        `b` - the right-hand side vector
      Returns:
        a new vector containing the solution
      Throws:
        `NullArgumentException` - if one of the parameters is `null`
        `NonSquareOperatorException` - if `a` is not square
        `DimensionMismatchException` - if `b` has dimensions inconsistent with `a`
        `MaxCountExceededException` - at exhaustion of the iteration count, unless a custom `callback` has been set at construction

    - #### solve

          public RealVector solve(RealLinearOperator a,
                         RealVector b,
                         RealVector x0)
                           throws NullArgumentException,
                                  NonSquareOperatorException,
                                  DimensionMismatchException,
                                  MaxCountExceededException

      Returns an estimate of the solution to the linear system A · x = b.
      Parameters:
        `a` - the linear operator A of the system
        `b` - the right-hand side vector
        `x0` - the initial guess of the solution
      Returns:
        a new vector containing the solution
      Throws:
        `NullArgumentException` - if one of the parameters is `null`
        `NonSquareOperatorException` - if `a` is not square
        `DimensionMismatchException` - if `b` or `x0` have dimensions inconsistent with `a`
        `MaxCountExceededException` - at exhaustion of the iteration count, unless a custom `callback` has been set at construction

    - #### solveInPlace

          public abstract RealVector solveInPlace(RealLinearOperator a,
                                RealVector b,
                                RealVector x0)
                                           throws NullArgumentException,
                                                  NonSquareOperatorException,
                                                  DimensionMismatchException,
                                                  MaxCountExceededException

      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 system
        `b` - the right-hand side vector
        `x0` - initial guess of the solution
      Returns:
        a reference to `x0` (shallow copy) updated with the solution
      Throws:
        `NullArgumentException` - if one of the parameters is `null`
        `NonSquareOperatorException` - if `a` is not square
        `DimensionMismatchException` - if `b` or `x0` have dimensions inconsistent with `a`
        `MaxCountExceededException` - at exhaustion of the iteration count, unless a custom `callback` has been set at construction

Copyright © 2003-2012 The Apache Software Foundation. All Rights Reserved.