Class BrentSolver
- java.lang.Object
-
- org.apache.commons.math4.legacy.analysis.solvers.BaseAbstractUnivariateSolver<UnivariateFunction>
-
- org.apache.commons.math4.legacy.analysis.solvers.AbstractUnivariateSolver
-
- org.apache.commons.math4.legacy.analysis.solvers.BrentSolver
-
- All Implemented Interfaces:
BaseUnivariateSolver<UnivariateFunction>,UnivariateSolver
public class BrentSolver extends AbstractUnivariateSolver
This class implements the Brent algorithm for finding zeros of real univariate functions. The function should be continuous but not necessarily smooth. Thesolvemethod returns a zeroxof the functionfin the given interval[a, b]to within a tolerance2 eps abs(x) + twhereepsis the relative accuracy andtis the absolute accuracy.The given interval must bracket the root.
The reference implementation is given in chapter 4 of
Algorithms for Minimization Without Derivatives, Richard P. Brent, Dover, 2002
- See Also:
BaseAbstractUnivariateSolver
-
-
Constructor Summary
Constructors Constructor Description BrentSolver()Construct a solver with default absolute accuracy (1e-6).BrentSolver(double absoluteAccuracy)Construct a solver.BrentSolver(double relativeAccuracy, double absoluteAccuracy)Construct a solver.BrentSolver(double relativeAccuracy, double absoluteAccuracy, double functionValueAccuracy)Construct a solver.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected doubledoSolve()Method for implementing actual optimization algorithms in derived classes.-
Methods inherited from class org.apache.commons.math4.legacy.analysis.solvers.BaseAbstractUnivariateSolver
computeObjectiveValue, getAbsoluteAccuracy, getEvaluations, getFunctionValueAccuracy, getMax, getMaxEvaluations, 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.apache.commons.math4.legacy.analysis.solvers.BaseUnivariateSolver
getAbsoluteAccuracy, getEvaluations, getFunctionValueAccuracy, getMaxEvaluations, getRelativeAccuracy, solve, solve, solve
-
-
-
-
Constructor Detail
-
BrentSolver
public BrentSolver()
Construct a solver with default absolute accuracy (1e-6).
-
BrentSolver
public BrentSolver(double absoluteAccuracy)
Construct a solver.- Parameters:
absoluteAccuracy- Absolute accuracy.
-
BrentSolver
public BrentSolver(double relativeAccuracy, double absoluteAccuracy)
Construct a solver.- Parameters:
relativeAccuracy- Relative accuracy.absoluteAccuracy- Absolute accuracy.
-
BrentSolver
public BrentSolver(double relativeAccuracy, double absoluteAccuracy, double functionValueAccuracy)
Construct a solver.- Parameters:
relativeAccuracy- Relative accuracy.absoluteAccuracy- Absolute accuracy.functionValueAccuracy- Function value accuracy.- See Also:
BaseAbstractUnivariateSolver(double,double,double)
-
-
Method Detail
-
doSolve
protected double doSolve()
Method for implementing actual optimization algorithms in derived classes.- Specified by:
doSolvein classBaseAbstractUnivariateSolver<UnivariateFunction>- Returns:
- the root.
-
-