## Class BracketingNthOrderBrentSolver

• All Implemented Interfaces:
BaseUnivariateSolver<UnivariateFunction>, BracketedUnivariateSolver<UnivariateFunction>, UnivariateSolver

public class BracketingNthOrderBrentSolver
extends AbstractUnivariateSolver
implements BracketedUnivariateSolver<UnivariateFunction>
This class implements a modification of the Brent algorithm.

The changes with respect to the original Brent algorithm are:

• the returned value is chosen in the current interval according to user specified AllowedSolution,
• the maximal order for the invert polynomial root search is user-specified instead of being invert quadratic only

The given interval must bracket the root.

• ### Constructor Summary

Constructors
Constructor Description
BracketingNthOrderBrentSolver()
Construct a solver with default accuracy and maximal order (1e-6 and 5 respectively).
BracketingNthOrderBrentSolver​(double relativeAccuracy, double absoluteAccuracy, double functionValueAccuracy, int maximalOrder)
Construct a solver.
BracketingNthOrderBrentSolver​(double relativeAccuracy, double absoluteAccuracy, int maximalOrder)
Construct a solver.
BracketingNthOrderBrentSolver​(double absoluteAccuracy, int maximalOrder)
Construct a solver.
• ### Method Summary

All Methods
Modifier and Type Method Description
protected double doSolve()
Method for implementing actual optimization algorithms in derived classes.
int getMaximalOrder()
Get the maximal order.
double solve​(int maxEval, UnivariateFunction f, double min, double max, double startValue, AllowedSolution allowedSolution)
Solve for a zero in the given interval, start at startValue.
double solve​(int maxEval, UnivariateFunction f, double min, double max, AllowedSolution allowedSolution)
Solve for a zero in the given interval.
• ### 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

• #### BracketingNthOrderBrentSolver

public BracketingNthOrderBrentSolver()
Construct a solver with default accuracy and maximal order (1e-6 and 5 respectively).
• #### BracketingNthOrderBrentSolver

public BracketingNthOrderBrentSolver​(double absoluteAccuracy,
int maximalOrder)
throws NumberIsTooSmallException
Construct a solver.
Parameters:
absoluteAccuracy - Absolute accuracy.
maximalOrder - maximal order.
Throws:
NumberIsTooSmallException - if maximal order is lower than 2
• #### BracketingNthOrderBrentSolver

public BracketingNthOrderBrentSolver​(double relativeAccuracy,
double absoluteAccuracy,
int maximalOrder)
throws NumberIsTooSmallException
Construct a solver.
Parameters:
relativeAccuracy - Relative accuracy.
absoluteAccuracy - Absolute accuracy.
maximalOrder - maximal order.
Throws:
NumberIsTooSmallException - if maximal order is lower than 2
• #### BracketingNthOrderBrentSolver

public BracketingNthOrderBrentSolver​(double relativeAccuracy,
double absoluteAccuracy,
double functionValueAccuracy,
int maximalOrder)
throws NumberIsTooSmallException
Construct a solver.
Parameters:
relativeAccuracy - Relative accuracy.
absoluteAccuracy - Absolute accuracy.
functionValueAccuracy - Function value accuracy.
maximalOrder - maximal order.
Throws:
NumberIsTooSmallException - if maximal order is lower than 2
• ### Method Detail

• #### getMaximalOrder

public int getMaximalOrder()
Get the maximal order.
Returns:
maximal order
• #### doSolve

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

public double solve​(int maxEval,
UnivariateFunction f,
double min,
double max,
AllowedSolution allowedSolution)
throws TooManyEvaluationsException,
NumberIsTooLargeException,
NoBracketingException
Solve for a zero 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.
Specified by:
solve in interface BracketedUnivariateSolver<UnivariateFunction>
Parameters:
maxEval - Maximum number of evaluations.
f - Function to solve.
min - Lower bound for the interval.
max - Upper bound for the interval.
allowedSolution - The kind of solutions that the root-finding algorithm may accept as solutions.
Returns:
A value where the function is zero.
Throws:
TooManyEvaluationsException - if the allowed number of evaluations is exceeded.
NumberIsTooLargeException
NoBracketingException
• #### solve

public double solve​(int maxEval,
UnivariateFunction f,
double min,
double max,
double startValue,
AllowedSolution allowedSolution)
throws TooManyEvaluationsException,
NumberIsTooLargeException,
NoBracketingException
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.
Specified by:
solve in interface BracketedUnivariateSolver<UnivariateFunction>
Parameters:
maxEval - Maximum number of evaluations.
f - Function to solve.
min - Lower bound for the interval.
max - Upper bound for the interval.
startValue - Start value to use.
allowedSolution - The kind of solutions that the root-finding algorithm may accept as solutions.
Returns:
A value where the function is zero.
Throws:
TooManyEvaluationsException - if the allowed number of evaluations is exceeded.
NumberIsTooLargeException
NoBracketingException