com.webcab.ejb.math.optimization.unidimensional
Class BrentLocate
java.lang.Object
|
+--com.webcab.ejb.math.optimization.unidimensional.BrentLocate
- All Implemented Interfaces:
- LocateAlgorithm, Serializable
- public class BrentLocate
- extends Object
- implements LocateAlgorithm
Brent's algorithm for general functions.
This is a general iterative method that searches the extremum using an adaptive algorithm
(Brent's algorithm) that uses a combination of golden section search and inverse parabolic
interpolation.
- See Also:
LocateAlgorithm,
LinearLocate,
BrentDerivLocate,
ParabolicIterativeLocate,
CubicDerivLocate,
ParabolicLocate,
Serialized Form
|
Method Summary |
double |
locate(Bracket br,
UniDimensionalFunction f,
double tol,
int maxiter)
Shrinks the bracketing interval until a satisfactory approximation for the extremum it contains can be found. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BrentLocate
public BrentLocate()
locate
public double locate(Bracket br,
UniDimensionalFunction f,
double tol,
int maxiter)
throws TooManyUniDimensionalIterationsException,
InvalidUniDimensionalFunctionException
- Shrinks the bracketing interval until a satisfactory approximation for the extremum it contains can be found.
- Specified by:
locate in interface LocateAlgorithm
- Parameters:
br - The bracket with all three points initialized.f - The function.tol - The tolerance used as a termination criteria.maxiter - If the number of iterations exceeds this number
TooManyUniDimensionalIterationsException will be
thrown.
- Returns:
- The approximation for the point where the function has an extremum.
- Throws:
TooManyUniDimensionalIterationsException - thrown if the number of iterations in locate
algorithms is greater than maxiter.
InvalidUniDimensionalFunctionException - thrown if the user function returns invalid
values like infinity or NaN.