Click or drag to resize

MultiFunctionMathIntegrate Method (FuncIReadOnlyListDouble, Double, IReadOnlyListInterval)

Estimates a multi-dimensional integral.

Namespace:  Meta.Numerics.Analysis
Assembly:  Meta.Numerics (in Meta.Numerics.dll) Version: 4.1.4
Syntax
public static IntegrationResult Integrate(
	Func<IReadOnlyList<double>, double> function,
	IReadOnlyList<Interval> volume
)

Parameters

function
Type: SystemFuncIReadOnlyListDouble, Double
The function to integrate.
volume
Type: System.Collections.GenericIReadOnlyListInterval
The volume over which to integrate.

Return Value

Type: IntegrationResult
A numerical estimate of the multi-dimensional integral.
Exceptions
ExceptionCondition
ArgumentNullExceptionfunction or volume is .
NonconvergenceExceptionThe required accuracy could not be achieved using the evaulation budget.
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).

See Also