Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1996
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1996

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

Search the Archive

Re: Problem with discontinuity in NDSolve[]

  • To: mathgroup at smc.vnet.net
  • Subject: [mg4429] Re: [mg4301] Problem with discontinuity in NDSolve[]
  • From: Andrei Constantinescu <constant at xanthe.polytechnique.fr>
  • Date: Mon, 22 Jul 1996 01:19:41 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

 Dear Axel,

there is a fundamental math problem with your system.

If you compute :

 NDSolve[{y'[t] == 10 - y[t] * If[t-15 <= 0, 0, 1], 
         y[0] == 0}, y, {t,0,20}]

the solution is simple because the system has two behaviours 
one for t < 0 and another one for t > 0. So everything is nice.

But if you write:


NDSolve[{y'[t] == 10 - y[t] * If[y[t]-15 <= 0, 0, 1], 
         y[0] == 0}, y, {t,0,20}]

then the system has also two behavoiurs one for y < 0 and
another one for y > 15 . 

Unfortunately each time as the system reaches y = 15, its 
switching to the second exponential behaviour, but then the solutions
also decreases so you arrive again at y < 0, and you switch again, 

... which gives a neverendind story, and of course the computation
never converges !


In order to obtain a behaviour until y reaches 15 and another one 
after (even if y < 15 again !), you have to introduce an internal
parameter, governing the swich:
    alpha = 0 until y = 15
    alpha = 1 if    y was already been 15
... which means another equation to your problem of the sort:

   alpha == If[ alpha == 1 || y == 15 , 1 , 0 ]


 a + andrei

______________________________________________________________________
  Andrei Constantinescu               constant at athena.polytechnique.fr   
                                                                       
  LMS Ecole Polytechnique                  tel:   (33)-1-69.33.33.30
  91128 PALAISEAU cedex - FRANCE           fax:   (33)-1-69.33.30.26    

==== [MESSAGE SEPARATOR] ====


  • Prev by Date: Horner scheme function ?
  • Next by Date: Pairings
  • Previous by thread: Re: Problem with discontinuity in NDSolve[]
  • Next by thread: Re: Re : MMA graphics as *.gif files