Class SecantSolver

  • All Implemented Interfaces:
    BaseUnivariateSolver<UnivariateFunction>, UnivariateSolver

    public class SecantSolver
    extends AbstractUnivariateSolver
    Implements the Secant method for root-finding (approximating a zero of a univariate real function). The solution that is maintained is not bracketed, and as such convergence is not guaranteed.

    Implementation based on the following article: M. Dowell and P. Jarratt, A modified regula falsi method for computing the root of an equation, BIT Numerical Mathematics, volume 11, number 2, pages 168-174, Springer, 1971.

    Note that since release 3.0 this class implements the actual Secant algorithm, and not a modified one. As such, the 3.0 version is not backwards compatible with previous versions. To use an algorithm similar to the pre-3.0 releases, use the Illinois algorithm or the Pegasus algorithm.

    • Field Detail

      • DEFAULT_ABSOLUTE_ACCURACY

        protected static final double DEFAULT_ABSOLUTE_ACCURACY
        Default absolute accuracy.
        See Also:
        Constant Field Values
    • Constructor Detail

      • SecantSolver

        public SecantSolver()
        Construct a solver with default accuracy (1e-6).
      • SecantSolver

        public SecantSolver​(double absoluteAccuracy)
        Construct a solver.
        Parameters:
        absoluteAccuracy - absolute accuracy
      • SecantSolver

        public SecantSolver​(double relativeAccuracy,
                            double absoluteAccuracy)
        Construct a solver.
        Parameters:
        relativeAccuracy - relative accuracy
        absoluteAccuracy - absolute accuracy