NIntegrateInterpolatingFunction
NIntegrateInterpolatingFunction[f,{x,xmin,xmax}]
gives a numerical approximation to an integral with InterpolatingFunction objects in the integrand.
NIntegrateInterpolatingFunction[f,{x,xmin,xmax},{y,ymin,ymax},…]
gives a numerical approximation to a multidimensional integral.
Details and Options
- To use NIntegrateInterpolatingFunction, you first need to load the Function Approximations Package using Needs["FunctionApproximations`"].
- NIntegrateInterpolatingFunction uses the function NIntegrate, but it breaks up the domain of integration into sections where the InterpolatingFunction objects are smooth.
- If the integrand f does not contain any InterpolatingFunction objects, NIntegrateInterpolatingFunction is equivalent to NIntegrate.
- The arguments of the InterpolatingFunction objects may themselves be univariate functions of the integration variables.
- If the integrand f is simply an InterpolatingFunction object, it is better to use Integrate because this gives a result that is exact for the polynomial approximation used in the InterpolatingFunction object.
- Numerically integrating a multidimensional integral using NIntegrateInterpolatingFunction with InterpolatingFunction objects containing a large number of nodes may take significantly longer than using NIntegrate.
- NIntegrateInterpolatingFunction has the same options as NIntegrate.
Examples
open allclose allBasic Examples (1)
A trapezoidal approximation to :
Since is not smooth, NIntegrate will generate a warning message:
Using NIntegrateInterpolatingFunction produces a slightly more accurate answer without any error messages:
In this case the integrand is simply an interpolating function, so you can use Integrate to check:
Scope (3)
Generalizations & Extensions (1)
Properties & Relations (1)
A trapezoidal approximation to Sin[π x]:
Accumulate the sampling points used by NIntegrateInterpolatingFunction:
Plot the sampling points. The function is sampled at the x coordinates in the order of the y coordinates:
Accumulate the sampling points used by NIntegrate:
With NIntegrate, the nonsmooth behavior of f[x] near the points x= produces an error message and requires many recursive steps to evaluate accurately:
Increasing the order of the interpolation will produce a smoother function:
With a smoother function, fewer function evaluations are needed by NIntegrate:
If the interpolation is smooth enough, NIntegrate will require fewer function evaluations than NIntegrateInterpolatingFunction:
Possible Issues (1)
Multidimensional interpolating functions with a large number of nodes may take much longer to integrate using NIntegrateInterpolatingFunction instead of NIntegrate:
With NIntegrate, only one integral is evaluated, but the nonsmooth behavior generates many recursive steps:
Using NIntegrateInterpolatingFunction, the integral is broken up into integrals over a smaller domain, where the integrand is smooth:
Text
Wolfram Research (2010), NIntegrateInterpolatingFunction, Wolfram Language function, https://reference.wolfram.com/language/FunctionApproximations/ref/NIntegrateInterpolatingFunction.html.
CMS
Wolfram Language. 2010. "NIntegrateInterpolatingFunction." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/FunctionApproximations/ref/NIntegrateInterpolatingFunction.html.
APA
Wolfram Language. (2010). NIntegrateInterpolatingFunction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/FunctionApproximations/ref/NIntegrateInterpolatingFunction.html