Re: Calculus and InterpolatingFunction

*To*: mathgroup at smc.vnet.net*Subject*: [mg121684] Re: Calculus and InterpolatingFunction*From*: DrMajorBob <btreat1 at austin.rr.com>*Date*: Mon, 26 Sep 2011 04:13:00 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <201109221125.HAA26698@smc.vnet.net>*Reply-to*: drmajorbob at yahoo.com

1) Integrate handles symbolic functions like Sin and Cos. NIntegrate handles numeric functions that cannot, even in principle, be integrated symbolically. 2) Interpolation does NOT give a function "given by some formula". Bobby On Sun, 25 Sep 2011 10:36:32 -0500, Murray Eisenberg <murray at math.umass.edu> wrote: > But why must NIntegrate be called by Integrate here? Is it merely the > fact that the interpolating function has floating-point numbers in it? > > If I have what I would reasonably call an "explicit" function f, given > by some formula, and if it's possible to find a (piecewise) > antiderivative exactly, then I would expect Integrate to work directly > with that function -- even in finding an indefinite integral > Integrate[f[x],x]. > > On 9/24/11 10:33 PM, DrMajorBob wrote: >> Interpolation does give "an explicit function" in any sense of >> "explicit" >> that I can think of. The problem you ran into is (IMHO) a "bug" or >> "feature lack" in Integrate. It should call NIntegrate when necessary, >> but >> it did not, in the OP's example. >> >> Bobby >> >> On Fri, 23 Sep 2011 02:45:03 -0500, Murray Eisenberg >> <murray at math.umass.edu> wrote: >> >>> Two remaining problems: >>> >>> (1) The Documentation Center page for Interpolation says, >>> "Interpolation >>> returns an InterpolatingFunction object, which can be used like any >>> other pure function." >>> >>> Manifestly that is not the case. Thus the following, for a pure >>> function, _does_ work: >>> >>> f = #^2& >>> Integrate[f[x] + 1, {x, 1, 10}] >>> >>> (2) While the solutions you proposed both work, the latter using Map >>> would be problematic for integrands involving the InterpolatingFunction >>> in more complicated ways, e.g.: >>> >>> f = Interpolation[data]; >>> Integrate[#, {x, 1, 10}]& /@ (Sin[f[x]]) >>> 0.576208 >>> NIntegrate[Sin[f[x]], {x, 1, 10}] >>> 0.607007 >>> >>> Is there some way to obtain an explicit function from an >>> InterpolatingFunction object? >>> >>> >>> On 9/22/11 7:25 AM, Bob Hanlon wrote: >>>> data = RandomReal[#]*2& /@ Range[1, 10]; >>>> >>>> f = Interpolation[data]; >>>> >>>> Integrate[f[x], {x, 1, 10}] >>>> >>>> 52.9041 >>>> >>>> Use NIntegrate >>>> >>>> NIntegrate[f[x] + 1, {x, 1, 10}] >>>> >>>> 61.9041 >>>> >>>> Or Map over the expression >>>> >>>> Integrate[#, {x, 1, 10}]& /@ (f[x] + 1) >>>> >>>> 61.9041 >>>> >>>> >>>> Bob Hanlon >>>> >>>> ---- Just A Stranger<forpeopleidontknow at gmail.com> wrote: >>>> >>>> ============= >>>> I'm trying to get a definite integral for an InterpolatingFunction. It >>>> works >>>> if it is the function by itself, but not for some reason >>>> arithmetically >>>> combining the InterpolatingFunction with another function makes it not >>>> return a value. e.g. >>>> >>>> >>>> In[1]:= >>>> data = RandomReal[#]*2& /@ Range[1, 10]; >>>> f = Interpolation[data]; >>>> >>>>> Integrate[f[x], {x, 1, 10}] >>>> Out[1]:=40.098 >>>> >>>> So far so good. But just a little bit of arithmetic in the integral >>>> and >>>> it >>>> doesn't work anymore: >>>> In[2]:= >>>> Integrate[f[x]+1, {x, 1, 10}] >>>> Out[2]:= >>>> Integrate[Plus[1, InterpolatingFunction[][x]], List[x, 1, 10]] >>>> >>>> (That last answer was actually the output with //FullForm applied) >>>> Why won't it give me a numerical evaluation? Is there anyway to make a >>>> continuous function from data that will seemlessly work with >>>> Integrate? >>>> I'm >>>> thinking of constructing a piecwise function using Fit, Piecwise, and >>>> a >>>> Table for the arguments to Piecewise. But I would think Interpolation >>>> might >>>> have worked and been easier. I want to figure out if I am I doing >>>> something >>>> wrong with Interpolation before I start trying to tackle a slightly >>>> more >>>> complicated piecewise defined function ? >>>> >>>> >>> >> >> > -- DrMajorBob at yahoo.com

**Follow-Ups**:**Re: Calculus and InterpolatingFunction***From:*Murray Eisenberg <murray@math.umass.edu>

**References**:**Re: Calculus and InterpolatingFunction***From:*Bob Hanlon <hanlonr@cox.net>

**Re: Calculus and InterpolatingFunction**

**Re: A fast way to compare two vectors**

**Re: Calculus and InterpolatingFunction**

**Re: Calculus and InterpolatingFunction**