Re: integrate an interpolated function

• To: mathgroup at smc.vnet.net
• Subject: [mg70320] Re: integrate an interpolated function
• From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
• Date: Fri, 13 Oct 2006 01:29:59 -0400 (EDT)
• Organization: The Open University, Milton Keynes, UK
• References: <egl2qh\$4o3\$1@smc.vnet.net>

```wtplasar at ehu.es wrote:
> Hi,
>
> I have defined numerical derivatives of functions by interpolation,
> because for some complicated numerical functions I was getting
> convergence problems using ND.
>
> I have defined the second derivative of a 2 variable function by
> interpolating the function in a square region with the point where I
> want to evaluate the function at its center. I do it here for Sin[x*y]
> as an example.
>
> yyder[om_?NumericQ,
>       w_?NumericQ, h_?NumericQ] := D[FunctionInterpolation[Sin[x*y],
> {x, om - \
> h, om + h}, {y, w - h, w + h}][x, y], {y, 2}] /. x -> om /. y -> w
>
> Then I want to perform an operation on this function which involves
> integrating it over one of the variables (multiplying it by another
> function, but that does not matter).
>
> So I do
>
> fun[w_?NumericQ, h_?NumericQ] := NIntegrate[yyder[om, w, h], {om, 0,
> 1}]
>
> and I get a series of errors like:
>
> FunctionInterpolation::range: Argument {x, om - 0.3, om + 0.3} is not
> in the
> form of a range specification, {x, xmin, xmax}.
>
> FunctionInterpolation::range: Argument {#2, #3, #4} is not in the form
> of a
> range specification, {x, xmin, xmax}
>
> and so on.
>
> Can you help me? Thanks,
>
> Ruth
>
Hi Ruth,

Have you try your functions with a fresh kernel? Could you provide
MathGroup an example of a call to the function fun that does produce the
error messages you reported. It works correctly on my system:

In[1]:=
yyder[(om_)?NumericQ, (w_)?NumericQ, (h_)?NumericQ] :=
D[FunctionInterpolation[Sin[x*y], {x, om - h,
om + h}, {y, w - h, w + h}][x, y], {y, 2}] /.
x -> om /. y -> w

In[2]:=
fun[(w_)?NumericQ, (h_)?NumericQ] :=
NIntegrate[yyder[om, w, h], {om, 0, 1}]

In[3]:=
fun[1, 2]

Out[3]=
-0.221297

In[4]:=
\$Version

Out[4]=
"5.2 for Microsoft Windows (June 20, 2005)"

Regards,
Jean-Marc

```

• Prev by Date: Re: Update on Weinberg-Sallam model in super symmetry as E8xE8-> energy of split
• Next by Date: RE: RelaTime3D
• Previous by thread: integrate an interpolated function
• Next by thread: Re: Definition of SE (standard error) in LinearRegress and NonlinearRegress