Class IterativeLegendreGaussIntegrator

java.lang.Object
org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator
org.apache.commons.math3.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.
Since:
3.1
  • Field Details

    • FACTORY

      private static final GaussIntegratorFactory FACTORY
      Factory that computes the points and weights.
    • numberOfPoints

      private final int numberOfPoints
      Number of integration points (per interval).
  • Constructor Details

    • IterativeLegendreGaussIntegrator

      public IterativeLegendreGaussIntegrator(int n, double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException
      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:
      NotStrictlyPositiveException - if minimal number of iterations or number of points are not strictly positive.
      NumberIsTooSmallException - 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 NotStrictlyPositiveException
      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:
      NotStrictlyPositiveException - if n < 1.
    • IterativeLegendreGaussIntegrator

      public IterativeLegendreGaussIntegrator(int n, int minimalIterationCount, int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException
      Builds an integrator with given iteration counts.
      Parameters:
      n - Number of integration points.
      minimalIterationCount - Minimum number of iterations.
      maximalIterationCount - Maximum number of iterations.
      Throws:
      NotStrictlyPositiveException - if minimal number of iterations is not strictly positive.
      NumberIsTooSmallException - if maximal number of iterations is smaller than or equal to the minimal number of iterations.
      NotStrictlyPositiveException - if n < 1.
  • Method Details