WebCab Optimization
v2.6
(J2EE Edition)

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

Constructor Summary
BrentLocate()
           
 
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
 

Constructor Detail

BrentLocate

public BrentLocate()
Method Detail

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.

WebCab Optimization
v2.6
(J2EE Edition)