SDE Solvers

Recommended Methods

For most problems where a good amount of accuracy is required and stiffness may be an issue, the SRIW1Optimized algorithm should do well. If the problem has additive noise, then SRA1Optimized will be the optimal algorithm. If you simply need to quickly compute a large ensamble and don't need accuracy (and don't have stiffness problems), then EM can do well.

Special Keyword Arguments

Implemented Solvers

StochasticDiffEq.jl

Each of the StochasticDiffEq.jl solvers come with a linear interpolation.

For SRA and SRI, the following option is allowed:

StochasticCompositeAlgorithm

One unique feature of StochasticDiffEq.jl is the StochasticCompositeAlgorithm, which allows you to, with very minimal overhead, design a multimethod which switches between chosen algorithms as needed. The syntax is StochasticCompositeAlgorithm(algtup,choice_function) where algtup is a tuple of StochasticDiffEq.jl algorithms, and choice_function is a function which declares which method to use in the following step. For example, we can design a multimethod which uses EM() but switches to RKMil() whenever dt is too small:

choice_function(integrator) = (Int(integrator.dt<0.001) + 1)
alg_switch = StochasticCompositeAlgorithm((EM(),RKMil()),choice_function)

The choice_function takes in an integrator and thus all of the features available in the Integrator Interface can be used in the choice function.

Adaptive Type: RSWM

Algorithms which allow for adaptive timestepping (all except EM and RKMil) can take in an RSWM type which specifies the rejction sampling with memory algorithm used. The constructor is:

RSWM(;discard_length=1e-15,
     adaptivealg::Symbol=:RSwM3)

For more details, see the publication.