Class AbstractUnivariateRealOptimizer
java.lang.Object
org.apache.commons.math.ConvergingAlgorithmImpl
org.apache.commons.math.optimization.univariate.AbstractUnivariateRealOptimizer
- All Implemented Interfaces:
ConvergingAlgorithm
,UnivariateRealOptimizer
- Direct Known Subclasses:
BrentOptimizer
public abstract class AbstractUnivariateRealOptimizer
extends ConvergingAlgorithmImpl
implements UnivariateRealOptimizer
Provide a default implementation for several functions useful to generic
optimizers.
- Since:
- 2.0
- Version:
- $Revision: 1070725 $ $Date: 2011-02-15 02:31:12 +0100 (mar. 15 févr. 2011) $
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected double
Value of the function at the last computed result.protected double
The last computed root.protected boolean
Indicates where a root has been computed.Fields inherited from class org.apache.commons.math.ConvergingAlgorithmImpl
absoluteAccuracy, defaultAbsoluteAccuracy, defaultMaximalIterationCount, defaultRelativeAccuracy, iterationCount, maximalIterationCount, relativeAccuracy
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Default constructor.protected
AbstractUnivariateRealOptimizer
(int defaultMaximalIterationCount, double defaultAbsoluteAccuracy) Deprecated.in 2.2. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Deprecated.in 2.2 (no alternative).protected final void
Deprecated.in 2.2 (no alternative).protected double
computeObjectiveValue
(double point) Compute the objective function value.protected double
computeObjectiveValue
(UnivariateRealFunction f, double point) Deprecated.in 2.2.protected double
Method for implementing actual optimization algorithms in derived classes.int
Get the number of evaluations of the objective function.double
Get the result of the last run of the optimizer.double
getMax()
int
Get the maximal number of functions evaluations.double
getMin()
double
Get the result of the last run of the optimizer.double
double
optimize
(UnivariateRealFunction f, GoalType goal, double min, double max) Find an optimum in the given interval.double
optimize
(UnivariateRealFunction f, GoalType goal, double min, double max, double startValue) Find an optimum in the given interval, start at startValue.protected void
setFunctionValue
(double functionValue) Set the value at the optimum.void
setMaxEvaluations
(int maxEvaluations) Set the maximal number of functions evaluations.protected final void
setResult
(double x, double fx, int iterationCount) Deprecated.in 2.2 (no alternative).Methods inherited from class org.apache.commons.math.ConvergingAlgorithmImpl
getAbsoluteAccuracy, getIterationCount, getMaximalIterationCount, getRelativeAccuracy, incrementIterationsCounter, resetAbsoluteAccuracy, resetIterationsCounter, resetMaximalIterationCount, resetRelativeAccuracy, setAbsoluteAccuracy, setMaximalIterationCount, setRelativeAccuracy
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.commons.math.ConvergingAlgorithm
getAbsoluteAccuracy, getIterationCount, getMaximalIterationCount, getRelativeAccuracy, resetAbsoluteAccuracy, resetMaximalIterationCount, resetRelativeAccuracy, setAbsoluteAccuracy, setMaximalIterationCount, setRelativeAccuracy
-
Field Details
-
resultComputed
protected boolean resultComputedIndicates where a root has been computed. -
result
protected double resultThe last computed root. -
functionValue
protected double functionValueValue of the function at the last computed result.
-
-
Constructor Details
-
AbstractUnivariateRealOptimizer
@Deprecated protected AbstractUnivariateRealOptimizer(int defaultMaximalIterationCount, double defaultAbsoluteAccuracy) Deprecated.in 2.2. Please use the "setter" methods to assign meaningful values to the maximum numbers of iterations and evaluations, and to the absolute and relative accuracy thresholds.Construct a solver with given iteration count and accuracy.- Parameters:
defaultMaximalIterationCount
- maximum number of iterationsdefaultAbsoluteAccuracy
- maximum absolute error- Throws:
IllegalArgumentException
- if f is null or the defaultAbsoluteAccuracy is not valid
-
AbstractUnivariateRealOptimizer
protected AbstractUnivariateRealOptimizer()Default constructor. To be removed once the single non-default one has been removed.
-
-
Method Details
-
checkResultComputed
Deprecated.in 2.2 (no alternative).Check whether a result has been computed.- Throws:
NoDataException
- if no result has been computed
-
getResult
public double getResult()Get the result of the last run of the optimizer.- Specified by:
getResult
in interfaceUnivariateRealOptimizer
- Returns:
- the optimum.
-
getFunctionValue
Get the result of the last run of the optimizer.- Specified by:
getFunctionValue
in interfaceUnivariateRealOptimizer
- Returns:
- the value of the function at the optimum.
- Throws:
FunctionEvaluationException
- if an error occurs evaluating the function.
-
setResult
Deprecated.in 2.2 (no alternative).Convenience function for implementations.- Parameters:
x
- the result to setfx
- the result to setiterationCount
- the iteration count to set
-
clearResult
Deprecated.in 2.2 (no alternative).Convenience function for implementations. -
setMaxEvaluations
public void setMaxEvaluations(int maxEvaluations) Set the maximal number of functions evaluations.- Specified by:
setMaxEvaluations
in interfaceUnivariateRealOptimizer
- Parameters:
maxEvaluations
- maximal number of function evaluations
-
getMaxEvaluations
public int getMaxEvaluations()Get the maximal number of functions evaluations.- Specified by:
getMaxEvaluations
in interfaceUnivariateRealOptimizer
- Returns:
- the maximal number of functions evaluations.
-
getEvaluations
public int getEvaluations()Get the number of evaluations of the objective function.The number of evaluations corresponds to the last call to the
optimize
method. It is 0 if the method has not been called yet.- Specified by:
getEvaluations
in interfaceUnivariateRealOptimizer
- Returns:
- the number of evaluations of the objective function.
-
getGoalType
- Returns:
- the optimization type.
-
getMin
public double getMin()- Returns:
- the lower of the search interval.
-
getMax
public double getMax()- Returns:
- the higher of the search interval.
-
getStartValue
public double getStartValue()- Returns:
- the initial guess.
-
computeObjectiveValue
@Deprecated protected double computeObjectiveValue(UnivariateRealFunction f, double point) throws FunctionEvaluationException Deprecated.in 2.2. Use thisreplacement
instead.Compute the objective function value.- Parameters:
f
- objective functionpoint
- point at which the objective function must be evaluated- Returns:
- objective function value at specified point
- Throws:
FunctionEvaluationException
- if the function cannot be evaluated or the maximal number of iterations is exceeded
-
computeObjectiveValue
Compute the objective function value.- Parameters:
point
- Point at which the objective function must be evaluated.- Returns:
- the objective function value at specified point.
- Throws:
FunctionEvaluationException
- if the function cannot be evaluated or the maximal number of iterations is exceeded.
-
optimize
public double optimize(UnivariateRealFunction f, GoalType goal, double min, double max, double startValue) throws MaxIterationsExceededException, FunctionEvaluationException Find an optimum in the given interval, start at startValue.An optimizer may require that the interval brackets a single optimum.
- Specified by:
optimize
in interfaceUnivariateRealOptimizer
- Parameters:
f
- the function to optimize.goal
- type of optimization goal: eitherGoalType.MAXIMIZE
orGoalType.MINIMIZE
.min
- the lower bound for the interval.max
- the upper bound for the interval.startValue
- the start value to use.- Returns:
- a value where the function is optimum.
- Throws:
FunctionEvaluationException
- if an error occurs evaluating the function.MaxIterationsExceededException
-
setFunctionValue
protected void setFunctionValue(double functionValue) Set the value at the optimum.- Parameters:
functionValue
- Value of the objective function at the optimum.
-
optimize
public double optimize(UnivariateRealFunction f, GoalType goal, double min, double max) throws MaxIterationsExceededException, FunctionEvaluationException Find an optimum in the given interval.An optimizer may require that the interval brackets a single optimum.
- Specified by:
optimize
in interfaceUnivariateRealOptimizer
- Parameters:
f
- the function to optimize.goal
- type of optimization goal: eitherGoalType.MAXIMIZE
orGoalType.MINIMIZE
.min
- the lower bound for the interval.max
- the upper bound for the interval.- Returns:
- a value where the function is optimum.
- Throws:
FunctionEvaluationException
- if an error occurs evaluating the function.MaxIterationsExceededException
-
doOptimize
Method for implementing actual optimization algorithms in derived classes. From version 3.0 onwards, this method will be abstract - i.e. concrete implementations will have to implement it. If this method is not implemented, subclasses must overrideoptimize(UnivariateRealFunction, GoalType, double, double)
.- Returns:
- the optimum.
- Throws:
MaxIterationsExceededException
- if the maximum iteration count is exceeded.FunctionEvaluationException
- if an error occurs evaluating the function.
-