|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math3.dfp.BracketingNthOrderBrentSolverDFP
public class BracketingNthOrderBrentSolverDFP
This class implements a modification of the Brent algorithm.
The changes with respect to the original Brent algorithm are:
AllowedSolution
,
Field Summary | |
---|---|
private Dfp |
absoluteAccuracy
Absolute accuracy. |
private Incrementor |
evaluations
Evaluations counter. |
private Dfp |
functionValueAccuracy
Function value accuracy. |
private static int |
MAXIMAL_AGING
Maximal aging triggering an attempt to balance the bracketing interval. |
private int |
maximalOrder
Maximal order. |
private Dfp |
relativeAccuracy
Relative accuracy. |
Constructor Summary | |
---|---|
BracketingNthOrderBrentSolverDFP(Dfp relativeAccuracy,
Dfp absoluteAccuracy,
Dfp functionValueAccuracy,
int maximalOrder)
Construct a solver. |
Method Summary | |
---|---|
Dfp |
getAbsoluteAccuracy()
Get the absolute accuracy. |
int |
getEvaluations()
Get the number of evaluations of the objective function. |
Dfp |
getFunctionValueAccuracy()
Get the function accuracy. |
int |
getMaxEvaluations()
Get the maximal number of function evaluations. |
int |
getMaximalOrder()
Get the maximal order. |
Dfp |
getRelativeAccuracy()
Get the relative accuracy. |
private Dfp |
guessX(Dfp targetY,
Dfp[] x,
Dfp[] y,
int start,
int end)
Guess an x value by nth order inverse polynomial interpolation. |
Dfp |
solve(int maxEval,
UnivariateDfpFunction f,
Dfp min,
Dfp max,
AllowedSolution allowedSolution)
Solve for a zero in the given interval. |
Dfp |
solve(int maxEval,
UnivariateDfpFunction f,
Dfp min,
Dfp max,
Dfp startValue,
AllowedSolution allowedSolution)
Solve for a zero in the given interval, start at startValue . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final int MAXIMAL_AGING
private final int maximalOrder
private final Dfp functionValueAccuracy
private final Dfp absoluteAccuracy
private final Dfp relativeAccuracy
private final Incrementor evaluations
Constructor Detail |
---|
public BracketingNthOrderBrentSolverDFP(Dfp relativeAccuracy, Dfp absoluteAccuracy, Dfp functionValueAccuracy, int maximalOrder) throws NumberIsTooSmallException
relativeAccuracy
- Relative accuracy.absoluteAccuracy
- Absolute accuracy.functionValueAccuracy
- Function value accuracy.maximalOrder
- maximal order.
NumberIsTooSmallException
- if maximal order is lower than 2Method Detail |
---|
public int getMaximalOrder()
public int getMaxEvaluations()
public int getEvaluations()
optimize
method. It is 0 if the method has not been
called yet.
public Dfp getAbsoluteAccuracy()
public Dfp getRelativeAccuracy()
public Dfp getFunctionValueAccuracy()
public Dfp solve(int maxEval, UnivariateDfpFunction f, Dfp min, Dfp 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 root-finding algorithm may
accept as solutions.
MathIllegalArgumentException
- if the arguments do not satisfy the requirements specified by the solver.
TooManyEvaluationsException
- if
the allowed number of evaluations is exceeded.public Dfp solve(int maxEval, UnivariateDfpFunction f, Dfp min, Dfp max, Dfp 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 root-finding algorithm may
accept as solutions.
MathIllegalArgumentException
- if the arguments do not satisfy the requirements specified by the solver.
TooManyEvaluationsException
- if
the allowed number of evaluations is exceeded.private Dfp guessX(Dfp targetY, Dfp[] x, Dfp[] y, int start, int end)
The x value is guessed by evaluating polynomial Q(y) at y = targetY, where Q is built such that for all considered points (xi, yi), Q(yi) = xi.
targetY
- target value for yx
- reference points abscissas for interpolation,
note that this array is modified during computationy
- reference points ordinates for interpolationstart
- start index of the points to consider (inclusive)end
- end index of the points to consider (exclusive)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |