org.apache.commons.math.analysis.solvers

## 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.
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

Fields
`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

Constructors
`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

Methods
`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