org.apache.commons.math.analysis.integration
Class LegendreGaussIntegrator
java.lang.Object
org.apache.commons.math.ConvergingAlgorithmImpl
org.apache.commons.math.analysis.integration.UnivariateRealIntegratorImpl
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 polynomials.
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: 1070725 $ $Date: 2011-02-15 02:31:12 +0100 (mar. 15 févr. 2011) $
Constructor Summary |
LegendreGaussIntegrator(int n,
int defaultMaximalIterationCount)
Build a Legendre-Gauss integrator. |
Methods inherited from class org.apache.commons.math.ConvergingAlgorithmImpl |
getAbsoluteAccuracy, getIterationCount, getMaximalIterationCount, getRelativeAccuracy, incrementIterationsCounter, resetAbsoluteAccuracy, resetIterationsCounter, resetMaximalIterationCount, resetRelativeAccuracy, setAbsoluteAccuracy, setMaximalIterationCount, setRelativeAccuracy |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LegendreGaussIntegrator
public LegendreGaussIntegrator(int n,
int defaultMaximalIterationCount)
throws 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:
IllegalArgumentException
- if the number of points is not
in the supported range
integrate
@Deprecated
public double integrate(double min,
double max)
throws ConvergenceException,
FunctionEvaluationException,
IllegalArgumentException
- Deprecated.
- Integrate the function in the given interval.
- Parameters:
min
- the lower bound for the intervalmax
- 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
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,
IllegalArgumentException
- Integrate the function in the given interval.
- Parameters:
f
- the integrand functionmin
- the lower bound for the intervalmax
- 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
IllegalArgumentException
- if min > max or the endpoints do not
satisfy the requirements specified by the integrator
Copyright © 2003-2011 The Apache Software Foundation. All Rights Reserved.