[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