org.apache.commons.math.analysis.integration
Class LegendreGaussIntegrator

java.lang.Object
  extended by org.apache.commons.math.ConvergingAlgorithmImpl
      extended by org.apache.commons.math.analysis.integration.UnivariateRealIntegratorImpl
          extended by org.apache.commons.math.analysis.integration.LegendreGaussIntegrator
All Implemented Interfaces:
UnivariateRealIntegrator, ConvergingAlgorithm

public class LegendreGaussIntegrator
extends UnivariateRealIntegratorImpl

Implements the Legendre-Gauss quadrature formula.

Legendre-Gauss integrators are efficient integrators that can accurately integrate functions with few functions evaluations. A Legendre-Gauss integrator using an n-points quadrature formula can integrate exactly 2n-1 degree polynomialss.

These integrators evaluate the function on n carefully chosen abscissas in each step interval (mapped to the canonical [-1 1] interval). The evaluation abscissas are not evenly spaced and none of them are at the interval endpoints. This implies the function integrated can be undefined at integration interval endpoints.

The evaluation abscissas xi are the roots of the degree n Legendre polynomial. The weights ai of the quadrature formula integrals from -1 to +1 ∫ Li2 where Li (x) = ∏ (x-xk)/(xi-xk) for k != i.

Since:
1.2
Version:
$Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $

Field Summary
 
Fields inherited from class org.apache.commons.math.analysis.integration.UnivariateRealIntegratorImpl
defaultMinimalIterationCount, f, minimalIterationCount, result, resultComputed
 
Fields inherited from class org.apache.commons.math.ConvergingAlgorithmImpl
absoluteAccuracy, defaultAbsoluteAccuracy, defaultMaximalIterationCount, defaultRelativeAccuracy, iterationCount, maximalIterationCount, relativeAccuracy
 
Constructor Summary
LegendreGaussIntegrator(int n, int defaultMaximalIterationCount)
          Build a Legendre-Gauss integrator.
 
Method Summary
 double integrate(double min, double max)
          Deprecated. 
 double integrate(UnivariateRealFunction f, double min, double max)
          Integrate the function in the given interval.
 
Methods inherited from class org.apache.commons.math.analysis.integration.UnivariateRealIntegratorImpl
clearResult, getMinimalIterationCount, getResult, resetMinimalIterationCount, setMinimalIterationCount, setResult, verifyInterval, verifyIterationCount
 
Methods inherited from class org.apache.commons.math.ConvergingAlgorithmImpl
getAbsoluteAccuracy, getIterationCount, getMaximalIterationCount, getRelativeAccuracy, resetAbsoluteAccuracy, resetMaximalIterationCount, resetRelativeAccuracy, setAbsoluteAccuracy, setMaximalIterationCount, setRelativeAccuracy
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.commons.math.ConvergingAlgorithm
getAbsoluteAccuracy, getIterationCount, getMaximalIterationCount, getRelativeAccuracy, resetAbsoluteAccuracy, resetMaximalIterationCount, resetRelativeAccuracy, setAbsoluteAccuracy, setMaximalIterationCount, setRelativeAccuracy
 

Constructor Detail

LegendreGaussIntegrator

public LegendreGaussIntegrator(int n,
                               int defaultMaximalIterationCount)
                        throws java.lang.IllegalArgumentException
Build a Legendre-Gauss integrator.

Parameters:
n - number of points desired (must be between 2 and 5 inclusive)
defaultMaximalIterationCount - maximum number of iterations
Throws:
java.lang.IllegalArgumentException - if the number of points is not in the supported range
Method Detail

integrate

@Deprecated
public double integrate(double min,
                                   double max)
                 throws ConvergenceException,
                        FunctionEvaluationException,
                        java.lang.IllegalArgumentException
Deprecated. 

Integrate the function in the given interval.

Parameters:
min - the lower bound for the interval
max - the upper bound for the interval
Returns:
the value of integral
Throws:
ConvergenceException - if the maximum iteration count is exceeded or the integrator detects convergence problems otherwise
FunctionEvaluationException - if an error occurs evaluating the function
java.lang.IllegalArgumentException - if min > max or the endpoints do not satisfy the requirements specified by the integrator

integrate

public double integrate(UnivariateRealFunction f,
                        double min,
                        double max)
                 throws ConvergenceException,
                        FunctionEvaluationException,
                        java.lang.IllegalArgumentException
Integrate the function in the given interval.

Parameters:
f - the integrand function
min - the lower bound for the interval
max - the upper bound for the interval
Returns:
the value of integral
Throws:
ConvergenceException - if the maximum iteration count is exceeded or the integrator detects convergence problems otherwise
FunctionEvaluationException - if an error occurs evaluating the function
java.lang.IllegalArgumentException - if min > max or the endpoints do not satisfy the requirements specified by the integrator


Copyright © 2003-2011 Apache Software Foundation. All Rights Reserved.