public class UnivariateMinimum
extends java.lang.Object
algorithm: Brent's golden section method (Richard P. Brent. 1973. Algorithms for finding zeros and extrema of functions without calculating derivatives. Prentice-Hall.)
| 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
|
| Constructor | Description |
|---|---|
UnivariateMinimum() |
| 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)
|
public double minx
public double fminx
public double f2minx
public int numFun
public int maxFun
public double findMinimum(double x,
UnivariateFunction f)
x - first estimatef - functionpublic double findMinimum(double x,
UnivariateFunction f,
int fracDigits)
x - first estimatef - functionfracDigits - desired fractional digitspublic double findMinimum(UnivariateFunction f)
f - functionpublic double findMinimum(UnivariateFunction f, int fracDigits)
f - functionfracDigits - desired fractional digitspublic double optimize(UnivariateFunction f, double tol, double lowerBound, double upperBound)
f - univariate functiontol - absolute tolerance of each parameterlowerBound - the lower bound of inputupperBound - the upper bound of inputpublic double optimize(UnivariateFunction f, double tol)
f - univariate functiontol - absolute tolerance of each parameterpublic double optimize(double x,
UnivariateFunction f,
double tol,
double lowerBound,
double upperBound)
x - initial guessf - univariate functiontol - absolute tolerance of each parameterlowerBound - the lower bound of inputupperBound - the upper bound of inputpublic double optimize(double x,
UnivariateFunction f,
double tol)
x - initial guessf - univariate functiontol - absolute tolerance of each parameter
note bounded by the given bounds of the function fhttp://code.google.com/p/jebl2/