Package pal.math

Class UnivariateMinimum


  • public class UnivariateMinimum
    extends java.lang.Object
    minimization of a real-valued function of one variable without using derivatives.

    algorithm: Brent's golden section method (Richard P. Brent. 1973. Algorithms for finding zeros and extrema of functions without calculating derivatives. Prentice-Hall.)

    Version:
    $Id: UnivariateMinimum.java,v 1.9 2003/05/14 05:53:36 matt Exp $
    Author:
    Korbinian Strimmer
    • Field Summary

      Fields 
      Modifier and Type Field Description
      double f2minx
      curvature at minimum
      double fminx
      function value at minimum
      int maxFun
      maximum number of function evaluations (default 0 indicates no limit on calls)
      double minx
      last minimum
      int numFun
      total number of function evaluations neccessary
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double findMinimum​(double x, UnivariateFunction f)
      Find minimum (first estimate given)
      double findMinimum​(double x, UnivariateFunction f, int fracDigits)
      Find minimum (first estimate given, desired number of fractional digits specified)
      double findMinimum​(UnivariateFunction f)
      Find minimum (no first estimate given)
      double findMinimum​(UnivariateFunction f, int fracDigits)
      Find minimum (no first estimate given, desired number of fractional digits specified)
      double optimize​(double x, UnivariateFunction f, double tol)
      The actual optimization routine (Brent's golden section method)
      double optimize​(double x, UnivariateFunction f, double tol, double lowerBound, double upperBound)
      The actual optimization routine (Brent's golden section method)
      double optimize​(UnivariateFunction f, double tol)
      The actual optimization routine (Brent's golden section method)
      double optimize​(UnivariateFunction f, double tol, double lowerBound, double upperBound)
      The actual optimization routine (Brent's golden section method)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • minx

        public double minx
        last minimum
      • fminx

        public double fminx
        function value at minimum
      • f2minx

        public double f2minx
        curvature at minimum
      • numFun

        public int numFun
        total number of function evaluations neccessary
      • maxFun

        public int maxFun
        maximum number of function evaluations (default 0 indicates no limit on calls)
    • Constructor Detail

      • UnivariateMinimum

        public UnivariateMinimum()
    • Method Detail

      • findMinimum

        public double findMinimum​(double x,
                                  UnivariateFunction f)
        Find minimum (first estimate given)
        Parameters:
        x - first estimate
        f - function
        Returns:
        position of minimum
      • findMinimum

        public double findMinimum​(double x,
                                  UnivariateFunction f,
                                  int fracDigits)
        Find minimum (first estimate given, desired number of fractional digits specified)
        Parameters:
        x - first estimate
        f - function
        fracDigits - desired fractional digits
        Returns:
        position of minimum
      • findMinimum

        public double findMinimum​(UnivariateFunction f)
        Find minimum (no first estimate given)
        Parameters:
        f - function
        Returns:
        position of minimum
      • findMinimum

        public double findMinimum​(UnivariateFunction f,
                                  int fracDigits)
        Find minimum (no first estimate given, desired number of fractional digits specified)
        Parameters:
        f - function
        fracDigits - desired fractional digits
        Returns:
        position of minimum
      • optimize

        public double optimize​(UnivariateFunction f,
                               double tol,
                               double lowerBound,
                               double upperBound)
        The actual optimization routine (Brent's golden section method)
        Parameters:
        f - univariate function
        tol - absolute tolerance of each parameter
        lowerBound - the lower bound of input
        upperBound - the upper bound of input
        Returns:
        position of minimum
      • optimize

        public double optimize​(UnivariateFunction f,
                               double tol)
        The actual optimization routine (Brent's golden section method)
        Parameters:
        f - univariate function
        tol - absolute tolerance of each parameter
        Returns:
        position of minimum
      • optimize

        public double optimize​(double x,
                               UnivariateFunction f,
                               double tol,
                               double lowerBound,
                               double upperBound)
        The actual optimization routine (Brent's golden section method)
        Parameters:
        x - initial guess
        f - univariate function
        tol - absolute tolerance of each parameter
        lowerBound - the lower bound of input
        upperBound - the upper bound of input
        Returns:
        position of minimum
      • optimize

        public double optimize​(double x,
                               UnivariateFunction f,
                               double tol)
        The actual optimization routine (Brent's golden section method)
        Parameters:
        x - initial guess
        f - univariate function
        tol - absolute tolerance of each parameter
        Returns:
        position of minimum