Ravi Varadhan
2006-Nov-29 21:44 UTC
[R] How to solve differential equations with a delay (time lag)?
Hi, I would like to solve a system of coupled ordinary differential equations, where there is a delay (time lag) term. I would like to use the "lsoda" function "odesolve" package. However, I am not sure how to specify the delay term using the syntax allowed by odesolve. Here is an example of the kind of problem that I am trying to solve:> library(odesolve)yprime <- function(t, y, p) { # this function yd1 <- p["k1"] *(t <= p["T"]) - p["k2"] * y[2] yd2 <- p["k3"] * y[1](t - p["delay"]) - p["k4"] * y[2] # this is not syntactically valid, but it is what I would like to do list(c(yd1,yd2)) } times <- seq(0,30,by=0.1) y0 <- c(0,0) parms <- c(k1=0.7, k2=0.5, k3=0.2, k4=0.8, T=10, delay=5) Is there a way to incorporate delay in odesolve? Any hints would be much appreciated. Ravi. ---------------------------------------------------------------------------- ------- Ravi Varadhan, Ph.D. Assistant Professor, The Center on Aging and Health Division of Geriatric Medicine and Gerontology Johns Hopkins University Ph: (410) 502-2619 Fax: (410) 614-9625 Email: rvaradhan@jhmi.edu Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html ---------------------------------------------------------------------------- -------- [[alternative HTML version deleted]]
Ravi Varadhan
2006-Nov-29 22:09 UTC
[R] How to solve differential equations with a delay (time lag)?
Hi, I would like to add an additional piece of information to my previous posting: y[1](t) = 0, for all t in the interval (-delay, 0) This completes the specification of the problem. Thanks, Ravi. ---------------------------------------------------------------------------- ------- Ravi Varadhan, Ph.D. Assistant Professor, The Center on Aging and Health Division of Geriatric Medicine and Gerontology Johns Hopkins University Ph: (410) 502-2619 Fax: (410) 614-9625 Email: rvaradhan at jhmi.edu Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html ---------------------------------------------------------------------------- -------- -----Original Message----- From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Ravi Varadhan Sent: Wednesday, November 29, 2006 4:45 PM To: r-help at stat.math.ethz.ch Subject: [R] How to solve differential equations with a delay (time lag)? Hi, I would like to solve a system of coupled ordinary differential equations, where there is a delay (time lag) term. I would like to use the "lsoda" function "odesolve" package. However, I am not sure how to specify the delay term using the syntax allowed by odesolve. Here is an example of the kind of problem that I am trying to solve:> library(odesolve)yprime <- function(t, y, p) { # this function yd1 <- p["k1"] *(t <= p["T"]) - p["k2"] * y[2] yd2 <- p["k3"] * y[1](t - p["delay"]) - p["k4"] * y[2] # this is not syntactically valid, but it is what I would like to do list(c(yd1,yd2)) } times <- seq(0,30,by=0.1) y0 <- c(0,0) parms <- c(k1=0.7, k2=0.5, k3=0.2, k4=0.8, T=10, delay=5) Is there a way to incorporate delay in odesolve? Any hints would be much appreciated. Ravi. ---------------------------------------------------------------------------- ------- Ravi Varadhan, Ph.D. Assistant Professor, The Center on Aging and Health Division of Geriatric Medicine and Gerontology Johns Hopkins University Ph: (410) 502-2619 Fax: (410) 614-9625 Email: rvaradhan at jhmi.edu Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html ---------------------------------------------------------------------------- -------- [[alternative HTML version deleted]] ______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
Setzer.Woodrow at epamail.epa.gov
2006-Nov-29 22:26 UTC
[R] How to solve differential equations with a delay (time lag)?
lsoda does not solve delay differential equations, which is what you need to be able to do. A quick search on netlib (netlib.org) turned up one match for "delay differential equations": ode/ddverk.f, which might help (though not in R). R. Woodrow Setzer, Ph. D. National Center for Computational Toxicology US Environmental Protection Agency Mail Drop B205-01/US EPA/RTP, NC 27711 Ph: (919) 541-0128 Fax: (919) 541-1194 Ravi Varadhan <rvaradhan at jhmi. edu> To Sent by: r-help at stat.math.ethz.ch r-help-bounces at s cc tat.math.ethz.ch Subject [R] How to solve differential 11/29/2006 04:44 equations with a delay (time PM lag)? Hi, I would like to solve a system of coupled ordinary differential equations, where there is a delay (time lag) term. I would like to use the "lsoda" function "odesolve" package. However, I am not sure how to specify the delay term using the syntax allowed by odesolve. Here is an example of the kind of problem that I am trying to solve:> library(odesolve)yprime <- function(t, y, p) { # this function yd1 <- p["k1"] *(t <= p["T"]) - p["k2"] * y[2] yd2 <- p["k3"] * y[1](t - p["delay"]) - p["k4"] * y[2] # this is not syntactically valid, but it is what I would like to do list(c(yd1,yd2)) } times <- seq(0,30,by=0.1) y0 <- c(0,0) parms <- c(k1=0.7, k2=0.5, k3=0.2, k4=0.8, T=10, delay=5) Is there a way to incorporate delay in odesolve? Any hints would be much appreciated. Ravi. ---------------------------------------------------------------------------- ------- Ravi Varadhan, Ph.D. Assistant Professor, The Center on Aging and Health Division of Geriatric Medicine and Gerontology Johns Hopkins University Ph: (410) 502-2619 Fax: (410) 614-9625 Email: rvaradhan at jhmi.edu Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html ---------------------------------------------------------------------------- -------- [[alternative HTML version deleted]] ______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.