org.apache.commons.math.analysis.solvers

## Interface UnivariateRealSolver

- All Superinterfaces:
    ConvergingAlgorithm
  All Known Implementing Classes:
    BisectionSolver, BrentSolver, LaguerreSolver, MullerSolver, NewtonSolver, RiddersSolver, SecantSolver, UnivariateRealSolverImpl

      public interface UnivariateRealSolver
      extends ConvergingAlgorithm

  Interface for (univariate real) rootfinding algorithms.

  Implementations will search for only one zero in the given interval.

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

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `getFunctionValue()` Get the result of the last run of the solver.
    `double` | `getFunctionValueAccuracy()` Get the actual function value accuracy.
    `double` | `getResult()` Get the result of the last run of the solver.
    `void` | `resetFunctionValueAccuracy()` Reset the actual function accuracy to the default.
    `void` | `setFunctionValueAccuracy(double accuracy)` Set the function value accuracy.
    `double` | `solve(double min, double max)` Deprecated. replaced by `solve(UnivariateRealFunction, double, double)` since 2.0
    `double` | `solve(double min, double max, double startValue)` Deprecated. replaced by `solve(UnivariateRealFunction, double, double, double)` since 2.0
    `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 startValue)` Deprecated. in 2.2 (to be removed in 3.0).

    - ### Methods inherited from interface org.apache.commons.math.ConvergingAlgorithm

      `getAbsoluteAccuracy, getIterationCount, getMaximalIterationCount, getRelativeAccuracy, resetAbsoluteAccuracy, resetMaximalIterationCount, resetRelativeAccuracy, setAbsoluteAccuracy, setMaximalIterationCount, setRelativeAccuracy`

- - ### Method Detail

    - #### setFunctionValueAccuracy

          void setFunctionValueAccuracy(double accuracy)

      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.

      Parameters:
        `accuracy` - the accuracy.
      Throws:
        `java.lang.IllegalArgumentException` - if the accuracy can't be achieved by the solver or is otherwise deemed unreasonable.

    - #### getFunctionValueAccuracy

          double getFunctionValueAccuracy()

      Get the actual function value accuracy.
      Returns:
        the accuracy

    - #### resetFunctionValueAccuracy

          void resetFunctionValueAccuracy()

      Reset the actual function accuracy to the default. The default value is provided by the solver implementation.

    - #### solve

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

      Deprecated. replaced by `solve(UnivariateRealFunction, double, double)` since 2.0
      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
        `java.lang.IllegalArgumentException` - if min > max or the endpoints do not satisfy the requirements specified by the solver

    - #### solve

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

      Deprecated. in 2.2 (to be removed in 3.0).
      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:
        `f` - the function to solve.
        `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
        `java.lang.IllegalArgumentException` - if min > max or the endpoints do not satisfy the requirements specified by the solver
      Since:
        2.0

    - #### solve

          @Deprecated
          double solve(double min,
                                double max,
                                double startValue)
                       throws ConvergenceException,
                              FunctionEvaluationException,
                              java.lang.IllegalArgumentException

      Deprecated. replaced by `solve(UnivariateRealFunction, double, double, double)` since 2.0
      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.
        `startValue` - 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
        `java.lang.IllegalArgumentException` - if min > max or the arguments do not satisfy the requirements specified by the solver

    - #### solve

          @Deprecated
          double solve(UnivariateRealFunction f,
                                double min,
                                double max,
                                double startValue)
                       throws ConvergenceException,
                              FunctionEvaluationException,
                              java.lang.IllegalArgumentException

      Deprecated. in 2.2 (to be removed in 3.0).
      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:
        `f` - the function to solve.
        `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 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
        `java.lang.IllegalArgumentException` - if min > max or the arguments do not satisfy the requirements specified by the solver
      Since:
        2.0

    - #### getResult

          double getResult()

      Get the result of the last run of the solver.
      Returns:
        the last result.
      Throws:
        `java.lang.IllegalStateException` - if there is no result available, either because no result was yet computed or the last attempt failed.

    - #### getFunctionValue

          double getFunctionValue()

      Get the result of the last run of the solver.
      Returns:
        the value of the function at the last result.
      Throws:
        `java.lang.IllegalStateException` - if there is no result available, either because no result was yet computed or the last attempt failed.

Copyright (c) 2003-2013 Apache Software Foundation