Class BaseAbstractFieldUnivariateIntegrator<T extends CalculusFieldElement<T>>

java.lang.Object
org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator<T>
Type Parameters:
T - Type of the field elements.
All Implemented Interfaces:
FieldUnivariateIntegrator<T>
Direct Known Subclasses:
FieldMidPointIntegrator, FieldRombergIntegrator, FieldSimpsonIntegrator, FieldTrapezoidIntegrator, IterativeLegendreFieldGaussIntegrator

public abstract class BaseAbstractFieldUnivariateIntegrator<T extends CalculusFieldElement<T>> extends Object implements FieldUnivariateIntegrator<T>
Provide a default implementation for several generic functions.
Since:
2.0
  • Field Details

    • DEFAULT_ABSOLUTE_ACCURACY

      public static final double DEFAULT_ABSOLUTE_ACCURACY
      Default absolute accuracy.
      See Also:
    • DEFAULT_RELATIVE_ACCURACY

      public static final double DEFAULT_RELATIVE_ACCURACY
      Default relative accuracy.
      See Also:
    • DEFAULT_MIN_ITERATIONS_COUNT

      public static final int DEFAULT_MIN_ITERATIONS_COUNT
      Default minimal iteration count.
      See Also:
    • DEFAULT_MAX_ITERATIONS_COUNT

      public static final int DEFAULT_MAX_ITERATIONS_COUNT
      Default maximal iteration count.
      See Also:
    • iterations

      protected final Incrementor iterations
      The iteration count.
  • Constructor Details

    • BaseAbstractFieldUnivariateIntegrator

      protected BaseAbstractFieldUnivariateIntegrator(Field<T> field, double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) throws MathIllegalArgumentException
      Construct an integrator with given accuracies and iteration counts.

      The meanings of the various parameters are:

      • relative accuracy: this is used to stop iterations if the absolute accuracy can't be achieved due to large values or short mantissa length. If this should be the primary criterion for convergence rather then a safety measure, set the absolute accuracy to a ridiculously small value, like Precision.SAFE_MIN.
      • absolute accuracy: The default is usually chosen so that results in the interval -10..-0.1 and +0.1..+10 can be found with a reasonable accuracy. If the expected absolute value of your results is of much smaller magnitude, set this to a smaller value.
      • minimum number of iterations: minimal iteration is needed to avoid false early convergence, e.g. the sample points happen to be zeroes of the function. Users can use the default value or choose one that they see as appropriate.
      • maximum number of iterations: usually a high iteration count indicates convergence problems. However, the "reasonable value" varies widely for different algorithms. Users are advised to use the default value supplied by the algorithm.
      Parameters:
      field - field to which function argument and value belong
      relativeAccuracy - relative accuracy of the result
      absoluteAccuracy - absolute accuracy of the result
      minimalIterationCount - minimum number of iterations
      maximalIterationCount - maximum number of iterations
      Throws:
      MathIllegalArgumentException - if minimal number of iterations is not strictly positive
      MathIllegalArgumentException - if maximal number of iterations is lesser than or equal to the minimal number of iterations
    • BaseAbstractFieldUnivariateIntegrator

      protected BaseAbstractFieldUnivariateIntegrator(Field<T> field, double relativeAccuracy, double absoluteAccuracy)
      Construct an integrator with given accuracies.
      Parameters:
      field - field to which function argument and value belong
      relativeAccuracy - relative accuracy of the result
      absoluteAccuracy - absolute accuracy of the result
    • BaseAbstractFieldUnivariateIntegrator

      protected BaseAbstractFieldUnivariateIntegrator(Field<T> field, int minimalIterationCount, int maximalIterationCount) throws MathIllegalArgumentException
      Construct an integrator with given iteration counts.
      Parameters:
      field - field to which function argument and value belong
      minimalIterationCount - minimum number of iterations
      maximalIterationCount - maximum number of iterations
      Throws:
      MathIllegalArgumentException - if minimal number of iterations is not strictly positive
      MathIllegalArgumentException - if maximal number of iterations is lesser than or equal to the minimal number of iterations
  • Method Details