[R-sig-dyn-mod] Modeling dampened oscillator with random resets
Felix Schönbrodt
gmx at nicebread.de
Wed Jan 9 16:28:45 CET 2013
Thanks! Works like a charm.
Felix
Am 09.01.2013 um 16:07 schrieb Thomas Petzoldt <Thomas.Petzoldt at tu-dresden.de>:
> On 09.01.2013 15:33, Felix Schönbrodt wrote:
>> Dear list,
>>
>> using deSolve (or another package): is it possible to model a
>> dampened oscillator that is reset to new states at specific points?
>
> Yes, this is possible, using the event mechanism:
>
>
> library(deSolve)
> osci <- function (t, states, parms) {
> with(as.list(c(states, parms)), {
> dx <- y
> dy <- eta * x + zeta * y
> list(c(dx, dy))
> })
> }
>
> states <- c(x = 1, y = 0)
> out <- ode(states, osci, times = 1:200,
> parms = c(eta = -0.05, zeta = -0.02))
> plot(out)
>
>
> ### see ?events for details
> eventdat <- data.frame(var = "y", time = c(70, 120),
> value = c(0.7, 1), method = "add")
>
> out <- ode(states, osci, times = 1:200,
> parms = c(eta = -0.05, zeta = -0.02),
> events = list(data = eventdat))
> plot(out, which = "y")
> abline(v = eventdat$time, col = "red", lty = "dashed")
>
>
>
>
> ## Thomas P.
More information about the R-sig-dynamic-models
mailing list