StepGillespie {smfsb} | R Documentation |
Create a function for advancing the state of an SPN by using the Gillespie algorithm
Description
This function creates a function for advancing the state of an SPN model using the Gillespie algorithm. The resulting function (closure) can be used in conjunction with other functions (such as simTs
) for simulating realisations of SPN models.
Usage
StepGillespie(N)
Arguments
N |
An R list with named components representing a stochastic
Petri net (SPN). Should contain |
Value
An R function which can be used to advance the state of the SPN model N
by using the Gillespie algorithm. The function closure has interface function(x0,t0,deltat,...)
, where x0
and t0
represent the initial state and time, and deltat
represents the amount of time by which the process should be advanced. The function closure returns a vector representing the simulated state of the system at the new time.
See Also
StepEulerSPN
, StepGillespie1D
,
simTs
, simTimes
, simSample
, StepFRM
,
StepPTS
, StepCLE
Examples
# load up the Lotka-Volterra (LV) model
data(spnModels)
LV
# create a stepping function
stepLV = StepGillespie(LV)
# step the function
print(stepLV(c(x1=50,x2=100),0,1))
# simulate a realisation of the process and plot it
out = simTs(c(x1=50,x2=100),0,100,0.1,stepLV)
plot(out)
plot(out,plot.type="single",lty=1:2)
# simulate a realisation using simTimes
times = seq(0,100,by=0.1)
plot(ts(simTimes(c(x1=50,x2=100),0,times,stepLV),start=0,deltat=0.1),plot.type="single",lty=1:2)
# simulate a realisation at irregular times
times = c(0,10,20,50,100)
out2 = simTimes(c(x1=50,x2=100),0,times,stepLV)
print(out2)