Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2011

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

Search the Archive

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



  • Prev by Date: Re: how do you prevent numerator expansion when using 'Together'?
  • Next by Date: Re: Full simplify problem
  • Previous by thread: Defining a variable from an error message (NDSolve::ndsz)
  • Next by thread: problem while solving equations