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 voidsetInitialStep(double initialStep)Set the initial step used to bracket the optimum in line search.voidsetLineSearchSolver(UnivariateRealSolver lineSearchSolver)Set the solver to use during line search.voidsetPreconditioner(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
SimpleVectorialValueCheckerand 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_REEVESorConjugateGradientFormula.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
 
 - 
 
 -