de.torstennahm.integrate.sparse
Class EstimateIntegrator

java.lang.Object
  extended by de.torstennahm.integrate.Integrator<Evaluator>
      extended by de.torstennahm.integrate.sparse.EstimateIntegrator

public class EstimateIntegrator
extends Integrator<Evaluator>

Sparse grid integrator that uses a hybrid of non-adaptive simplicial strategy and adaptive estimation of the index contributions. From all valid indices, the one with the highest expected contribution will be added to the index set in each step. The expected contribution is obtained as an estimate from the contributions of the direct predecessors. Either the geometric average, the maximum or the minimum of these contributions can be used as an estimate.

The controller will also intercalate indices from the standard simplex. This increases robustness for difficult functions. The quota of these simplicial indices may be set between 0 and 1. The quota sets the relative amout of simplicial indices to be used. A quota of 1 thus makes the controller default to standard non-adaptive sparse grid integration.

For the error estimate, the sum of the absolute values of the contributions of all those indices in the index set is used that do not have any forward neighbors in the index set.

This class is thread-safe.

Author:
Torsten Nahm
See Also:
Integrator, IntegrationResult, Evaluator, Visualizer

Nested Class Summary
protected static class EstimateIntegrator.EstimateData
           
protected  class EstimateIntegrator.InternalIntegrator
           
 
Field Summary
static int GEOMETRIC
          Averaging mode for forward error estimation.
static int MAXIMUM
          Averaging mode for forward error estimation.
static int MINIMUM
          Averaging mode for forward error estimation.
protected  int mode
          Averaging mode used for forward error estimation
protected  double simplexQuota
          Quotient of simplicial indices to use
protected  Index zeroIndex
           
 
Constructor Summary
EstimateIntegrator()
          Constructs the estimate sparse integrator with the default settings.
EstimateIntegrator(double simplexQuota, int mode)
          Construct the estimate sparse integrator with the specified simplex quota.
 
Method Summary
 IntegrationResult integrate(Evaluator evaluator, StopCondition condition, java.util.List<Visualizer> visualizers)
          Performs numerical integration of the integrand until the given condition is fulfilled.
 java.lang.String toString()
           
 
Methods inherited from class de.torstennahm.integrate.Integrator
integrate, integrateAbsTol, integrateAbsTol, integrateByPoints, integrateByPoints, integrateRelTol, integrateRelTol
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

GEOMETRIC

public static final int GEOMETRIC
Averaging mode for forward error estimation.

See Also:
Constant Field Values

MAXIMUM

public static final int MAXIMUM
Averaging mode for forward error estimation.

See Also:
Constant Field Values

MINIMUM

public static final int MINIMUM
Averaging mode for forward error estimation.

See Also:
Constant Field Values

mode

protected final int mode
Averaging mode used for forward error estimation


simplexQuota

protected final double simplexQuota
Quotient of simplicial indices to use


zeroIndex

protected final Index zeroIndex
Constructor Detail

EstimateIntegrator

public EstimateIntegrator()
Constructs the estimate sparse integrator with the default settings. The constructor has the same result as using a simplex quota of 0.2 in EstimateIntegrator(double, int) and geometric estimation.

See Also:
EstimateIntegrator(double, int)

EstimateIntegrator

public EstimateIntegrator(double simplexQuota,
                          int mode)
Construct the estimate sparse integrator with the specified simplex quota. For simplex quota 0, only the estimated contribution for an index is used as priority. For simplex quota 1, only simplicial indices are used, and the integrator defaults to standard non-adaptive sparse grid integration.

Parameters:
simplexQuota - quota of simplicial indices used, must be between 0 and 1
mode - estimate mode, one of GEOMETRIC, MAXIMUM, MINIMUM
Throws:
java.lang.IllegalArgumentException - if the quota is out of range
Method Detail

integrate

public IntegrationResult integrate(Evaluator evaluator,
                                   StopCondition condition,
                                   java.util.List<Visualizer> visualizers)
                            throws IntegrationFailedException
Description copied from class: Integrator
Performs numerical integration of the integrand until the given condition is fulfilled.

Specified by:
integrate in class Integrator<Evaluator>
Parameters:
evaluator - object to be integrated
condition - stop condition
visualizers - list of visualizers or null for no visualization
Returns:
result of integration
Throws:
IntegrationFailedException - if an integration error occurs

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object