org.apache.commons.math.analysis
Interface UnivariateRealIntegrator

All Known Implementing Classes:
RombergIntegrator, SimpsonIntegrator, TrapezoidIntegrator, UnivariateRealIntegratorImpl

public interface UnivariateRealIntegrator

Interface for univariate real integration algorithms.

Since:
1.2
Version:
$Revision: 620312 $ $Date: 2008-02-10 12:28:59 -0700 (Sun, 10 Feb 2008) $

Method Summary
 int getIterationCount()
          Get the number of iterations in the last run of the integrator.
 int getMaximalIterationCount()
          Get the upper limit for the number of iterations.
 int getMinimalIterationCount()
          Get the lower limit for the number of iterations.
 double getRelativeAccuracy()
          Get the actual relative accuracy.
 double getResult()
          Get the result of the last run of the integrator.
 double integrate(double min, double max)
          Integrate the function in the given interval.
 void resetMaximalIterationCount()
          Reset the upper limit for the number of iterations to the default.
 void resetMinimalIterationCount()
          Reset the lower limit for the number of iterations to the default.
 void resetRelativeAccuracy()
          Reset the relative accuracy to the default.
 void setMaximalIterationCount(int count)
          Set the upper limit for the number of iterations.
 void setMinimalIterationCount(int count)
          Set the lower limit for the number of iterations.
 void setRelativeAccuracy(double accuracy)
          Set the relative accuracy.
 

Method Detail

setMaximalIterationCount

void setMaximalIterationCount(int count)
Set the upper limit for the number of iterations.

Usually a high iteration count indicates convergence problem. However, the "reasonable value" varies widely for different cases. Users are advised to use the default value.

A ConvergenceException will be thrown if this number is exceeded.

Parameters:
count - maximum number of iterations

getMaximalIterationCount

int getMaximalIterationCount()
Get the upper limit for the number of iterations.

Returns:
the actual upper limit

resetMaximalIterationCount

void resetMaximalIterationCount()
Reset the upper limit for the number of iterations to the default.

The default value is supplied by the implementation.

See Also:
setMaximalIterationCount(int)

setMinimalIterationCount

void setMinimalIterationCount(int count)
Set the lower limit for the 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.

A ConvergenceException will be thrown if this number is not met.

Parameters:
count - minimum number of iterations

getMinimalIterationCount

int getMinimalIterationCount()
Get the lower limit for the number of iterations.

Returns:
the actual lower limit

resetMinimalIterationCount

void resetMinimalIterationCount()
Reset the lower limit for the number of iterations to the default.

The default value is supplied by the implementation.

See Also:
setMinimalIterationCount(int)

setRelativeAccuracy

void setRelativeAccuracy(double accuracy)
Set the relative accuracy.

This is used to stop iterations.

Parameters:
accuracy - the relative accuracy
Throws:
java.lang.IllegalArgumentException - if the accuracy can't be achieved or is otherwise deemed unreasonable

getRelativeAccuracy

double getRelativeAccuracy()
Get the actual relative accuracy.

Returns:
the accuracy

resetRelativeAccuracy

void resetRelativeAccuracy()
Reset the relative accuracy to the default.

The default value is provided by the implementation.

See Also:
setRelativeAccuracy(double)

integrate

double integrate(double min,
                 double max)
                 throws ConvergenceException,
                        FunctionEvaluationException,
                        java.lang.IllegalArgumentException
Integrate the function in the given interval.

Parameters:
min - the lower bound for the interval
max - the upper bound for the interval
Returns:
the value of integral
Throws:
ConvergenceException - if the maximum iteration count is exceeded or the integrator detects convergence problems otherwise
FunctionEvaluationException - if an error occurs evaluating the function
java.lang.IllegalArgumentException - if min > max or the endpoints do not satisfy the requirements specified by the integrator

getResult

double getResult()
                 throws java.lang.IllegalStateException
Get the result of the last run of the integrator.

Returns:
the last result
Throws:
java.lang.IllegalStateException - if there is no result available, either because no result was yet computed or the last attempt failed

getIterationCount

int getIterationCount()
                      throws java.lang.IllegalStateException
Get the number of iterations in the last run of the integrator.

This is mainly meant for testing purposes. It may occasionally help track down performance problems: if the iteration count is notoriously high, check whether the function is evaluated properly, and whether another integrator is more amenable to the problem.

Returns:
the last iteration count
Throws:
java.lang.IllegalStateException - if there is no result available, either because no result was yet computed or the last attempt failed