## org.apache.commons.math3.optimization.general
Class NonLinearConjugateGradientOptimizer

    java.lang.Object
      org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer<DifferentiableMultivariateFunction>
          org.apache.commons.math3.optimization.general.AbstractScalarDifferentiableOptimizer
              org.apache.commons.math3.optimization.general.NonLinearConjugateGradientOptimizer

All Implemented Interfaces:
  BaseMultivariateOptimizer<DifferentiableMultivariateFunction>, BaseOptimizer<PointValuePair>, DifferentiableMultivariateOptimizer

Deprecated. As of 3.1 (to be removed in 4.0).

    @Deprecated
    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
Version:
  $Id: NonLinearConjugateGradientOptimizer.java 1422230 2012-12-15 12:11:13Z erans $

Nested Class Summary
`static class` `NonLinearConjugateGradientOptimizer.IdentityPreconditioner` Deprecated. Default identity preconditioner.
`private class` `NonLinearConjugateGradientOptimizer.LineSearchFunction` Deprecated. Internal class for line search.

Field Summary
`private double` `initialStep` Deprecated. Initial step used to bracket the optimum in line search.
`private double[]` `point` Deprecated. Current point.
`private Preconditioner` `preconditioner` Deprecated. Preconditioner (may be null).
`private UnivariateSolver` `solver` Deprecated. solver to use in the line search (may be null).
`private ConjugateGradientFormula` `updateFormula` Deprecated. Update formula for the beta parameter.

Fields inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer
`evaluations`

Constructor Summary
`NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)` Deprecated. See `SimpleValueChecker.SimpleValueChecker()`
`NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula, ConvergenceChecker<PointValuePair> checker)` Deprecated. Constructor with default `line search solver` and `preconditioner`.
`NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula, ConvergenceChecker<PointValuePair> checker, UnivariateSolver lineSearchSolver)` Deprecated. Constructor with default `preconditioner`.
`NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula, ConvergenceChecker<PointValuePair> checker, UnivariateSolver lineSearchSolver, Preconditioner preconditioner)` Deprecated.

Method Summary
`protected PointValuePair` `doOptimize()` Deprecated. Perform the bulk of the optimization algorithm.
`private double` `findUpperBound(UnivariateFunction f, double a, double h)` Deprecated. Find the upper bound b ensuring bracketing of a root between a and b.
`void` `setInitialStep(double initialStep)` Deprecated. Set the initial step used to bracket the optimum in line search.

Methods inherited from class org.apache.commons.math3.optimization.general.AbstractScalarDifferentiableOptimizer
`computeObjectiveGradient, optimize, optimizeInternal`

Methods inherited from class org.apache.commons.math3.optimization.direct.BaseAbstractMultivariateOptimizer
`computeObjectiveValue, getConvergenceChecker, getEvaluations, getGoalType, getLowerBound, getMaxEvaluations, getStartPoint, getUpperBound, optimize, optimize, optimizeInternal`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.commons.math3.optimization.BaseMultivariateOptimizer
`optimize`

Methods inherited from interface org.apache.commons.math3.optimization.BaseOptimizer
`getConvergenceChecker, getEvaluations, getMaxEvaluations`

Field Detail

### updateFormula

    private final ConjugateGradientFormula updateFormula

  Deprecated.
  Update formula for the beta parameter.

### preconditioner

    private final Preconditioner preconditioner

  Deprecated.
  Preconditioner (may be null).

### solver

    private final UnivariateSolver solver

  Deprecated.
  solver to use in the line search (may be null).

### initialStep

    private double initialStep

  Deprecated.
  Initial step used to bracket the optimum in line search.

### point

    private double[] point

  Deprecated.
  Current point.

Constructor Detail

### NonLinearConjugateGradientOptimizer

    @Deprecated
    public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula)

  Deprecated. See `SimpleValueChecker.SimpleValueChecker()`

  Constructor with default `checker`, `line search solver` and `preconditioner`.

  Parameters:
    `updateFormula` - formula to use for updating the β parameter, must be one of `ConjugateGradientFormula.FLETCHER_REEVES` or `ConjugateGradientFormula.POLAK_RIBIERE`.

### NonLinearConjugateGradientOptimizer

    public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
                                               ConvergenceChecker<PointValuePair> checker)

  Deprecated.
  Constructor with default `line search solver` and `preconditioner`.

  Parameters:
    `updateFormula` - formula to use for updating the β parameter, must be one of `ConjugateGradientFormula.FLETCHER_REEVES` or `ConjugateGradientFormula.POLAK_RIBIERE`.
    `checker` - Convergence checker.

### NonLinearConjugateGradientOptimizer

    public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
                                               ConvergenceChecker<PointValuePair> checker,
                                               UnivariateSolver lineSearchSolver)

  Deprecated.
  Constructor with default `preconditioner`.

  Parameters:
    `updateFormula` - formula to use for updating the β parameter, must be one of `ConjugateGradientFormula.FLETCHER_REEVES` or `ConjugateGradientFormula.POLAK_RIBIERE`.
    `checker` - Convergence checker.
    `lineSearchSolver` - Solver to use during line search.

### NonLinearConjugateGradientOptimizer

    public NonLinearConjugateGradientOptimizer(ConjugateGradientFormula updateFormula,
                                               ConvergenceChecker<PointValuePair> checker,
                                               UnivariateSolver lineSearchSolver,
                                               Preconditioner preconditioner)

  Deprecated.
  Parameters:
    `updateFormula` - formula to use for updating the β parameter, must be one of `ConjugateGradientFormula.FLETCHER_REEVES` or `ConjugateGradientFormula.POLAK_RIBIERE`.
    `checker` - Convergence checker.
    `lineSearchSolver` - Solver to use during line search.
    `preconditioner` - Preconditioner.

Method Detail

### setInitialStep

    public void setInitialStep(double initialStep)

  Deprecated.
  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

### doOptimize

    protected PointValuePair doOptimize()

  Deprecated.
  Perform the bulk of the optimization algorithm.

  Specified by:
    `doOptimize` in class `BaseAbstractMultivariateOptimizer<DifferentiableMultivariateFunction>`
  Returns:
    the point/value pair giving the optimal value of the objective function.

### findUpperBound

    private double findUpperBound(UnivariateFunction f,
                                  double a,
                                  double h)

  Deprecated.
  Find the upper bound b ensuring bracketing of a root between a and b.

  Parameters:
    `f` - function whose root must be bracketed.
    `a` - lower bound of the interval.
    `h` - initial step to try.
  Returns:
    b such that f(a) and f(b) have opposite signs.
  Throws:
    `MathIllegalStateException` - if no bracket can be found.

Copyright (c) 2003-2013 Apache Software Foundation