Class NonLinearConjugateGradientOptimizer
- java.lang.Object
-
- org.apache.commons.math.optimization.general.AbstractScalarDifferentiableOptimizer
-
- org.apache.commons.math.optimization.general.NonLinearConjugateGradientOptimizer
-
- All Implemented Interfaces:
DifferentiableMultivariateRealOptimizer
public class NonLinearConjugateGradientOptimizer extends AbstractScalarDifferentiableOptimizer
Non-linear conjugate gradient optimizer.This class supports both the Fletcher-Reeves and the Polak-Ribière update formulas for the conjugate search directions. It also supports optional preconditioning.
- Since:
- 2.0
-
-
Field Summary
-
Fields inherited from class org.apache.commons.math.optimization.general.AbstractScalarDifferentiableOptimizer
DEFAULT_MAX_ITERATIONS
-
-
Constructor Summary
Constructors Constructor Description NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)
Simple constructor with default settings.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
setInitialStep(double initialStep)
Set the initial step used to bracket the optimum in line search.void
setLineSearchSolver(UnivariateRealSolver lineSearchSolver)
Set the solver to use during line search.void
setPreconditioner(Preconditioner preconditioner)
Set the preconditioner.-
Methods inherited from class org.apache.commons.math.optimization.general.AbstractScalarDifferentiableOptimizer
getConvergenceChecker, getEvaluations, getGradientEvaluations, getIterations, getMaxEvaluations, getMaxIterations, optimize, setConvergenceChecker, setMaxEvaluations, setMaxIterations
-
-
-
-
Constructor Detail
-
NonLinearConjugateGradientOptimizer
public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)
Simple constructor with default settings.The convergence check is set to a
SimpleVectorialValueChecker
and the maximal number of iterations is set toAbstractScalarDifferentiableOptimizer.DEFAULT_MAX_ITERATIONS
.- Parameters:
updateFormula
- formula to use for updating the β parameter, must be one ofConjugateGradientFormula.FLETCHER_REEVES
orConjugateGradientFormula.POLAK_RIBIERE
-
-
Method Detail
-
setPreconditioner
public void setPreconditioner(Preconditioner preconditioner)
Set the preconditioner.- Parameters:
preconditioner
- preconditioner to use for next optimization, may be null to remove an already registered preconditioner
-
setLineSearchSolver
public void setLineSearchSolver(UnivariateRealSolver lineSearchSolver)
Set the solver to use during line search.- Parameters:
lineSearchSolver
- solver to use during line search, may be null to remove an already registered solver and fall back to the defaultBrent solver
.
-
setInitialStep
public void setInitialStep(double initialStep)
Set the initial step used to bracket the optimum in line search.The initial step is a factor with respect to the search direction, which itself is roughly related to the gradient of the function
- Parameters:
initialStep
- initial step used to bracket the optimum in line search, if a non-positive value is used, the initial step is reset to its default value of 1.0
-
-