Question: Including regular discontinuities in a system of ODEs


I am woking on a pharmo model for a freind, and it includes a variable called depot that needs to jump up by 150 every 24 hours.
currently I have written it as:

diff(Depot(t), t) = piecewise(t = 0, -Ka*Depot(t)+150, t = 24, -Ka*Depot(t)+150, -Ka*Depot(t))

clearly thats wrong though, as the +150 s don't make it jump up by 150 because of the small step size.

(at t=0, it adds 150*a small step size, at 24 it looks like it adds 150* a vastly smaller step size, what I want would be much closer to a series of pulses each decaying to almost 0 and then getting boosted to just over 150)

My intuition is that i need to use the dirac delta function but in such a way that its integral adds 150 instantaneoulsy every 24 hours. I have no idea how to do that!

I've just realised that this ode has an obvious solution, so you can trivially make a function that adds 150 every 24 hours and exponentially decays in between.  However there are other models that hopefully i'll being doing similar work on, that don't have nice solutions]


Please Wait...