MultiFunctionMathIntegrate Method (FuncIReadOnlyListDouble, Double, IReadOnlyListInterval) |
Namespace: Meta.Numerics.Analysis
public static IntegrationResult Integrate( Func<IReadOnlyList<double>, double> function, IReadOnlyList<Interval> volume )
Exception | Condition |
---|---|
ArgumentNullException | function or volume is . |
NonconvergenceException | The required accuracy could not be achieved using the evaulation budget. |
For multi-dimensional integration, the default accurary targets and evaluation budget varies with the dimension of the integral. The default relative accuracy target falls from about 10-7 (close to full single precision) for d=2 to about 10-1 (10%) for d=15. The default absolute accuracy target falls from about 10-8 to about 10-2 over the same range. To achieve those targets, it allows up to about 100,000 evaluations of the integrand for d=2, rising up to about 1 billion evaluations for d=15.
You can change the accuracy targets and evaluation budget by passing an EvaluationSettings object to Integrate(FuncIReadOnlyListDouble, Double, IReadOnlyListInterval, IntegrationSettings) overload. By decreasing the accuracy you demand or increasing the evaluation budget, you may be able to successfully complete integrals that would fail for the default settings.
For more information on multi-dimensional integration, see Integrate(FuncIReadOnlyListDouble, Double, IReadOnlyListInterval, IntegrationSettings).