T
 the type of the field elementspublic interface BracketedRealFieldUnivariateSolver<T extends CalculusFieldElement<T>>
(univariate real) rootfinding
algorithms
that maintain a bracketed solution. There are several advantages
to having such rootfinding algorithms:
allowed solutions
. Other rootfinding
algorithms can usually only guarantee that the solution (the root that
was found) is around the actual root.For backwards compatibility, all rootfinding algorithms must have
ANY_SIDE
as default for the allowed
solutions.
AllowedSolution
Modifier and Type  Interface and Description 

static class 
BracketedRealFieldUnivariateSolver.Interval<T extends CalculusFieldElement<T>>
An interval of a function that brackets a root.

Modifier and Type  Method and Description 

T 
getAbsoluteAccuracy()
Get the absolute accuracy of the solver.

int 
getEvaluations()
Get the number of evaluations of the objective function.

T 
getFunctionValueAccuracy()
Get the function value accuracy of the solver.

int 
getMaxEvaluations()
Get the maximum number of function evaluations.

T 
getRelativeAccuracy()
Get the relative accuracy of the solver.

T 
solve(int maxEval,
CalculusFieldUnivariateFunction<T> f,
T min,
T max,
AllowedSolution allowedSolution)
Solve for a zero in the given interval.

T 
solve(int maxEval,
CalculusFieldUnivariateFunction<T> f,
T min,
T max,
T startValue,
AllowedSolution allowedSolution)
Solve for a zero in the given interval, start at
startValue . 
default BracketedRealFieldUnivariateSolver.Interval<T> 
solveInterval(int maxEval,
CalculusFieldUnivariateFunction<T> f,
T min,
T max)
Solve for a zero in the given interval and return a tolerance interval surrounding
the root.

BracketedRealFieldUnivariateSolver.Interval<T> 
solveInterval(int maxEval,
CalculusFieldUnivariateFunction<T> f,
T min,
T max,
T startValue)
Solve for a zero in the given interval and return a tolerance interval surrounding
the root.

int getMaxEvaluations()
int getEvaluations()
optimize
method. It is 0 if the method has not been
called yet.T getAbsoluteAccuracy()
v
is a value returned by
one of the solve
methods, then a root of the function should
exist somewhere in the interval (v
 ε, v
+ ε).T getRelativeAccuracy()
getAbsoluteAccuracy()
, but using
relative, rather than absolute error. If ρ is the relative accuracy
configured for a solver and v
is a value returned, then a root
of the function should exist somewhere in the interval
(v
 ρ v
, v
+ ρ v
).T getFunctionValueAccuracy()
v
is
a value returned by the solver for a function f
,
then by contract, f(v)
should be less than or equal to
the function value accuracy configured for the solver.T solve(int maxEval, CalculusFieldUnivariateFunction<T> f, T min, T max, AllowedSolution allowedSolution)
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 rootfinding algorithm may
accept as solutions.MathIllegalArgumentException
 if the arguments do not satisfy the requirements specified by the solver.MathIllegalStateException
 if
the allowed number of evaluations is exceeded.T solve(int maxEval, CalculusFieldUnivariateFunction<T> f, T min, T max, T startValue, AllowedSolution allowedSolution)
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.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 rootfinding algorithm may
accept as solutions.MathIllegalArgumentException
 if the arguments do not satisfy the requirements specified by the solver.MathIllegalStateException
 if
the allowed number of evaluations is exceeded.default BracketedRealFieldUnivariateSolver.Interval<T> solveInterval(int maxEval, CalculusFieldUnivariateFunction<T> f, T min, T max) throws MathIllegalArgumentException, MathIllegalStateException
It is required that the starting interval brackets a root.
maxEval
 Maximum number of evaluations.f
 Function to solve.min
 Lower bound for the interval. f(min) != 0.0.max
 Upper bound for the interval. f(max) != 0.0.absolute
accuracy + max(ta, tb) * relative
accuracy) or (
max(f(ta), f(tb)) <= getFunctionValueAccuracy()
) or there are no
numbers in the field between ta and tb. The width of the interval (tb  ta) may be
zero.MathIllegalArgumentException
 if the arguments do not satisfy the
requirements specified by the solver.MathIllegalStateException
 if the allowed number of evaluations is
exceeded.BracketedRealFieldUnivariateSolver.Interval<T> solveInterval(int maxEval, CalculusFieldUnivariateFunction<T> f, T min, T max, T startValue) throws MathIllegalArgumentException, MathIllegalStateException
It is required that the starting interval brackets a root.
maxEval
 Maximum number of evaluations.startValue
 start value to use.f
 Function to solve.min
 Lower bound for the interval. f(min) != 0.0.max
 Upper bound for the interval. f(max) != 0.0.absolute
accuracy + max(ta, tb) * relative
accuracy) or (
max(f(ta), f(tb)) <= getFunctionValueAccuracy()
) or numbers in the
field between ta and tb. The width of the interval (tb  ta) may be zero.MathIllegalArgumentException
 if the arguments do not satisfy the
requirements specified by the solver.MathIllegalStateException
 if the allowed number of evaluations is
exceeded.Copyright © 20162022 CS GROUP. All rights reserved.