Class 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
    • 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