Interface UnivariateRealSolver

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