Description Usage Arguments Details Value See Also Examples
These functions can be used to create simObj
instances without
using new
explicitly.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | odeModel(obj = NULL, main = NULL,
equations = NULL, times = c(from = 0, to = 10, by = 1),
init = numeric(0), parms = numeric(0),
inputs = NULL, solver = "rk4", initfunc = NULL)
gridModel(obj = NULL, main = NULL,
equations = NULL, times = c(from=0, to=10, by=1),
init = matrix(0), parms = list(),
inputs = NULL, solver = "iteration", initfunc = NULL)
rwalkModel(obj = NULL, main = NULL,
equations = NULL, times = c(from = 0, to = 10, by = 1),
init = NULL, parms = list(),
inputs = NULL, solver = "iteration", initfunc = NULL)
indbasedModel(obj = NULL, main = NULL,
equations = NULL, times = c(from = 0, to = 10, by = 1),
init = NULL, parms = list(),
inputs = NULL, solver = "iteration", initfunc = NULL)
|
obj |
Unnamed arguments are regarded as objects of the corresponding
class. If |
main |
The main equations of the model. |
equations |
The sub-models (sub-equations and of the model). |
times |
A vector of time steps or a vector with three
named values |
init |
Initial values (start values) of the state variable given as named vector. |
parms |
A vector or list (depending on the respective class) of constant parameters. |
inputs |
Optional time-dependend input variables (matrix or data frame). |
solver |
The solver used to integrate the model. |
initfunc |
The function is called by the |
These functions provide an alternative way to create
simObj
instances in addition to the standard S4 new
mechanism. The functions are provided mainly for compatibility with older
versions of simecol.
See simecol-package
and the examples for details about the
slots.
The function returns an S4 object of type odeModel
,
rwalkModel
, gridModel
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | ## (1) Define and run your own simecol model with new ==================
lv <- new("odeModel",
main = function (time, init, parms) {
with(as.list(c(init, parms)), {
dn1 <- k1 * N1 - k2 * N1 * N2
dn2 <- - k3 * N2 + k2 * N1 * N2
list(c(dn1, dn2))
})
},
parms = c(k1 = 0.2, k2 = 0.2, k3 = 0.2),
times = c(from = 0, to = 100, by = 0.5),
init = c(N1 = 0.5, N2 = 1),
solver = "lsoda"
)
## ... or use the generating function ----------------------------------
lv <- odeModel(
main = function (time, init, parms) {
with(as.list(c(init, parms)), {
dn1 <- k1 * N1 - k2 * N1 * N2
dn2 <- - k3 * N2 + k2 * N1 * N2
list(c(dn1, dn2))
})
},
parms = c(k1 = 0.2, k2 = 0.2, k3 = 0.2),
times = c(from = 0, to = 100, by = 0.5),
init = c(N1 = 0.5, N2 = 1),
solver = "lsoda"
)
lv <- sim(lv)
plot(lv)
## (2) Conway's Game of Life ==========================================
set.seed(23) # to make it reproducible
conway <- new("gridModel",
main = function(time, x, parms) {
nb <- eightneighbours(x)
surviv <- (x > 0 & (nb %in% parms$srv))
gener <- (x == 0 & (nb %in% parms$gen))
x <- (surviv + gener) > 0
return(x)
},
parms = list(srv = c(2, 3), gen = 3),
times = 1:17,
init = matrix(round(runif(1000)), ncol=40),
solver = "iteration"
)
sim(conway, animate=TRUE)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.