## 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: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $

Method Summary
`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)` Solve for a zero root in the given interval.
`double` `solve(UnivariateRealFunction f, double min, double max, double startValue)` Solve for a zero in the given interval, start at startValue.

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

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

  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

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

  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-2010 Apache Software Foundation