org.apache.commons.math3.analysis.integration

## 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
  Version:
    $Id: IterativeLegendreGaussIntegrator.java 1499765 2013-07-04 14:24:11Z erans $

- - ### Field Summary

    - ### Fields inherited from class org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator

      `DEFAULT_ABSOLUTE_ACCURACY, DEFAULT_MAX_ITERATIONS_COUNT, DEFAULT_MIN_ITERATIONS_COUNT, DEFAULT_RELATIVE_ACCURACY, iterations`

  - ### Constructor Summary

    Constructors
    Constructor and 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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected double` | `doIntegrate()` Method for implementing actual integration algorithms in derived classes.

    - ### Methods inherited from class org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator

      `computeObjectiveValue, getAbsoluteAccuracy, getEvaluations, getIterations, getMax, getMaximalIterationCount, getMin, getMinimalIterationCount, getRelativeAccuracy, integrate, setup`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### 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 Detail

    - #### doIntegrate

          protected double doIntegrate()
                                throws MathIllegalArgumentException,
                                       TooManyEvaluationsException,
                                       MaxCountExceededException

      Method for implementing actual integration algorithms in derived classes.
      Specified by:
        `doIntegrate` in class `BaseAbstractUnivariateIntegrator`
      Returns:
        the root.
      Throws:
        `TooManyEvaluationsException` - if the maximal number of evaluations is exceeded.
        `MaxCountExceededException` - if the maximum iteration count is exceeded or the integrator detects convergence problems otherwise
        `MathIllegalArgumentException`

Copyright © 2003–2014 The Apache Software Foundation. All rights reserved.