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