public class TrapezoidIntegrator extends BaseAbstractUnivariateIntegrator
The function should be integrable.
Modifier and Type | Field and Description |
---|---|
private double |
s
Intermediate result.
|
static int |
TRAPEZOID_MAX_ITERATIONS_COUNT
Maximum number of iterations for trapezoid.
|
DEFAULT_ABSOLUTE_ACCURACY, DEFAULT_MAX_ITERATIONS_COUNT, DEFAULT_MIN_ITERATIONS_COUNT, DEFAULT_RELATIVE_ACCURACY, iterations
Constructor and Description |
---|
TrapezoidIntegrator()
Construct a trapezoid integrator with default settings.
|
TrapezoidIntegrator(double relativeAccuracy,
double absoluteAccuracy,
int minimalIterationCount,
int maximalIterationCount)
Build a trapezoid integrator with given accuracies and iterations counts.
|
TrapezoidIntegrator(int minimalIterationCount,
int maximalIterationCount)
Build a trapezoid integrator with given iteration counts.
|
Modifier and Type | Method and Description |
---|---|
protected double |
doIntegrate()
Method for implementing actual integration algorithms in derived
classes.
|
(package private) double |
stage(BaseAbstractUnivariateIntegrator baseIntegrator,
int n)
Compute the n-th stage integral of trapezoid rule.
|
computeObjectiveValue, getAbsoluteAccuracy, getEvaluations, getIterations, getMax, getMaximalIterationCount, getMin, getMinimalIterationCount, getRelativeAccuracy, integrate, setup
public static final int TRAPEZOID_MAX_ITERATIONS_COUNT
private double s
public TrapezoidIntegrator(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException, NumberIsTooLargeException
relativeAccuracy
- relative accuracy of the resultabsoluteAccuracy
- absolute accuracy of the resultminimalIterationCount
- minimum number of iterationsmaximalIterationCount
- maximum number of iterations
(must be less than or equal to TRAPEZOID_MAX_ITERATIONS_COUNT
NotStrictlyPositiveException
- if minimal number of iterations
is not strictly positiveNumberIsTooSmallException
- if maximal number of iterations
is lesser than or equal to the minimal number of iterationsNumberIsTooLargeException
- if maximal number of iterations
is greater than TRAPEZOID_MAX_ITERATIONS_COUNT
public TrapezoidIntegrator(int minimalIterationCount, int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException, NumberIsTooLargeException
minimalIterationCount
- minimum number of iterationsmaximalIterationCount
- maximum number of iterations
(must be less than or equal to TRAPEZOID_MAX_ITERATIONS_COUNT
NotStrictlyPositiveException
- if minimal number of iterations
is not strictly positiveNumberIsTooSmallException
- if maximal number of iterations
is lesser than or equal to the minimal number of iterationsNumberIsTooLargeException
- if maximal number of iterations
is greater than TRAPEZOID_MAX_ITERATIONS_COUNT
public TrapezoidIntegrator()
TRAPEZOID_MAX_ITERATIONS_COUNT
)double stage(BaseAbstractUnivariateIntegrator baseIntegrator, int n) throws TooManyEvaluationsException
integrate()
in the package.
To save time it does not verify arguments - caller does.
The interval is divided equally into 2^n sections rather than an arbitrary m sections because this configuration can best utilize the already computed values.
baseIntegrator
- integrator holding integration parametersn
- the stage of 1/2 refinement, n = 0 is no refinementTooManyEvaluationsException
- if the maximal number of evaluations
is exceeded.protected double doIntegrate() throws MathIllegalArgumentException, TooManyEvaluationsException, MaxCountExceededException
doIntegrate
in class BaseAbstractUnivariateIntegrator
TooManyEvaluationsException
- if the maximal number of evaluations
is exceeded.MaxCountExceededException
- if the maximum iteration count is exceeded
or the integrator detects convergence problems otherwiseMathIllegalArgumentException
Copyright (c) 2003-2014 Apache Software Foundation