Class QuadratureMatrixIntegrator<T extends MatrixQuadrature>

java.lang.Object
com.irurueta.numerical.integration.MatrixIntegrator
com.irurueta.numerical.integration.QuadratureMatrixIntegrator<T>
Type Parameters:
T - a quadrature.
Direct Known Subclasses:
DoubleExponentialRuleQuadratureMatrixIntegrator, InfinityMidPointQuadratureMatrixIntegrator, LowerSquareRootMidPointQuadratureMatrixIntegrator, MidPointQuadratureMatrixIntegrator, TrapezoidalQuadratureMatrixIntegrator, UpperSquareRootMidPointQuadratureMatrixIntegrator

public abstract class QuadratureMatrixIntegrator<T extends MatrixQuadrature> extends MatrixIntegrator
Integrates matrix (multivariate) single dimension 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 MatrixQuadrature q
      Quadrature used for integration.
    • eps

      private final double eps
      Required accuracy.
  • Constructor Details

    • QuadratureMatrixIntegrator

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

    • integrate

      public void integrate(com.irurueta.algebra.Matrix result) throws IntegrationException
      Integrates function between provided lower and upper limits.
      Specified by:
      integrate in class MatrixIntegrator
      Parameters:
      result - instance where result of integration will be stored.
      Throws:
      IntegrationException - if integration fails for numerical reasons.
    • getIntegratorType

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

      public static QuadratureMatrixIntegrator<MatrixQuadrature> create(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener, double eps, QuadratureType quadratureType) throws com.irurueta.algebra.WrongSizeException
      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.
      com.irurueta.algebra.WrongSizeException - if size notified by provided listener is invalid.
    • create

      public static QuadratureMatrixIntegrator<MatrixQuadrature> create(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener, QuadratureType quadratureType) throws com.irurueta.algebra.WrongSizeException
      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.
      com.irurueta.algebra.WrongSizeException - if size notified by provided listener is invalid.
    • create

      public static QuadratureMatrixIntegrator<MatrixQuadrature> create(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener, double eps) throws com.irurueta.algebra.WrongSizeException
      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.
      Throws:
      com.irurueta.algebra.WrongSizeException - if size notified by provided listener is invalid.
    • create

      public static QuadratureMatrixIntegrator<MatrixQuadrature> create(double a, double b, MatrixSingleDimensionFunctionEvaluatorListener listener) throws com.irurueta.algebra.WrongSizeException
      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.
      Throws:
      com.irurueta.algebra.WrongSizeException - if size notified by provided listener is invalid.
    • normMin

      private static double normMin(com.irurueta.algebra.Matrix a)
      Estimates smallest norm of provided matrix. Smallest norm is used to ensure convergence of all elements in matrix.
      Parameters:
      a - matrix to compute min norm for.
      Returns:
      estimated min norm.
    • cast

      Cast integrator to a quadrature integrator without wildcard parameter.
      Parameters:
      integrator - integrator to be cast.
      Returns:
      cast integrator.