org.apache.commons.math3.optim.univariate
Class BracketFinder

java.lang.Object
  extended by org.apache.commons.math3.optim.univariate.BracketFinder

public class BracketFinder
extends Object

Provide an interval that brackets a local optimum of a function. This code is based on a Python implementation (from SciPy, module optimize.py v0.5).

Since:
2.2
Version:
$Id: BracketFinder.java 1435539 2013-01-19 13:27:24Z tn $

Field Summary
private static double EPS_MIN
          Tolerance to avoid division by zero.
private  Incrementor evaluations
          Counter for function evaluations.
private  double fHi
          Function value at hi.
private  double fLo
          Function value at lo.
private  double fMid
          Function value at mid.
private static double GOLD
          Golden section.
private  double growLimit
          Factor for expanding the interval.
private  double hi
          Higher bound of the bracket.
private  double lo
          Lower bound of the bracket.
private  double mid
          Point inside the bracket.
 
Constructor Summary
BracketFinder()
          Constructor with default values 100, 50 (see the other constructor).
BracketFinder(double growLimit, int maxEvaluations)
          Create a bracketing interval finder.
 
Method Summary
private  double eval(UnivariateFunction f, double x)
           
 int getEvaluations()
           
 double getFHi()
          Get function value at getHi().
 double getFLo()
          Get function value at getLo().
 double getFMid()
          Get function value at getMid().
 double getHi()
           
 double getLo()
           
 int getMaxEvaluations()
           
 double getMid()
           
 void search(UnivariateFunction func, GoalType goal, double xA, double xB)
          Search new points that bracket a local optimum of the function.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EPS_MIN

private static final double EPS_MIN
Tolerance to avoid division by zero.

See Also:
Constant Field Values

GOLD

private static final double GOLD
Golden section.

See Also:
Constant Field Values

growLimit

private final double growLimit
Factor for expanding the interval.


evaluations

private final Incrementor evaluations
Counter for function evaluations.


lo

private double lo
Lower bound of the bracket.


hi

private double hi
Higher bound of the bracket.


mid

private double mid
Point inside the bracket.


fLo

private double fLo
Function value at lo.


fHi

private double fHi
Function value at hi.


fMid

private double fMid
Function value at mid.

Constructor Detail

BracketFinder

public BracketFinder()
Constructor with default values 100, 50 (see the other constructor).


BracketFinder

public BracketFinder(double growLimit,
                     int maxEvaluations)
Create a bracketing interval finder.

Parameters:
growLimit - Expanding factor.
maxEvaluations - Maximum number of evaluations allowed for finding a bracketing interval.
Method Detail

search

public void search(UnivariateFunction func,
                   GoalType goal,
                   double xA,
                   double xB)
Search new points that bracket a local optimum of the function.

Parameters:
func - Function whose optimum should be bracketed.
goal - Goal type.
xA - Initial point.
xB - Initial point.
Throws:
TooManyEvaluationsException - if the maximum number of evaluations is exceeded.

getMaxEvaluations

public int getMaxEvaluations()
Returns:
the number of evalutations.

getEvaluations

public int getEvaluations()
Returns:
the number of evalutations.

getLo

public double getLo()
Returns:
the lower bound of the bracket.
See Also:
getFLo()

getFLo

public double getFLo()
Get function value at getLo().

Returns:
function value at getLo()

getHi

public double getHi()
Returns:
the higher bound of the bracket.
See Also:
getFHi()

getFHi

public double getFHi()
Get function value at getHi().

Returns:
function value at getHi()

getMid

public double getMid()
Returns:
a point in the middle of the bracket.
See Also:
getFMid()

getFMid

public double getFMid()
Get function value at getMid().

Returns:
function value at getMid()

eval

private double eval(UnivariateFunction f,
                    double x)
Parameters:
f - Function.
x - Argument.
Returns:
f(x)
Throws:
TooManyEvaluationsException - if the maximal number of evaluations is exceeded.


Copyright (c) 2003-2013 Apache Software Foundation