Re: NDSolve - how to bypass safety chceck?
- To: mathgroup at smc.vnet.net
- Subject: [mg111373] Re: NDSolve - how to bypass safety chceck?
- From: sean <sean_incali at yahoo.com>
- Date: Thu, 29 Jul 2010 06:44:03 -0400 (EDT)
- References: <i2m4lo$o4n$1@smc.vnet.net> <i2mhbu$3c0$1@smc.vnet.net>
Maybe this helps Below throws max steps error. t1 = 0; t2 = 10000; sol = NDSolve[{x'[t] == y[t], y'[t] == x[t] - x[t]^3 - .15 y[t] += .3 Cos[t], x[0] == -1, y[0] == 1}, {x[t], y[t]}, {t, t1, t2}] Plot[Evaluate[{x[t], y[t]} /. sol], {t, 0, 100}] ListPlot[Table[Evaluate[{x[t], y[t]} /. sol], {t, t1, t2, 2 Pi}]] NDSolve::mxst: Maximum number of 10000 steps reached at the point t == 676.9646955474411`. >> One way to circumvent is to increase the number of steps. For above system, something like 500000 will do it. I found it by trial and error. maybe it will work for your system. t1 = 0; t2 = 10000; sol = NDSolve[{x'[t] == y[t], y'[t] == x[t] - x[t]^3 - .15 y[t] + .3 Cos[t], x[0] == -1, y[0] == 1}, {x[t], y[t]}, {t, t1, t2}, MaxSteps -> 500000] Plot[Evaluate[{x[t], y[t]} /. sol], {t, 0, 100}] ListPlot[Table[Evaluate[{x[t], y[t]} /. sol], {t, t1, t2, 2 Pi}]] The other way is to set it to infinity, but as you said it may take infinite time. No way of knowing without the actual system. Sean On Jul 27, 4:53 am, "slawek" <sla... at host.pl> wrote: > U=BFytkownik "J. Batista" <jbatista... at gmail.com> napisa=B3 w wiadomo= =B6ci grup > dyskusyjnych:i2m4lo$o4... at smc.vnet.net... > > > Here is a possible answer to your question. You can append the optio= n > > MaxSteps -> Infinity to the end of your NDSolve command line. This w= ill > > allow NDSolve to use an unlimited number of steps in generating a > > solution. > > Hopefully this helps. > > > Regards, > > J. Batista > > The infinite number of steps would take infinite time. > > Thus it's not so brillant idea as it pretend to be. > > slawek