# StepEulerSPN: Create a function for advancing the state of an SPN by using... In smfsb: SMfSB 2e: Stochastic Modelling for Systems Biology, second edition

## Description

This function creates a function for advancing the state of an SPN model using a simple continuous deterministic Euler integration method. The resulting function (closure) can be used in conjunction with other functions (such as `simTs`) for simulating realisations of SPN models.

## Usage

 `1` ```StepEulerSPN(N,dt=0.01) ```

## Arguments

 `N` An R list with named components representing a stochastic Petri net. Should contain `N\$Pre`, a matrix representing the LHS stoichiometries, `N\$Post`, a matrix representing the RHS stoichiometries, and `N\$h`, a function representing the rates of the reaction processes. `N\$h` should have first argument `x`, a vector representing the current state of the system, and second argument `t`, a scalar representing the current simulation time (in the typical time-homogeneous case, `N\$h` will ignore this argument). `N\$h` may possess additional arguments, representing reaction rates, for example. `N` does not need to contain an initial marking, `N\$M`. `N\$M` will be ignored by most functions which use the resulting function closure. `dt` Time step to be used by the simple Euler integration method. Defaults to 0.01.

## Value

An R function which can be used to advance the state of the SPN model `N` by using an Euler method with step size `dt`. 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.

`StepGillespie`, `StepODE`, `StepCLE`, `simpleEuler`, `simTs`, `simSample`
 ``` 1 2 3 4 5 6 7 8 9 10``` ```# load the LV model data(spnModels) # create a stepping function stepLV = StepEulerSPN(LV) # step the function print(stepLV(c(x1=50,x2=100),0,1)) # integrate 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) ```