public static IntegrationResult Integrate(
Func<IReadOnlyList<double>, double> function,
IReadOnlyList<Interval> volume
)
Public Shared Function Integrate (
function As Func(Of IReadOnlyList(Of Double), Double),
volume As IReadOnlyList(Of Interval)
) As IntegrationResult
public:
static IntegrationResult^ Integrate(
Func<IReadOnlyList<double>^, double>^ function,
IReadOnlyList<Interval>^ volume
)
static member Integrate :
function : Func<IReadOnlyList<float>, float> *
volume : IReadOnlyList<Interval> -> IntegrationResult
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).
ArgumentNullException | function or volume is . |
NonconvergenceException | The required accuracy could not be achieved using the evaulation budget. |