Class RombergIntegrator
java.lang.Object
org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator
org.hipparchus.analysis.integration.RombergIntegrator
- All Implemented Interfaces:
UnivariateIntegrator
Implements the
Romberg Algorithm for integration of real univariate functions. For
reference, see Introduction to Numerical Analysis, ISBN 038795452X,
chapter 3.
Romberg integration employs k successive refinements of the trapezoid rule to remove error terms less than order O(N^(-2k)). Simpson's rule is a special case of k = 2.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Maximal number of iterations for Romberg.Fields inherited from class org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator
DEFAULT_ABSOLUTE_ACCURACY, DEFAULT_MAX_ITERATIONS_COUNT, DEFAULT_MIN_ITERATIONS_COUNT, DEFAULT_RELATIVE_ACCURACY, iterations
-
Constructor Summary
ConstructorDescriptionConstruct a Romberg integrator with default settings (max iteration count set toROMBERG_MAX_ITERATIONS_COUNT
)RombergIntegrator
(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) Build a Romberg integrator with given accuracies and iterations counts.RombergIntegrator
(int minimalIterationCount, int maximalIterationCount) Build a Romberg integrator with given iteration counts. -
Method Summary
Modifier and TypeMethodDescriptionprotected double
Method for implementing actual integration algorithms in derived classes.Methods inherited from class org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator
computeObjectiveValue, getAbsoluteAccuracy, getEvaluations, getIterations, getMax, getMaximalIterationCount, getMin, getMinimalIterationCount, getRelativeAccuracy, integrate, setup
-
Field Details
-
ROMBERG_MAX_ITERATIONS_COUNT
public static final int ROMBERG_MAX_ITERATIONS_COUNTMaximal number of iterations for Romberg.- See Also:
-
-
Constructor Details
-
RombergIntegrator
public RombergIntegrator(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) throws MathIllegalArgumentException Build a Romberg integrator with given accuracies and iterations counts.- Parameters:
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 toROMBERG_MAX_ITERATIONS_COUNT
)- Throws:
MathIllegalArgumentException
- if minimal number of iterations is not strictly positiveMathIllegalArgumentException
- if maximal number of iterations is lesser than or equal to the minimal number of iterationsMathIllegalArgumentException
- if maximal number of iterations is greater thanROMBERG_MAX_ITERATIONS_COUNT
-
RombergIntegrator
public RombergIntegrator(int minimalIterationCount, int maximalIterationCount) throws MathIllegalArgumentException Build a Romberg integrator with given iteration counts.- Parameters:
minimalIterationCount
- minimum number of iterationsmaximalIterationCount
- maximum number of iterations (must be less than or equal toROMBERG_MAX_ITERATIONS_COUNT
)- Throws:
MathIllegalArgumentException
- if minimal number of iterations is not strictly positiveMathIllegalArgumentException
- if maximal number of iterations is lesser than or equal to the minimal number of iterationsMathIllegalArgumentException
- if maximal number of iterations is greater thanROMBERG_MAX_ITERATIONS_COUNT
-
RombergIntegrator
public RombergIntegrator()Construct a Romberg integrator with default settings (max iteration count set toROMBERG_MAX_ITERATIONS_COUNT
)
-
-
Method Details
-
doIntegrate
Method for implementing actual integration algorithms in derived classes.- Specified by:
doIntegrate
in classBaseAbstractUnivariateIntegrator
- Returns:
- the root.
- Throws:
MathIllegalStateException
- if the maximal number of evaluations is exceeded.
-