Class UnivariateRealSolverImpl
- java.lang.Object
-
- org.apache.commons.math.ConvergingAlgorithmImpl
-
- org.apache.commons.math.analysis.solvers.UnivariateRealSolverImpl
-
- All Implemented Interfaces:
UnivariateRealSolver
,ConvergingAlgorithm
- Direct Known Subclasses:
BisectionSolver
,BrentSolver
,LaguerreSolver
,MullerSolver
,NewtonSolver
,RiddersSolver
,SecantSolver
@Deprecated public abstract class UnivariateRealSolverImpl extends ConvergingAlgorithmImpl implements UnivariateRealSolver
Deprecated.in 2.2 (to be removed in 3.0).Provide a default implementation for several functions useful to generic solvers.- Version:
- $Revision: 1070725 $ $Date: 2011-02-15 02:31:12 +0100 (mar. 15 févr. 2011) $
-
-
Field Summary
Fields Modifier and Type Field Description protected double
defaultFunctionValueAccuracy
Deprecated.Default maximum error of function.protected UnivariateRealFunction
f
Deprecated.as of 2.0 the function to solve is passed as an argument to theUnivariateRealSolver.solve(UnivariateRealFunction, double, double)
orUnivariateRealSolver.solve(UnivariateRealFunction, double, double, double)
method.protected double
functionValue
Deprecated.Value of the function at the last computed result.protected double
functionValueAccuracy
Deprecated.Maximum error of function.protected double
result
Deprecated.The last computed root.protected boolean
resultComputed
Deprecated.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
Constructors Modifier Constructor Description protected
UnivariateRealSolverImpl(int defaultMaximalIterationCount, double defaultAbsoluteAccuracy)
Deprecated.Construct a solver with given iteration count and accuracy.protected
UnivariateRealSolverImpl(UnivariateRealFunction f, int defaultMaximalIterationCount, double defaultAbsoluteAccuracy)
Deprecated.as of 2.0 the function to solve is passed as an argument to theUnivariateRealSolver.solve(UnivariateRealFunction, double, double)
orUnivariateRealSolver.solve(UnivariateRealFunction, double, double, double)
method.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
checkResultComputed()
Deprecated.Check if a result has been computed.protected void
clearResult()
Deprecated.Convenience function for implementations.double
getFunctionValue()
Deprecated.Get the result of the last run of the solver.double
getFunctionValueAccuracy()
Deprecated.Get the actual function value accuracy.double
getResult()
Deprecated.Get the result of the last run of the solver.protected boolean
isBracketing(double lower, double upper, UnivariateRealFunction function)
Deprecated.Returns true iff the function takes opposite signs at the endpoints.protected boolean
isSequence(double start, double mid, double end)
Deprecated.Returns true if the arguments form a (strictly) increasing sequencevoid
resetFunctionValueAccuracy()
Deprecated.Reset the actual function accuracy to the default.void
setFunctionValueAccuracy(double accuracy)
Deprecated.Set the function value accuracy.protected void
setResult(double x, double fx, int iterationCount)
Deprecated.Convenience function for implementations.protected void
setResult(double newResult, int iterationCount)
Deprecated.Convenience function for implementations.double
solve(int maxEval, UnivariateRealFunction function, double min, double max)
Deprecated.Solve for a zero root in the given interval.double
solve(int maxEval, UnivariateRealFunction function, double min, double max, double startValue)
Deprecated.Solve for a zero in the given interval, start at startValue.protected void
verifyBracketing(double lower, double upper, UnivariateRealFunction function)
Deprecated.Verifies that the endpoints specify an interval and the function takes opposite signs at the endpoints, throws IllegalArgumentException if notprotected void
verifyInterval(double lower, double upper)
Deprecated.Verifies that the endpoints specify an interval, throws IllegalArgumentException if notprotected void
verifySequence(double lower, double initial, double upper)
Deprecated.Verifies thatlower < initial < upper
throws IllegalArgumentException if not-
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
-
Methods inherited from interface org.apache.commons.math.analysis.solvers.UnivariateRealSolver
solve, solve, solve, solve
-
-
-
-
Field Detail
-
functionValueAccuracy
protected double functionValueAccuracy
Deprecated.Maximum error of function.
-
defaultFunctionValueAccuracy
protected double defaultFunctionValueAccuracy
Deprecated.Default maximum error of function.
-
resultComputed
protected boolean resultComputed
Deprecated.Indicates where a root has been computed.
-
result
protected double result
Deprecated.The last computed root.
-
functionValue
protected double functionValue
Deprecated.Value of the function at the last computed result.
-
f
@Deprecated protected UnivariateRealFunction f
Deprecated.as of 2.0 the function to solve is passed as an argument to theUnivariateRealSolver.solve(UnivariateRealFunction, double, double)
orUnivariateRealSolver.solve(UnivariateRealFunction, double, double, double)
method.The function to solve.
-
-
Constructor Detail
-
UnivariateRealSolverImpl
@Deprecated protected UnivariateRealSolverImpl(UnivariateRealFunction f, int defaultMaximalIterationCount, double defaultAbsoluteAccuracy)
Deprecated.as of 2.0 the function to solve is passed as an argument to theUnivariateRealSolver.solve(UnivariateRealFunction, double, double)
orUnivariateRealSolver.solve(UnivariateRealFunction, double, double, double)
method.Construct a solver with given iteration count and accuracy.- Parameters:
f
- the function to solve.defaultAbsoluteAccuracy
- maximum absolute errordefaultMaximalIterationCount
- maximum number of iterations- Throws:
java.lang.IllegalArgumentException
- if f is null or the defaultAbsoluteAccuracy is not valid
-
UnivariateRealSolverImpl
protected UnivariateRealSolverImpl(int defaultMaximalIterationCount, double defaultAbsoluteAccuracy)
Deprecated.Construct a solver with given iteration count and accuracy.- Parameters:
defaultAbsoluteAccuracy
- maximum absolute errordefaultMaximalIterationCount
- maximum number of iterations- Throws:
java.lang.IllegalArgumentException
- if f is null or the defaultAbsoluteAccuracy is not valid
-
-
Method Detail
-
checkResultComputed
protected void checkResultComputed() throws java.lang.IllegalStateException
Deprecated.Check if a result has been computed.- Throws:
java.lang.IllegalStateException
- if no result has been computed
-
getResult
public double getResult()
Deprecated.Get the result of the last run of the solver.- Specified by:
getResult
in interfaceUnivariateRealSolver
- Returns:
- the last result.
-
getFunctionValue
public double getFunctionValue()
Deprecated.Get the result of the last run of the solver.- Specified by:
getFunctionValue
in interfaceUnivariateRealSolver
- Returns:
- the value of the function at the last result.
-
setFunctionValueAccuracy
public void setFunctionValueAccuracy(double accuracy)
Deprecated.Set the function value accuracy.This is used to determine when an evaluated function value or some other value which is used as divisor is zero.
This is a safety guard and it shouldn't be necessary to change this in general.
- Specified by:
setFunctionValueAccuracy
in interfaceUnivariateRealSolver
- Parameters:
accuracy
- the accuracy.
-
getFunctionValueAccuracy
public double getFunctionValueAccuracy()
Deprecated.Get the actual function value accuracy.- Specified by:
getFunctionValueAccuracy
in interfaceUnivariateRealSolver
- Returns:
- the accuracy
-
resetFunctionValueAccuracy
public void resetFunctionValueAccuracy()
Deprecated.Reset the actual function accuracy to the default. The default value is provided by the solver implementation.- Specified by:
resetFunctionValueAccuracy
in interfaceUnivariateRealSolver
-
solve
public double solve(int maxEval, UnivariateRealFunction function, double min, double max) throws ConvergenceException, FunctionEvaluationException
Deprecated.Solve for a zero root in the given interval.A solver may require that the interval brackets a single zero root. Solvers that do require bracketing should be able to handle the case where one of the endpoints is itself a root.
- Parameters:
function
- the function to solve.min
- the lower bound for the interval.max
- the upper bound for the interval.maxEval
- Maximum number of evaluations.- Returns:
- a value where the function is zero
- Throws:
ConvergenceException
- if the maximum iteration count is exceeded or the solver detects convergence problems otherwise.FunctionEvaluationException
- if an error occurs evaluating the functionjava.lang.IllegalArgumentException
- if min > max or the endpoints do not satisfy the requirements specified by the solver- Since:
- 2.2
-
solve
public double solve(int maxEval, UnivariateRealFunction function, double min, double max, double startValue) throws ConvergenceException, FunctionEvaluationException, java.lang.IllegalArgumentException
Deprecated.Solve for a zero in the given interval, start at startValue.A solver may require that the interval brackets a single zero root. Solvers that do require bracketing should be able to handle the case where one of the endpoints is itself a root.
- Parameters:
function
- the function to solve.min
- the lower bound for the interval.max
- the upper bound for the interval.startValue
- the start value to usemaxEval
- Maximum number of evaluations.- Returns:
- a value where the function is zero
- Throws:
ConvergenceException
- if the maximum iteration count is exceeded or the solver detects convergence problems otherwise.FunctionEvaluationException
- if an error occurs evaluating the functionjava.lang.IllegalArgumentException
- if min > max or the arguments do not satisfy the requirements specified by the solver- Since:
- 2.2
-
setResult
protected final void setResult(double newResult, int iterationCount)
Deprecated.Convenience function for implementations.- Parameters:
newResult
- the result to setiterationCount
- the iteration count to set
-
setResult
protected final void setResult(double x, double fx, int iterationCount)
Deprecated.Convenience function for implementations.- Parameters:
x
- the result to setfx
- the result to setiterationCount
- the iteration count to set
-
clearResult
protected final void clearResult()
Deprecated.Convenience function for implementations.
-
isBracketing
protected boolean isBracketing(double lower, double upper, UnivariateRealFunction function) throws FunctionEvaluationException
Deprecated.Returns true iff the function takes opposite signs at the endpoints.- Parameters:
lower
- the lower endpointupper
- the upper endpointfunction
- the function- Returns:
- true if f(lower) * f(upper) < 0
- Throws:
FunctionEvaluationException
- if an error occurs evaluating the function at the endpoints
-
isSequence
protected boolean isSequence(double start, double mid, double end)
Deprecated.Returns true if the arguments form a (strictly) increasing sequence- Parameters:
start
- first numbermid
- second numberend
- third number- Returns:
- true if the arguments form an increasing sequence
-
verifyInterval
protected void verifyInterval(double lower, double upper)
Deprecated.Verifies that the endpoints specify an interval, throws IllegalArgumentException if not- Parameters:
lower
- lower endpointupper
- upper endpoint- Throws:
java.lang.IllegalArgumentException
-
verifySequence
protected void verifySequence(double lower, double initial, double upper)
Deprecated.Verifies thatlower < initial < upper
throws IllegalArgumentException if not- Parameters:
lower
- lower endpointinitial
- initial valueupper
- upper endpoint- Throws:
java.lang.IllegalArgumentException
-
verifyBracketing
protected void verifyBracketing(double lower, double upper, UnivariateRealFunction function) throws FunctionEvaluationException
Deprecated.Verifies that the endpoints specify an interval and the function takes opposite signs at the endpoints, throws IllegalArgumentException if not- Parameters:
lower
- lower endpointupper
- upper endpointfunction
- function- Throws:
java.lang.IllegalArgumentException
FunctionEvaluationException
- if an error occurs evaluating the function at the endpoints
-
-