MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Calculus and InterpolatingFunction

On Wed, 21 Sep 2011 10:36:33 +0100, Just A Stranger  
<forpeopleidontknow at> 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 ?

This is slightly puzzling, though more in respect of why the first example  
worked than why the second one didn't. If it's numerical integration you  
wish to perform, NIntegrate is surely preferable to Integrate, and works  
for both cases given above:

In[3] := NIntegrate[f[x], {x, 1, 10}]

Out[3] = 32.2367

In[4] := NIntegrate[f[x] + 1, {x, 1, 10}]

Out[4] = 41.2367

  • Prev by Date: Re: Plot axis length and size ratio (TwoPlot revive)
  • Next by Date: Re: Calculus and InterpolatingFunction
  • Previous by thread: Re: Calculus and InterpolatingFunction
  • Next by thread: Not getting model output from a textured surface...