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.

  • Method Details

    • 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:
      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.
      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
      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
      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, 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:
      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
      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, 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
      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:
      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:
      IllegalStateException - if there is no result available, either because no result was yet computed or the last attempt failed.