Re: Defining a variable from an error message (NDSolve::ndsz)
- To: mathgroup at smc.vnet.net
- Subject: [mg122291] Re: Defining a variable from an error message (NDSolve::ndsz)
- From: Oliver Ruebenkoenig <ruebenko at wolfram.com>
- Date: Sun, 23 Oct 2011 06:26:22 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201110221010.GAA29885@smc.vnet.net>
On Sat, 22 Oct 2011, Jonathan Frazer wrote:
> Hi Everyone,
>
> Using the example from the NDSolve::ndsz section in the documentation centre, evaluating
>
> NDSolve[{(2 - f[x]) f'[x] == f[x], f[0] == 1}, f, {x, 0, 5}]
>
> gives the error message
>
> "NDSolve:ndsz : At x == 0.38629402687577696`, step size is effectively zero; singularity or stiff system suspected".
>
> What I would like to do is be able to automatically define a variable xdanger = 0.38629402687577696 so that I can use it in a subsequent part of the code.
>
> Does anyone have a suggestion for how I might do this?
>
> Many thanks,
>
> Jonny
>
>
> P.S. In similar problems I usually can make use of Check one way or another but in this case I want to be able to use the variable xdanger to make an inequality. For this reason, I don't think Check is applicable.
>
--
Jonny,
you could extract the value from the interpolating function, like so:
if = First@(f /.
NDSolve[{(2 - f[x]) f'[x] == f[x], f[0] == 1}, f, {x, 0, 5}])
Last[if["Grid"]]
Hope this helps,
Oliver
- References:
- Defining a variable from an error message (NDSolve::ndsz)
- From: Jonathan Frazer <J.Frazer@sussex.ac.uk>
- Defining a variable from an error message (NDSolve::ndsz)