Package org.apache.commons.math3.analysis.integration

# Class MidPointIntegrator

java.lang.Object
org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator
org.apache.commons.math3.analysis.integration.MidPointIntegrator

All Implemented Interfaces:
  `UnivariateIntegrator`

public class MidPointIntegrator extends BaseAbstractUnivariateIntegrator
Implements the Midpoint Rule for integration of real univariate functions. For reference, see Numerical Mathematics, ISBN 0387989595, chapter 9.2.

The function should be integrable.

Since:
  3.3

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`MIDPOINT_MAX_ITERATIONS_COUNT`
Maximum number of iterations for midpoint.

### Fields inherited from class org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator

`DEFAULT_ABSOLUTE_ACCURACY, DEFAULT_MAX_ITERATIONS_COUNT, DEFAULT_MIN_ITERATIONS_COUNT, DEFAULT_RELATIVE_ACCURACY, iterations`

## Constructor Summary

Constructors
Constructor
Description
`MidPointIntegrator()`
Construct a midpoint integrator with default settings.
`MidPointIntegrator(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount)`
Build a midpoint integrator with given accuracies and iterations counts.
`MidPointIntegrator(int minimalIterationCount, int maximalIterationCount)`
Build a midpoint integrator with given iteration counts.

## Method Summary

Modifier and Type
Method
Description
`protected double`
`doIntegrate()`
Method for implementing actual integration algorithms in derived classes.

### Methods inherited from class org.apache.commons.math3.analysis.integration.BaseAbstractUnivariateIntegrator

`computeObjectiveValue, getAbsoluteAccuracy, getEvaluations, getIterations, getMax, getMaximalIterationCount, getMin, getMinimalIterationCount, getRelativeAccuracy, incrementCount, integrate, setup`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### MIDPOINT_MAX_ITERATIONS_COUNT

public static final int MIDPOINT_MAX_ITERATIONS_COUNT
Maximum number of iterations for midpoint.

See Also:
  - Constant Field Values

## Constructor Details

### MidPointIntegrator

public MidPointIntegrator(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException, NumberIsTooLargeException
Build a midpoint integrator with given accuracies and iterations counts.

Parameters:
  `relativeAccuracy` - relative accuracy of the result
  `absoluteAccuracy` - absolute accuracy of the result
  `minimalIterationCount` - minimum number of iterations
  `maximalIterationCount` - maximum number of iterations (must be less than or equal to `MIDPOINT_MAX_ITERATIONS_COUNT`
Throws:
  `NotStrictlyPositiveException` - if minimal number of iterations is not strictly positive
  `NumberIsTooSmallException` - if maximal number of iterations is lesser than or equal to the minimal number of iterations
  `NumberIsTooLargeException` - if maximal number of iterations is greater than `MIDPOINT_MAX_ITERATIONS_COUNT`

### MidPointIntegrator

public MidPointIntegrator(int minimalIterationCount, int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException, NumberIsTooLargeException
Build a midpoint integrator with given iteration counts.

Parameters:
  `minimalIterationCount` - minimum number of iterations
  `maximalIterationCount` - maximum number of iterations (must be less than or equal to `MIDPOINT_MAX_ITERATIONS_COUNT`
Throws:
  `NotStrictlyPositiveException` - if minimal number of iterations is not strictly positive
  `NumberIsTooSmallException` - if maximal number of iterations is lesser than or equal to the minimal number of iterations
  `NumberIsTooLargeException` - if maximal number of iterations is greater than `MIDPOINT_MAX_ITERATIONS_COUNT`

### MidPointIntegrator

public MidPointIntegrator()
Construct a midpoint integrator with default settings. (max iteration count set to `MIDPOINT_MAX_ITERATIONS_COUNT`)

## Method Details

### doIntegrate

protected double doIntegrate() throws MathIllegalArgumentException, TooManyEvaluationsException, MaxCountExceededException
Method for implementing actual integration algorithms in derived classes.

Specified by:
  `doIntegrate` in class `BaseAbstractUnivariateIntegrator`
Returns:
  the root.
Throws:
  `TooManyEvaluationsException` - if the maximal number of evaluations is exceeded.
  `MaxCountExceededException` - if the maximum iteration count is exceeded or the integrator detects convergence problems otherwise
  `MathIllegalArgumentException`