As I do not thoroughly understand the way 'lsoda' works, I face some difficulties to 'get' myself into the function(), though I changed the code as follows:
------------------------------ require(deSolve) qm<-0.36 y0<-c(0) parms<-c("K1","K2") times<-seq(0,10000,1) kinetic.model<-function(t,y,parms){ dq.dt = K1*C0 - (K1*m/V+ K2)*q list(dq.dt) } foo<-lsoda(y0,times,kinetic.model,parms) Error in func(time, state, parms, ...) : object 'K1' not found ------------------------------ 'K1' and 'K2' are parameters but 'C' is not a parameter, it's a dependant variable of the time. I actually express it as a function of q(t) to get this new equation dq/dt= K1*C0 - (K1*m/V+ K2)*q(t) where K1 and K2 are the unknown but desired parameters and {C0,m,V} are constant known values. Nevertheless, I still get this 'Error about object 'K1' not found'. Regards/Cordialement Benoit Boulinguiez -----Message d'origine----- De : Dieter Menne [mailto:dieter.me...@menne-biomed.de] Envoyé : jeudi 14 mai 2009 12:12 À : 'Benoit Boulinguiez' Objet : RE: [R] ode first step Try to hide yourself inside the function(). What would you see? No K1, for sure, no C, no K2. These are passed through parms, so parms["K1"] would work, but not for C, you should add it. -----Original Message----- From: Benoit Boulinguiez [mailto:benoit.boulingu...@ensc-rennes.fr] Sent: Thursday, May 14, 2009 11:53 AM To: 'Dieter Menne' Subject: RE: [R] ode first step ------------------------------ qm<-0.36 y0<-c(0) parms<-c(K1=1,K2=1) times<-seq(0,10000,1) kinetic.model<-function(t,y,parms){ dq.dt<- K1*C*(qm-q)-K2*q list(dq.dt) } require(deSolve) nls(foo<-lsoda(y0,times,kinetic.model,parms) ______________________________________________ R-help@r-project.org 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.