Re: Calculations with Interpolating Functions

*To*: mathgroup at smc.vnet.net*Subject*: [mg88524] Re: Calculations with Interpolating Functions*From*: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>*Date*: Wed, 7 May 2008 07:09:20 -0400 (EDT)*Organization*: The Open University, Milton Keynes, UK*References*: <fvpcqn$mhn$1@smc.vnet.net>

ï¿½ wrote: > I obtain an Interpolating function as a solution of a differential equation > with the command NDSolve, lets call it =93solution=94, which gives x(t). Next I > want to use this solution for further calculations. With the commands > =93result=Evaluate[x(t)/. First[solution]]=94 or =93result= x(t)/.solution, > {t,0,tmax}=94 I do the plot x(t) without any problems. Now, with version 5.2 I > manage to integrate x(t) or linear functions of it. But when I try to > integrate non linear functions of x(t), like x(t)^2 or Sin[x(t)] (which is > what I want), Mathematica is unable to give a numerical result, all I get > is an integral saying that there is an InterpolatingFunction in the > integrand. With Mathematica 6 the linear integration does not work either. You message is difficult to read, but have you tried *NIntegrate[]*? For instance, sol = NDSolve[{y'[x] == y[x] Cos[x + y[x]], y[0] == 1}, y, {x, 0, 30}] y[x_] = y[x] /. sol[[1]] Plot[y[x], {x, 0, 30}] Integrate[y[x], {x, 5, 10}] NIntegrate[y[x]^2, {x, 5, 10}] {{y->InterpolatingFunction[{{0.,30.}},<>]}} InterpolatingFunction[{{0.,30.}},<>][x] 1.13807 0.327983 Regards, -- Jean-Marc