Class BracketFinder

java.lang.Object
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
  • Field Details

    • EPS_MIN

      private static final double EPS_MIN
      Tolerance to avoid division by zero.
      See Also:
    • GOLD

      private static final double GOLD
      Golden section.
      See Also:
    • growLimit

      private final double growLimit
      Factor for expanding the interval.
    • evaluations

      private IntegerSequence.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 Details

    • BracketFinder

      public BracketFinder()
      Constructor with default values 100, 500 (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 Details

    • 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

      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

      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

      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.