org.apache.commons.math3.optim.nonlinear.scalar

## Class LineSearch

- java.lang.Object
- - org.apache.commons.math3.optim.nonlinear.scalar.LineSearch

-     public class LineSearch
      extends Object

  Class for finding the minimum of the objective function along a given direction.
  Since:
    3.3
  Version:
    $Id: LineSearch.java 1573341 2014-03-02 19:38:47Z erans $

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `LineSearch(MultivariateOptimizer optimizer, double relativeTolerance, double absoluteTolerance, double initialBracketingRange)` The `BrentOptimizer` default stopping criterion uses the tolerances to check the domain (point) values, not the function values.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `UnivariatePointValuePair` | `search(double[] startPoint, double[] direction)` Finds the number `alpha` that optimizes `f(startPoint + alpha * direction)`.

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

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

- - ### Constructor Detail

    - #### LineSearch

          public LineSearch(MultivariateOptimizer optimizer,
                    double relativeTolerance,
                    double absoluteTolerance,
                    double initialBracketingRange)

      The `BrentOptimizer` default stopping criterion uses the tolerances to check the domain (point) values, not the function values. The `relativeTolerance` and `absoluteTolerance` arguments are thus passed to a `custom checker` that will use the function values.
      Parameters:
        `optimizer` - Optimizer on behalf of which the line search be performed. Its `computeObjectiveValue` method will be called by the `search` method.
        `relativeTolerance` - Search will stop when the function relative difference between successive iterations is below this value.
        `absoluteTolerance` - Search will stop when the function absolute difference between successive iterations is below this value.
        `initialBracketingRange` - Extent of the initial interval used to find an interval that brackets the optimum. If the optimized function varies a lot in the vicinity of the optimum, it may be necessary to provide a value lower than the distance between successive local minima.

  - ### Method Detail

    - #### search

          public UnivariatePointValuePair search(double[] startPoint,
                                        double[] direction)

      Finds the number `alpha` that optimizes `f(startPoint + alpha * direction)`.
      Parameters:
        `startPoint` - Starting point.
        `direction` - Search direction.
      Returns:
        the optimum.
      Throws:
        `TooManyEvaluationsException` - if the number of evaluations is exceeded.

Copyright © 2003–2014 The Apache Software Foundation. All rights reserved.