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) $
-
-
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
Constructors Constructor Description LegendreGaussIntegrator(int n, int defaultMaximalIterationCount)
Build a Legendre-Gauss integrator.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description 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, 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
-
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 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 otherwiseFunctionEvaluationException
- if an error occurs evaluating the functionjava.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 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 otherwiseFunctionEvaluationException
- if an error occurs evaluating the functionjava.lang.IllegalArgumentException
- if min > max or the endpoints do not satisfy the requirements specified by the integrator
-
-