Class IterativeLegendreGaussIntegrator
- java.lang.Object
-
- org.hipparchus.analysis.integration.BaseAbstractUnivariateIntegrator
-
- org.hipparchus.analysis.integration.IterativeLegendreGaussIntegrator
-
- All Implemented Interfaces:
UnivariateIntegrator
public class IterativeLegendreGaussIntegrator extends BaseAbstractUnivariateIntegrator
This algorithm divides the integration interval into equally-sized sub-interval and on each of them performs a Legendre-Gauss quadrature. Because of its non-adaptive nature, this algorithm can converge to a wrong value for the integral (for example, if the function is significantly different from zero toward the ends of the integration interval). In particular, a change of variables aimed at estimating integrals over infinite intervals as proposed here should be avoided when using this class.
-
-
Field Summary
-
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
Constructors Constructor Description IterativeLegendreGaussIntegrator(int n, double relativeAccuracy, double absoluteAccuracy)
Builds an integrator with given accuracies.IterativeLegendreGaussIntegrator(int n, double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount)
Builds an integrator with given accuracies and iterations counts.IterativeLegendreGaussIntegrator(int n, int minimalIterationCount, int maximalIterationCount)
Builds an integrator with given iteration counts.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected double
doIntegrate()
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
-
-
-
-
Constructor Detail
-
IterativeLegendreGaussIntegrator
public IterativeLegendreGaussIntegrator(int n, double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) throws MathIllegalArgumentException
Builds an integrator with given accuracies and iterations counts.- Parameters:
n
- Number of integration points.relativeAccuracy
- Relative accuracy of the result.absoluteAccuracy
- Absolute accuracy of the result.minimalIterationCount
- Minimum number of iterations.maximalIterationCount
- Maximum number of iterations.- Throws:
MathIllegalArgumentException
- if minimal number of iterations or number of points are not strictly positive.MathIllegalArgumentException
- if maximal number of iterations is smaller than or equal to the minimal number of iterations.
-
IterativeLegendreGaussIntegrator
public IterativeLegendreGaussIntegrator(int n, double relativeAccuracy, double absoluteAccuracy) throws MathIllegalArgumentException
Builds an integrator with given accuracies.- Parameters:
n
- Number of integration points.relativeAccuracy
- Relative accuracy of the result.absoluteAccuracy
- Absolute accuracy of the result.- Throws:
MathIllegalArgumentException
- ifn < 1
.
-
IterativeLegendreGaussIntegrator
public IterativeLegendreGaussIntegrator(int n, int minimalIterationCount, int maximalIterationCount) throws MathIllegalArgumentException
Builds an integrator with given iteration counts.- Parameters:
n
- Number of integration points.minimalIterationCount
- Minimum number of iterations.maximalIterationCount
- Maximum number of iterations.- Throws:
MathIllegalArgumentException
- if minimal number of iterations is not strictly positive.MathIllegalArgumentException
- if maximal number of iterations is smaller than or equal to the minimal number of iterations.MathIllegalArgumentException
- ifn < 1
.
-
-
Method Detail
-
doIntegrate
protected double doIntegrate() throws MathIllegalArgumentException, MathIllegalStateException
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.MathIllegalArgumentException
-
-