I am trying to do some population modeling with lsoda, where I set arbitrary zero population sizes when values get close to zero, but am having no luck.
As an example of what I have tried, I use code below from the help page on lsoda in which I include my modification bordered by ###
parms <- c(k1=0.04, k2=1e4, k3=3e7) my.atol <- c(1e-6, 1e-10, 1e-6) times <- seq(0,)
lsexamp <- function(t, y, p)
{ ### The next line is where I try to insert the threshold
ifelse(y < 0.4, 0, y)
###### all else is unchanged
yd1 <- -p["k1"] * y[1] + p["k2"] * y[2]*y[3]
yd3 <- p["k3"] * y[2]^2
list(c(yd1,-yd1-yd3,yd3),c(massbalance=sum(y)))
}
out <- lsoda(c(.5,0,.5),times,lsexamp, parms, rtol=1e-4, atol= my.atol) # Initial values differ from help page
matplot(out[,1],out[,2:5], type="l")
out[dim(out)[1],] # The intent of my could was to cause population 1 to fall to zero as soon as it reached < 0.4
Any thoughts would be appreciated. Thanks! Hank Stevens
Dr. Martin Henry H. Stevens, Assistant Professor 338 Pearson Hall Botany Department Miami University Oxford, OH 45056
Office: (513) 529-4206 Lab: (513) 529-4262 FAX: (513) 529-4243 http://www.cas.muohio.edu/botany/bot/henry.html http://www.muohio.edu/ecology/ http://www.muohio.edu/botany/ "E Pluribus Unum"
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
