Class QuadratureIntegrator<T extends Quadrature>

java.lang.Object
com.irurueta.numerical.integration.Integrator
com.irurueta.numerical.integration.QuadratureIntegrator<T>
Type Parameters:
T - a quadrature.
Direct Known Subclasses:
DoubleExponentialRuleQuadratureIntegrator, InfinityMidPointQuadratureIntegrator, LowerSquareRootMidPointQuadratureIntegrator, MidPointQuadratureIntegrator, TrapezoidalQuadratureIntegrator, UpperSquareRootMidPointQuadratureIntegrator

public abstract class QuadratureIntegrator<T extends Quadrature> extends Integrator
Integrates functions given a quadrature implementation up to desired accuracy. If assumptions can be made about the smoothness of a function other implementations such as Simpon's or Romberg's are more efficient and require less function evaluations. Otherwise, this is the simplest integrator that can be used for general purpose integrations when no assumptions can be made.
  • Field Details

    • EPS

      public static final double EPS
      Default accuracy.
      See Also:
    • JMIN

      private static final int JMIN
      Minimum required number of steps.
      See Also:
    • JMAX

      private static final int JMAX
      Maximum number of allowed steps.
      See Also:
    • q

      private final T extends Quadrature q
      Quadrature used for integration.
    • eps

      private final double eps
      Required accuracy.
  • Constructor Details

    • QuadratureIntegrator

      protected QuadratureIntegrator(T q, double eps)
      Constructor.
      Parameters:
      q - Quadrature used for integration.
      eps - Required accuracy.
  • Method Details

    • integrate

      public double integrate() throws IntegrationException
      Integrates function between provided lower and upper limits.
      Specified by:
      integrate in class Integrator
      Returns:
      result of integration.
      Throws:
      IntegrationException - if integration fails for numerical reasons.
    • getIntegratorType

      public IntegratorType getIntegratorType()
      Gets type of integrator.
      Specified by:
      getIntegratorType in class Integrator
      Returns:
      type of integrator.
    • create

      public static QuadratureIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener, double eps, QuadratureType quadratureType)
      Creates a quadrature integrator.
      Parameters:
      a - Lower limit of integration.
      b - Upper limit of integration.
      listener - listener to evaluate a single dimension function at required points.
      eps - required accuracy.
      quadratureType - quadrature type.
      Returns:
      created integrator.
      Throws:
      IllegalArgumentException - if provided quadrature type is not supported.
    • create

      public static QuadratureIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener, QuadratureType quadratureType)
      Creates a quadrature integrator with default accuracy.
      Parameters:
      a - Lower limit of integration.
      b - Upper limit of integration.
      listener - listener to evaluate a single dimension function at required points.
      quadratureType - quadrature type.
      Returns:
      created integrator.
      Throws:
      IllegalArgumentException - if provided quadrature type is not supported.
    • create

      public static QuadratureIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener, double eps)
      Creates a quadrature integrator using default quadrature type.
      Parameters:
      a - Lower limit of integration.
      b - Upper limit of integration.
      listener - listener to evaluate a single dimension function at required points.
      eps - required accuracy.
      Returns:
      created integrator.
    • create

      public static QuadratureIntegrator<Quadrature> create(double a, double b, SingleDimensionFunctionEvaluatorListener listener)
      Creates a quadrature integrator using default accuracy and quadrature type.
      Parameters:
      a - Lower limit of integration.
      b - Upper limit of integration.
      listener - listener to evaluate a single dimension function at required points.
      Returns:
      created integrator.
    • cast

      private static QuadratureIntegrator<Quadrature> cast(QuadratureIntegrator<?> integrator)
      Casts integrator to a quadrature integrator without wildcard parameter. .
      Parameters:
      integrator - integrator to be cast.
      Returns:
      cast integrator.