MultiFunctionMathIntegrate(FuncIReadOnlyListDouble, Double, IReadOnlyListInterval) Method

Estimates a multi-dimensional integral.

Definition

Namespace: Meta.Numerics.Analysis
Assembly: Meta.Numerics (in Meta.Numerics.dll) Version: 4.2.0+6d77d64445f7d5d91b12e331399c4362ecb25333
C#
public static IntegrationResult Integrate(
	Func<IReadOnlyList<double>, double> function,
	IReadOnlyList<Interval> volume
)

Parameters

function  FuncIReadOnlyListDouble, Double
The function to integrate.
volume  IReadOnlyListInterval
The volume over which to integrate.

Return Value

IntegrationResult
A numerical estimate of the multi-dimensional integral.

Remarks

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).

Exceptions

ArgumentNullExceptionfunction or volume is .
NonconvergenceExceptionThe required accuracy could not be achieved using the evaulation budget.

See Also