Time Series Analysis
Gillespie Stochastic Algorithm
The Gillespie stochastic algorithm is an algorithm for
modelling the kinetics of a set of coupled chemical reactions,
taking into account stochastic effects from low copy numbers
of the chemical species. In Gillespie's approach, chemical
reaction kinetics are modelled as a Markov process in which
reactions occur at specific instants of time defining
intervals that are Poisson-distributed, with a mean reaction time
interval that is recomputed after each chemical reaction occurs.
For each chemical reaction interval, a specific chemical reaction
occurs, randomly selected from the set of all possible
reactions with a weight given by the individual reaction rates.
Gibson-Bruck Stochastic Algorithm
This implementation uses the "next reaction" variant of
the Gibson and Bruck algorithm. The Gibson-Bruck algorithm
is O(log(# reactions)), so it is preferred over the Gillespie
algorithm for models with a large number of reactions and/or
species. For models with a small number of reactions and
species, the Gillespie algorithm is preferred, as it
avoids the overhead of maintaining the complex data structures
needed for the Gibson-Bruck algorithm.
Fixed step-size 5th-order Runge-Kutta ODE Solver
Stephen Ramseys implementation of a 5th-order Runge-Kutta ODE solver with a fixed step-size. It is useful in certain cases where the adaptive step-size Runge-Kutta solver fails to work efficiently. The accuracy of the solution will depend on how small the step-size is, which must be specified. The computational cost is proportional to the number of steps (the length of the simulation run/step-size.
Adaptive step-size 5th-order Runge-Kutta ODE Solver
Stephen Ramseys implementation of a 5th-order Runge-Kutta ODE solver with adaptive step-size control. The step-size control is based on an error estimation formula that is accurate to 4th order. This particular implementation is deemed not very efficient by the writer but seems to work well for a wide variety of models. The initial step-size and desired relative/absolute accuracy tolerances must be specified.
Adaptive step-size 5th-order Dormand-Prince ODE Solver
This is the Patterson/Spiteri implementation of the 5th-order Dormand-Prince ODE solver, with adaptive step-size control. It is very similar to the Adaptive step-size 5th-order Runge-Kutta ODE Solver, but seems to be more aggressive with taking large time steps. Thus, it will generally be faster but it is useful to check your results with the Adaptive step-size 5th-order Runge-Kutta ODE Solver above. Currently one of two independent ODE solvers within ISBJava.
Implicit-Explicit Runge-Kutta ODE Solver
This is the Patterson/Spiteri implementation of an Implicit-Explicit Runge-Kutta ODE solver. It is mostly useful for solving models that have a high degree of stiffness. Useful if the other ODE solvers seem to get bogged down and run very slowly. Currently one of two independent ODE solvers within ISBJava.