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.
  Since:
    3.1
  Version:
    $Id: IterativeLegendreGaussIntegrator.java 1416643 2012-12-03 19:37:14Z tn $

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private static GaussIntegratorFactory` | `FACTORY` Factory that computes the points and weights.
    `private int` | `numberOfPoints` Number of integration points (per interval).

    - ### 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.
    `private double` | `stage(int n)` Compute the n-th stage integral.

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

- - ### Field Detail

    - #### 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 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 is 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)

      Builds an integrator with given accuracies.
      Parameters:
        `n` - Number of integration points.
        `relativeAccuracy` - Relative accuracy of the result.
        `absoluteAccuracy` - Absolute accuracy of the result.

    - #### IterativeLegendreGaussIntegrator

          public IterativeLegendreGaussIntegrator(int n,
                                          int minimalIterationCount,
                                          int maximalIterationCount)

      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.

  - ### Method Detail

    - #### doIntegrate

          protected double doIntegrate()
                                throws 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

    - #### stage

          private double stage(int n)
                        throws TooManyEvaluationsException

      Compute the n-th stage integral.
      Parameters:
        `n` - Number of steps.
      Returns:
        the value of n-th stage integral.
      Throws:
        `TooManyEvaluationsException` - if the maximum number of evaluations is exceeded.

Copyright (c) 2003-2013 Apache Software Foundation