Re: Diff. Equations with "Changeable" Parameters

*To*: mathgroup at smc.vnet.net*Subject*: [mg51701] Re: Diff. Equations with "Changeable" Parameters*From*: Curt Fischer <crf3 at po.cwru.edu>*Date*: Fri, 29 Oct 2004 03:40:05 -0400 (EDT)*References*: <clpsou$abt$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Krunom Ilicevic wrote: > I have solved diff. equations in this kind of a way: > > NDSolve[{x'[t]=y[t],y[0]=0}, {y'[t]=x+Sin[t]+c*y[t]},{x,y},{t,0,2Pi}] > > and parameter c was 1, but how to write this algorithm if c is: > > c=0, if y<=-1 > > c=1, if -1<y<1 > > c=2, if y>=1 > > How to include this variable parameter c in my NDSolve method? You used single equals "=" rather than the double equals "==" that Mathematica expects when using NDSolve. The answer to your question is to use UnitStep. varCsoln = NDSolve[{x'[t] == y[t], y[ 0] == 0, y'[t] == x[t] + Sin[t] + (UnitStep[y[t] + 1] + UnitStep[y[t] - 1])*y[t], x[0] == 0}, {x[t], y[t]}, {t, 0, 2Pi}] -- Curt Fischer