jebl.math
Class UnivariateMinimum

java.lang.Object
  extended by jebl.math.UnivariateMinimum

public class UnivariateMinimum
extends 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.)

Author:
Korbinian Strimmer

Field Summary
 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
 
Constructor Summary
UnivariateMinimum()
           
 
Method Summary
 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 note bounded by the given bounds of the function f
Returns:
position of minimum