Re: Calculus and InterpolatingFunction
- To: mathgroup at smc.vnet.net
- Subject: [mg121664] Re: Calculus and InterpolatingFunction
- From: Brentt <brenttnewman at gmail.com>
- Date: Sat, 24 Sep 2011 22:34:24 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201109221125.HAA26698@smc.vnet.net>
Thank you, I forgot about the Numerical functions, which is a more natural choice. But yea, it is still puzzling why it works for one of the expressions, but not the other. Problems solved, but the mystery continues...? On Fri, Sep 23, 2011 at 12:45 AM, 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 ? > > > > > > -- > Murray Eisenberg murray at math.umass.edu > Mathematics & Statistics Dept. > Lederle Graduate Research Tower phone 413 549-1020 (H) > University of Massachusetts 413 545-2859 (W) > 710 North Pleasant Street fax 413 545-1801 > Amherst, MA 01003-9305 > >
- References:
- Re: Calculus and InterpolatingFunction
- From: Bob Hanlon <hanlonr@cox.net>
- Re: Calculus and InterpolatingFunction