Package org.hipparchus.analysis.solvers
Class SecantSolver
java.lang.Object
org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver<UnivariateFunction>
org.hipparchus.analysis.solvers.AbstractUnivariateSolver
org.hipparchus.analysis.solvers.SecantSolver
- All Implemented Interfaces:
BaseUnivariateSolver<UnivariateFunction>
,UnivariateSolver
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 Summary
Modifier and TypeFieldDescriptionprotected static final double
Default absolute accuracy. -
Constructor Summary
ConstructorDescriptionConstruct a solver with default accuracy (1e-6).SecantSolver
(double absoluteAccuracy) Construct a solver.SecantSolver
(double relativeAccuracy, double absoluteAccuracy) Construct a solver. -
Method Summary
Modifier and TypeMethodDescriptionprotected final double
doSolve()
Method for implementing actual optimization algorithms in derived classes.Methods inherited from class org.hipparchus.analysis.solvers.BaseAbstractUnivariateSolver
computeObjectiveValue, getAbsoluteAccuracy, getEvaluations, getFunctionValueAccuracy, getMax, getMin, getRelativeAccuracy, getStartValue, incrementEvaluationCount, isBracketing, isSequence, setup, solve, solve, solve, verifyBracketing, verifyInterval, verifySequence
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.hipparchus.analysis.solvers.BaseUnivariateSolver
getAbsoluteAccuracy, getEvaluations, getFunctionValueAccuracy, getRelativeAccuracy, solve, solve, solve
-
Field Details
-
DEFAULT_ABSOLUTE_ACCURACY
protected static final double DEFAULT_ABSOLUTE_ACCURACYDefault absolute accuracy.- See Also:
-
-
Constructor Details
-
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 accuracyabsoluteAccuracy
- absolute accuracy
-
-
Method Details
-
doSolve
Method for implementing actual optimization algorithms in derived classes.- Specified by:
doSolve
in classBaseAbstractUnivariateSolver<UnivariateFunction>
- Returns:
- the root.
- Throws:
MathIllegalArgumentException
- if the initial search interval does not bracket a root and the solver requires it.MathIllegalStateException
- if the maximal number of evaluations is exceeded.
-