org.apache.commons.math4.analysis.solvers

## Class 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. The solve method returns a zero x of the function f in the given interval [a, b] to within a tolerance 2 eps abs(x) + t where eps is the relative accuracy and t is 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 and 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
Modifier and Type Method and Description
protected double doSolve()
Method for implementing actual optimization algorithms in derived classes.
• ### Methods inherited from class org.apache.commons.math4.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.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.
• ### Method Detail

• #### doSolve

protected double doSolve()
throws NoBracketingException,
TooManyEvaluationsException,
NumberIsTooLargeException
Method for implementing actual optimization algorithms in derived classes.
Specified by:
doSolve in class BaseAbstractUnivariateSolver<UnivariateFunction>
Returns:
the root.
Throws:
NoBracketingException - if the initial search interval does not bracket a root and the solver requires it.
TooManyEvaluationsException - if the maximal number of evaluations is exceeded.
NumberIsTooLargeException

Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.