Basic Nonstiff Methods

This page covers the fundamental explicit methods for solving SDEs. These methods are suitable for non-stiff problems and provide the foundation for more advanced algorithms.

Euler-Maruyama Methods

EM - Euler-Maruyama

Missing docstring.

Missing docstring for EM. Check Documenter's build log for details.

EulerHeun - Euler-Heun

StochasticDiffEqLowOrder.EulerHeunType
EulerHeun()

EulerHeun: Stochastic Euler-Heun Method

A two-stage predictor-corrector (Heun-type) method for Stratonovich SDEs, the Stratonovich analogue of Euler-Maruyama. An Euler step forms the predictor ũ, then the drift and diffusion are re-evaluated there and trapezoidally averaged to form the update:

  • predictor: ũ = uₙ + f(uₙ)·Δt + g(uₙ)·ΔW
  • corrector: uₙ₊₁ = uₙ + ½(f(uₙ) + f(ũ))·Δt + ½(g(uₙ) + g(ũ))·ΔW

This corresponds to the improved-Euler scheme of Roberts (2012). Note this is a genuine two-stage scheme (two drift and two diffusion evaluations per step), not a single-stage predictor-corrector.

Method Properties

  • Strong Order: 1.0 for Stratonovich SDEs with commutative noise (e.g. scalar, diagonal, or additive); 1/2 for general non-commutative noise, which is the value reported by alg_order (the same convention as EM)
  • Weak Order: 1.0
  • Time stepping: Fixed step size
  • Noise types: General (scalar, diagonal, non-diagonal)
  • SDE interpretation: Stratonovich

When to Use

  • For Stratonovich SDEs where a simple, low-cost method is sufficient
  • As the Stratonovich counterpart to EM for Itô problems
  • When adaptive time stepping is not required; see LambaEulerHeun for an adaptive variant

References

  • Roberts, A.J., "Modify the improved Euler scheme to integrate stochastic differential equations", arXiv:1210.0933 (2012)
  • Kloeden, P.E., Platen, E., Numerical Solution of Stochastic Differential Equations, Springer, Berlin Heidelberg, p. 373 (1992)

LambaEM - Adaptive Euler-Maruyama

Missing docstring.

Missing docstring for LambaEM. Check Documenter's build log for details.

LambaEulerHeun - Adaptive Euler-Heun

Missing docstring.

Missing docstring for LambaEulerHeun. Check Documenter's build log for details.

Milstein Methods

RKMil - Runge-Kutta Milstein

Missing docstring.

Missing docstring for RKMil. Check Documenter's build log for details.

Split Methods

SplitEM - Split Euler-Maruyama

Missing docstring.

Missing docstring for SplitEM. Check Documenter's build log for details.

When to Use Basic Methods

Use EM when:

  • Computational efficiency is most important
  • Problem is not stiff
  • Any noise type (most flexible)
  • Simple implementation needed

Use EulerHeun when:

  • Working in Stratonovich interpretation
  • Need slightly better accuracy than EM
  • Problem has non-commutative noise

Use LambaEM/LambaEulerHeun when:

  • Want adaptive time stepping with basic methods
  • Need error control but not high accuracy
  • Good balance of simplicity and adaptivity

Use RKMil when:

  • Higher accuracy than Euler methods
  • Problem has diagonal or scalar noise
  • Strong order 1.0 convergence required

These methods form the foundation of stochastic numerical analysis. While higher-order methods often provide better performance, the basic methods are essential for:

  • Initial testing and prototyping
  • Problems where simplicity is preferred
  • Educational purposes
  • Fallback options when advanced methods fail