org.apache.commons.math.analysis.solvers

## Class RiddersSolver

- java.lang.Object
- - org.apache.commons.math.ConvergingAlgorithmImpl
  - - org.apache.commons.math.analysis.solvers.UnivariateRealSolverImpl
    - - org.apache.commons.math.analysis.solvers.RiddersSolver

- All Implemented Interfaces:
    UnivariateRealSolver, ConvergingAlgorithm

      public class RiddersSolver
      extends UnivariateRealSolverImpl

  Implements the Ridders' Method for root finding of real univariate functions. For reference, see C. Ridders, A new algorithm for computing a single root of a real continuous function , IEEE Transactions on Circuits and Systems, 26 (1979), 979 - 980.

  The function should be continuous but not necessarily smooth.

  Since:
    1.2
  Version:
    $Revision: 1070725 $ $Date: 2011-02-15 02:31:12 +0100 (mar. 15 févr. 2011) $

- - ### Field Summary

    - ### Fields inherited from class org.apache.commons.math.analysis.solvers.UnivariateRealSolverImpl

      `defaultFunctionValueAccuracy, f, functionValue, functionValueAccuracy, result, resultComputed`

    - ### Fields inherited from class org.apache.commons.math.ConvergingAlgorithmImpl

      `absoluteAccuracy, defaultAbsoluteAccuracy, defaultMaximalIterationCount, defaultRelativeAccuracy, iterationCount, maximalIterationCount, relativeAccuracy`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RiddersSolver()` Deprecated. in 2.2
    `RiddersSolver(UnivariateRealFunction f)` Deprecated. as of 2.0 the function to solve is passed as an argument to the `solve(UnivariateRealFunction, double, double)` or `UnivariateRealSolver.solve(UnivariateRealFunction, double, double, double)` method.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `solve(double min, double max)` Deprecated.
    `double` | `solve(double min, double max, double initial)` Deprecated.
    `double` | `solve(int maxEval, UnivariateRealFunction f, double min, double max)` Find a root in the given interval.
    `double` | `solve(int maxEval, UnivariateRealFunction f, double min, double max, double initial)` Find a root in the given interval with initial value.
    `double` | `solve(UnivariateRealFunction f, double min, double max)` Deprecated. in 2.2 (to be removed in 3.0).
    `double` | `solve(UnivariateRealFunction f, double min, double max, double initial)` Deprecated. in 2.2 (to be removed in 3.0).

    - ### Methods inherited from class org.apache.commons.math.analysis.solvers.UnivariateRealSolverImpl

      `checkResultComputed, clearResult, getFunctionValue, getFunctionValueAccuracy, getResult, isBracketing, isSequence, resetFunctionValueAccuracy, setFunctionValueAccuracy, setResult, setResult, verifyBracketing, verifyInterval, verifySequence`

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

- - ### Constructor Detail

    - #### RiddersSolver

          @Deprecated
          public RiddersSolver(UnivariateRealFunction f)

      Deprecated. as of 2.0 the function to solve is passed as an argument to the `solve(UnivariateRealFunction, double, double)` or `UnivariateRealSolver.solve(UnivariateRealFunction, double, double, double)` method.
      Construct a solver for the given function.
      Parameters:
        `f` - function to solve

    - #### RiddersSolver

          @Deprecated
          public RiddersSolver()

      Deprecated. in 2.2
      Construct a solver.

  - ### Method Detail

    - #### solve

          @Deprecated
          public double solve(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:
        `min` - the lower bound for the interval.
        `max` - the upper bound for the interval.
      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

    - #### solve

          @Deprecated
          public double solve(double min,
                                double max,
                                double initial)
                       throws ConvergenceException,
                              FunctionEvaluationException

      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:
        `min` - the lower bound for the interval.
        `max` - the upper bound for the interval.
        `initial` - the start value to use
      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

    - #### solve

          public double solve(int maxEval,
                     UnivariateRealFunction f,
                     double min,
                     double max,
                     double initial)
                       throws MaxIterationsExceededException,
                              FunctionEvaluationException

      Find a root in the given interval with initial value.

      Requires bracketing condition.

      Overrides:
        `solve` in class `UnivariateRealSolverImpl`
      Parameters:
        `f` - the function to solve
        `min` - the lower bound for the interval
        `max` - the upper bound for the interval
        `initial` - the start value to use
        `maxEval` - Maximum number of evaluations.
      Returns:
        the point at which the function value is zero
      Throws:
        `MaxIterationsExceededException` - if the maximum iteration count is exceeded
        `FunctionEvaluationException` - if an error occurs evaluating the function
        `java.lang.IllegalArgumentException` - if any parameters are invalid

    - #### solve

          @Deprecated
          public double solve(UnivariateRealFunction f,
                                double min,
                                double max,
                                double initial)
                       throws MaxIterationsExceededException,
                              FunctionEvaluationException

      Deprecated. in 2.2 (to be removed in 3.0).
      Find a root in the given interval with initial value.

      Requires bracketing condition.

      Parameters:
        `f` - the function to solve
        `min` - the lower bound for the interval
        `max` - the upper bound for the interval
        `initial` - the start value to use
      Returns:
        the point at which the function value is zero
      Throws:
        `MaxIterationsExceededException` - if the maximum iteration count is exceeded
        `FunctionEvaluationException` - if an error occurs evaluating the function
        `java.lang.IllegalArgumentException` - if any parameters are invalid

    - #### solve

          public double solve(int maxEval,
                     UnivariateRealFunction f,
                     double min,
                     double max)
                       throws MaxIterationsExceededException,
                              FunctionEvaluationException

      Find a root in the given interval.

      Requires bracketing condition.

      Overrides:
        `solve` in class `UnivariateRealSolverImpl`
      Parameters:
        `f` - the function to solve
        `min` - the lower bound for the interval
        `max` - the upper bound for the interval
        `maxEval` - Maximum number of evaluations.
      Returns:
        the point at which the function value is zero
      Throws:
        `MaxIterationsExceededException` - if the maximum iteration count is exceeded
        `FunctionEvaluationException` - if an error occurs evaluating the function
        `java.lang.IllegalArgumentException` - if any parameters are invalid

    - #### solve

          @Deprecated
          public double solve(UnivariateRealFunction f,
                                double min,
                                double max)
                       throws MaxIterationsExceededException,
                              FunctionEvaluationException

      Deprecated. in 2.2 (to be removed in 3.0).
      Find a root in the given interval.

      Requires bracketing condition.

      Parameters:
        `f` - the function to solve
        `min` - the lower bound for the interval
        `max` - the upper bound for the interval
      Returns:
        the point at which the function value is zero
      Throws:
        `MaxIterationsExceededException` - if the maximum iteration count is exceeded
        `FunctionEvaluationException` - if an error occurs evaluating the function
        `java.lang.IllegalArgumentException` - if any parameters are invalid

Copyright (c) 2003-2013 Apache Software Foundation