[R] Differential Equations there use in R (population modeling)

Ben Bolker bolker at ufl.edu
Mon Aug 11 20:18:46 CEST 2008


   There was a spurious tilde in the code coming
from my digital signature -- oops.  ignore the
tilde in the function:

library(odesolve)

## in general x, b are state and parameter VECTORS
e1B <- function(t,x,b) {
     list(x*b^t,NULL)
}

L1 = lsoda(y=1,times=seq(0,1,by=0.02),func=e1B,parms=c(b=0.9))
plot(L1[,1],L1[,2])


stephen sefick wrote:
> error in isoda(y = 1, times = seq(0, 1, by = 0.02), func = e1B, parms
> = c(b = 0.9)) :
>   Model function must return a list
> 
> this is the error message I get when I try and paste in the code.
> 
> Stephen Sefick
> 
> On Mon, Aug 11, 2008 at 1:36 PM, Ben Bolker <bolker at ufl.edu> wrote:
> 
> 
> stephen sefick wrote:
> | population# = (initialvalue @ t) - (death rate) + (fecundtity per
> individual) dt
> | to be able to vary the values of the inputs death rate and fecundity
> | with time using initial value @ t from the previous time step to
> | evaluate the function at the present time step.
> |
> | On Mon, Aug 11, 2008 at 9:43 AM, Ben Bolker <bolker at ufl.edu> wrote:
> |> stephen sefick <ssefick <at> gmail.com> writes:
> |>
> |>> e1 <- function(x,b,t){
> |>>       d<-(x)*(b^t)
> |>>       plot(d)
> |>> }
> |>>
> |>> e1(2, 2,seq(from=0, to=6, by=1))
> |>>
> |>> Is there a way to do this with a change in time.  I would like to use
> |>> differential equations.
> |>  I'm not sure what you mean by "do this with a change in time",
> |> but in general for ODEs you should check out lsoda in the odesolve
> package.
> |> You can also look at the ecology/environment task view.
> |>
> |>  Ben Bolker
> |>
> 
> ~  Something like:
> 
> 
> library(odesolve)
> 
> ## in general x, b are state and parameter VECTORS
> e1B <- function(t,x,b) {
> ~    list(x*b^t,NULL)
> }
> 
> L1 = lsoda(y=1,times=seq(0,1,by=0.02),func=e1B,parms=c(b=0.9))
> plot(L1[,1],L1[,2])
> 
> 
>>



More information about the R-help mailing list