Class SteepestDescentSolver

  • All Implemented Interfaces:
    IterativeLinearSystemSolver

    public class SteepestDescentSolver
    extends Object
    implements IterativeLinearSystemSolver
    The Steepest Descent method (SDM) solves a symmetric n-by-n linear system. The convergence is guaranteed if A is symmetric positive definite.

    Only left preconditioning is supported in this implementation. The preconditioner must be symmetric and positive definite.

    See Also:
    Wikipedia: Gradient descent
    • Field Detail

      • DEFAULT_RESIDUAL_REFRESH_RATE

        public static final int DEFAULT_RESIDUAL_REFRESH_RATE
        The algorithm recomputes the residual as b - Axi once per this number of iterations
        See Also:
        Constant Field Values
    • Constructor Detail

      • SteepestDescentSolver

        public SteepestDescentSolver​(PreconditionerFactory leftPreconditionerFactory,
                                     int residualRefreshRate,
                                     int maxIteration,
                                     Tolerance tolerance)
        Construct a Steepest Descent method (SDM) solver.
        Parameters:
        leftPreconditionerFactory - constructs a new left preconditioner
        residualRefreshRate - the number of iterations before the next refresh
        maxIteration - the maximum number of iterations
        tolerance - the convergence threshold
      • SteepestDescentSolver

        public SteepestDescentSolver​(int maxIteration,
                                     Tolerance tolerance)
        Construct a Steepest Descent method (SDM) solver.
        Parameters:
        maxIteration - the maximum number of iterations
        tolerance - the convergence threshold