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

# Class RombergIntegrator

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

All Implemented Interfaces:
  `UnivariateIntegrator`

public class RombergIntegrator extends BaseAbstractUnivariateIntegrator
Implements the Romberg Algorithm for integration of real univariate functions. For reference, see Introduction to Numerical Analysis, ISBN 038795452X, chapter 3.

Romberg integration employs k successive refinements of the trapezoid rule to remove error terms less than order O(N^(-2k)). Simpson's rule is a special case of k = 2.

Since:
  1.2

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`ROMBERG_MAX_ITERATIONS_COUNT`
Maximal number of iterations for Romberg.

### 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
`RombergIntegrator()`
Construct a Romberg integrator with default settings (max iteration count set to `ROMBERG_MAX_ITERATIONS_COUNT`)
`RombergIntegrator(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount)`
Build a Romberg integrator with given accuracies and iterations counts.
`RombergIntegrator(int minimalIterationCount, int maximalIterationCount)`
Build a Romberg 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

### ROMBERG_MAX_ITERATIONS_COUNT

public static final int ROMBERG_MAX_ITERATIONS_COUNT
Maximal number of iterations for Romberg.

See Also:
  - Constant Field Values

## Constructor Details

### RombergIntegrator

public RombergIntegrator(double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) throws NotStrictlyPositiveException, NumberIsTooSmallException, NumberIsTooLargeException
Build a Romberg 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 `ROMBERG_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 `ROMBERG_MAX_ITERATIONS_COUNT`

### RombergIntegrator

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

Parameters:
  `minimalIterationCount` - minimum number of iterations
  `maximalIterationCount` - maximum number of iterations (must be less than or equal to `ROMBERG_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 `ROMBERG_MAX_ITERATIONS_COUNT`

### RombergIntegrator

public RombergIntegrator()
Construct a Romberg integrator with default settings (max iteration count set to `ROMBERG_MAX_ITERATIONS_COUNT`)

## Method Details

### doIntegrate

protected double doIntegrate() throws 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