MathGroup Archive 2008

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

Search the Archive

Re: Using NDSolve and Finding a specific Value

  • To: mathgroup at smc.vnet.net
  • Subject: [mg85366] Re: Using NDSolve and Finding a specific Value
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Thu, 7 Feb 2008 06:32:19 -0500 (EST)
  • Organization: The Open University, Milton Keynes, UK
  • References: <foek87$i3s$1@smc.vnet.net>

Tara.Ann.Lorenz at gmail.com wrote:

> I am having an issue related to the NDSolve function (I am using
> Version 6).  The following example illustrates the problem I am
> having:
> 
> Input:
> sols = NDSolve[{i'[t] == (1/8.516011) (-i[t] + 0.596120754),
>    i[1] == 0.219319}, i[t], {t, 1, 4}]
> 
> Output:
> {{i[t]->InterpolatingFunction[{{1.,4.}},<>][t]}}
> 
> I then would like to solve i[t] for t=3.8
> According to the Mathematica website, I should be able to enter the
> following input to receive my answer:
> 
> i[3.8]/.sols
> 
> However, my output is simply i[3.8] and not a numerical value.  What
> else can I try to get a numerical value from the interpolating
> function.

To use the above syntax, you must specify the function without any 
variable name, i.e. just 'i' rather than 'i[t]'. (Note that this is 
commonly regarded as good practice when using DSolve/NDSolve))

In[1]:= sols =
  NDSolve[{i'[t] == (1/8.516011) (-i[t] + 0.596120754),
    i[1] == 0.219319}, i, {t, 1, 4}]

i[3.8] /. First@sols

Out[1]= {{i->InterpolatingFunction[{{1.,4.}},<>]}}

Out[2]= 0.324902


Yet, if you prefer the syntax function + variable name, you can use an 
additional transformation rule to get the numeric value at a specific point.

In[3]:= sols =
  NDSolve[{i'[t] == (1/8.516011) (-i[t] + 0.596120754),
    i[1] == 0.219319}, i[t], {t, 1, 4}]

i[t] /. First@sols /. t -> 3.8

Out[3]= {{i[t]->InterpolatingFunction[{{1.,4.}},<>][t]}}

Out[4]= 0.324902


Regards,
-- 
Jean-Marc


  • Prev by Date: Re: MathLink with MS Visual Studio 2008
  • Next by Date: Re: Displaying Real Numbers
  • Previous by thread: Using NDSolve and Finding a specific Value
  • Next by thread: Re: Using NDSolve and Finding a specific Value