MathGroup Archive 1998

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

Search the Archive

Re: Values from InterpolatingFunction



Volker Doerr wrote:
> 
> Hello to all,
> 
> I have the following
> 
>    InterpolatingFunction[{{0.,365.}},<>][t]
> 
> produced by Function D from another InterpolatingFunction, and want
> simply to get the approximate values at specific  points. I cannot find
> a direct solution, probably because  the function has symbolic form.
> 
> Anybody out there who can help me?

> vd@cascade.de

Volker

(1) First I'll get an interpolating function.

NDSolve[{y'[t]== Sin[t], y[0]== 1}, y[t], {t,0,Pi}]

{{y[t]->]InterpolatingFunction[{{0.,3.14159}},"<>"][t]}}

Get the formula

y[t]/.%[[1]]

InterpolatingFunction[{{0.,3.14159}},"<>"][t]

Differentiate wrt 

dyt=D[%,t]

InterpolatingFunction[{{0.,3.14159}},"<>"][t]

All the code is stored in InterpolatingFunction[[..]  (ds will only
evaluate when t is numeric and real - this is why we can use D[..]
above) 

This is the position that you are in

Now we can either use replacement

dyt/. t-> Pi/3

0.866035

or extract the function

s = dyt[[0]]

InterpolatingFunction[{{0.,3.14159}},"<>"]

and use it like any other function

s[Pi/3]

0.866035

(2) At any stage we can use functions instead of formulas

NDSolve[{y'[t]== Sin[t], y[0]== 1}, y, {t,0,Pi}]

{{y->InterpolatingFunction[{{0.,3.14159}},"<>"]}}

Get the function

y/.%[[1]]

InterpolatingFunction[{{0.,3.14159}},"<>"]

Differentiate

s=%'

InterpolatingFunction[{{0.,3.14159}},"<>"]

s[Pi/3]

0.866035
-- 
Allan Hayes
Training and Consulting
Leicester, UK
hay@haystack.demon.co.uk
http://www.haystack.demon.co.uk
voice: +44 (0)116 271 4198
fax: +44 (0)116 271 8642




  • Prev by Date: Re: Phase portrait with arrows
  • Next by Date: Re: This Should Be Easy.
  • Prev by thread: RE: Values from InterpolatingFunction
  • Next by thread: Re: Values from InterpolatingFunction