Package 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

## Constructor Summary

Constructors
Constructor
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

Modifier and Type
Method
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 Details

### 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 Details

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