       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 == 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
>
> 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:= sols =
NDSolve[{i'[t] == (1/8.516011) (-i[t] + 0.596120754),
i == 0.219319}, i, {t, 1, 4}]

i[3.8] /. First@sols

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

Out= 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:= sols =
NDSolve[{i'[t] == (1/8.516011) (-i[t] + 0.596120754),
i == 0.219319}, i[t], {t, 1, 4}]

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

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

Out= 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