org.apache.commons.math.analysis.solvers
Class UnivariateRealSolverImpl

java.lang.Object
  extended by org.apache.commons.math.ConvergingAlgorithmImpl
      extended by org.apache.commons.math.analysis.solvers.UnivariateRealSolverImpl
All Implemented Interfaces:
UnivariateRealSolver, ConvergingAlgorithm
Direct Known Subclasses:
BisectionSolver, BrentSolver, LaguerreSolver, MullerSolver, NewtonSolver, RiddersSolver, SecantSolver

Deprecated. in 2.2 (to be removed in 3.0).

@Deprecated
public abstract class UnivariateRealSolverImpl
extends ConvergingAlgorithmImpl
implements UnivariateRealSolver

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
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 the UnivariateRealSolver.solve(UnivariateRealFunction, double, double) or UnivariateRealSolver.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
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 the UnivariateRealSolver.solve(UnivariateRealFunction, double, double) or UnivariateRealSolver.solve(UnivariateRealFunction, double, double, double) method.
 
Method Summary
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 sequence
 void 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 not
protected  void verifyInterval(double lower, double upper)
          Deprecated. Verifies that the endpoints specify an interval, throws IllegalArgumentException if not
protected  void verifySequence(double lower, double initial, double upper)
          Deprecated. Verifies that lower < 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.analysis.solvers.UnivariateRealSolver
solve, solve, solve, solve
 
Methods inherited from interface org.apache.commons.math.ConvergingAlgorithm
getAbsoluteAccuracy, getIterationCount, getMaximalIterationCount, getRelativeAccuracy, resetAbsoluteAccuracy, resetMaximalIterationCount, resetRelativeAccuracy, setAbsoluteAccuracy, setMaximalIterationCount, setRelativeAccuracy
 

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 the UnivariateRealSolver.solve(UnivariateRealFunction, double, double) or UnivariateRealSolver.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 the UnivariateRealSolver.solve(UnivariateRealFunction, double, double) or UnivariateRealSolver.solve(UnivariateRealFunction, double, double, double) method.

Construct a solver with given iteration count and accuracy.

Parameters:
f - the function to solve.
defaultAbsoluteAccuracy - maximum absolute error
defaultMaximalIterationCount - maximum number of iterations
Throws:
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 error
defaultMaximalIterationCount - maximum number of iterations
Throws:
IllegalArgumentException - if f is null or the defaultAbsoluteAccuracy is not valid
Method Detail

checkResultComputed

protected void checkResultComputed()
                            throws IllegalStateException
Deprecated. 
Check if a result has been computed.

Throws:
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 interface UnivariateRealSolver
Returns:
the last result.

getFunctionValue

public double getFunctionValue()
Deprecated. 
Get the result of the last run of the solver.

Specified by:
getFunctionValue in interface UnivariateRealSolver
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 interface UnivariateRealSolver
Parameters:
accuracy - the accuracy.

getFunctionValueAccuracy

public double getFunctionValueAccuracy()
Deprecated. 
Get the actual function value accuracy.

Specified by:
getFunctionValueAccuracy in interface UnivariateRealSolver
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 interface UnivariateRealSolver

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 function
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,
                    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 use
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 function
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 set
iterationCount - 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 set
fx - the result to set
iterationCount - 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 endpoint
upper - the upper endpoint
function - 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 number
mid - second number
end - 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 endpoint
upper - upper endpoint
Throws:
IllegalArgumentException

verifySequence

protected void verifySequence(double lower,
                              double initial,
                              double upper)
Deprecated. 
Verifies that lower < initial < upper throws IllegalArgumentException if not

Parameters:
lower - lower endpoint
initial - initial value
upper - upper endpoint
Throws:
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 endpoint
upper - upper endpoint
function - function
Throws:
IllegalArgumentException
FunctionEvaluationException - if an error occurs evaluating the function at the endpoints


Copyright © 2003-2011 The Apache Software Foundation. All Rights Reserved.