com.webcab.ejb.math.optimization.unidimensional
Class ParabolicIterativeLocate
java.lang.Object
|
+--com.webcab.ejb.math.optimization.unidimensional.ParabolicIterativeLocate
- All Implemented Interfaces:
- LocateAlgorithm, Serializable
- public class ParabolicIterativeLocate
- extends Object
- implements LocateAlgorithm
Iterative parabolic interpolation algorithm.
Searches a given interval through parabolic interpolation until
a the width is less then a given tolerance.
- See Also:
LocateAlgorithm,
LinearLocate,
BrentLocate,
BrentDerivLocate,
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 |
ParabolicIterativeLocate
public ParabolicIterativeLocate()
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 - used only in the iterative locate algorithms.
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.