Adaptive step-size algorithm for stiff SDE solvers in StochasticDiffEq.jl

Could someone point me in the direction of where to find info on how the time-stepping method for stiff SDE solvers is implemented? I am mainly interested in how the ImplicitEM solver does the adaptive stepsize control, which is the scheme I use. The documentation says that it “Uses a 1.0/1.5 heuristic for adaptive time stepping” for the order 0.5 and 1.0 schemes. I guess this is related to the paper: 10.3934/dcdsb.2017133 by Rackauckas et al., which as a physicist not specialized in SDE solvers, cannot see how it can be applied to the ImplicitEM scheme.

I also want to thank the SciML organization and community for all the amazing tools created!!

1 Like

In SDE Solvers · DifferentialEquations.jl, you have SKenCarp

It’s the same time stepping mechanism as the paper you link to, but using Lamba’s error estimator [math/0601029] An Adaptive Euler-Maruyama Scheme For SDEs: Convergence and Stability . That trivially extends to implicit EM, and then with rejection sampling with memory ADAPTIVE METHODS FOR STOCHASTIC DIFFERENTIAL EQUATIONS VIA NATURAL EMBEDDINGS AND REJECTION SAMPLING WITH MEMORY - PMC you have a full method.