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

StochasticDiffEq.EMType

EM: Nonstiff Method The Euler-Maruyama method is the simplest and most fundamental numerical method for solving stochastic differential equations.

Method Properties

  • Strong Order: 0.5 (in the Itô sense)
  • Weak Order: 1.0
  • Time stepping: Fixed time step only
  • Noise types: All forms (diagonal, non-diagonal, scalar, additive, and colored noise)
  • SDE interpretation: Itô

Parameters

  • split::Bool = true: Controls step splitting for improved stability with large diffusion eigenvalues

When to Use

  • First choice for simple SDE problems
  • When computational efficiency is more important than accuracy
  • For problems with all noise types including non-commutative noise
  • When step splitting is needed for stability with large diffusion terms

Algorithm Description

The method discretizes the SDE:

du = f(u,p,t)dt + g(u,p,t)dW

using the scheme:

u_{n+1} = u_n + f(u_n,p,t_n)Δt + g(u_n,p,t_n)ΔW_n

When split=true, the method uses step splitting which can improve stability for problems with large diffusion eigenvalues.

References

  • Kloeden, P.E., Platen, E., "Numerical Solution of Stochastic Differential Equations", Springer (1992)

EulerHeun - Euler-Heun

StochasticDiffEq.EulerHeunType
EulerHeun()

EulerHeun: Euler-Heun Method (Nonstiff)

The Euler-Heun method is the Stratonovich analog of the Euler-Maruyama method, providing strong order 0.5 convergence in the Stratonovich sense.

Method Properties

  • Strong Order: 0.5 (in the Stratonovich sense)
  • Weak Order: 1.0
  • Time stepping: Fixed time step only
  • Noise types: All forms (diagonal, non-diagonal, scalar, additive, and colored noise)
  • SDE interpretation: Stratonovich

When to Use

  • When working with Stratonovich SDEs
  • For problems naturally formulated in Stratonovich interpretation
  • When physical interpretation requires Stratonovich calculus
  • As the Stratonovich counterpart to Euler-Maruyama

Algorithm Description

For Stratonovich SDEs:

du = f(u,p,t)dt + g(u,p,t)∘dW

The method uses:

u_{n+1} = u_n + f(u_n,p,t_n)Δt + g(u_n + 0.5*g(u_n,p,t_n)ΔW_n, p, t_n)ΔW_n

Stratonovich vs Itô

  • EulerHeun: For Stratonovich SDEs
  • EM: For Itô SDEs
  • Conversion between interpretations changes the drift term

References

  • Kloeden, P.E., Platen, E., "Numerical Solution of Stochastic Differential Equations", Springer (1992)

LambaEM - Adaptive Euler-Maruyama

StochasticDiffEq.LambaEMType
LambaEM(split=true)

LambaEM: Adaptive Euler-Maruyama Method (Nonstiff)

Adaptive time-stepping version of the Euler-Maruyama method with error estimation based on the work of Lamba and Rackauckas.

Method Properties

  • Strong Order: 0.5 (in the Itô sense)
  • Weak Order: 1.0
  • Time stepping: Adaptive with embedded error estimation
  • Noise types: All forms (diagonal, non-diagonal, scalar, additive, and colored noise)
  • SDE interpretation: Itô

Parameters

  • split::Bool = true: Controls step splitting for improved stability

When to Use

  • When adaptive time stepping is needed with basic Euler-Maruyama
  • For problems requiring error control without high-order accuracy
  • When computational efficiency and adaptivity are both important
  • For non-commutative noise where higher-order methods aren't applicable

Algorithm Description

Extends EM with adaptive time stepping using error estimation. The method computes two approximations and uses their difference to estimate local error.

Error Control

  • Embedded error estimation for adaptive stepping
  • Accepts standard tolerances (abstol, reltol)
  • Automatic step size adjustment

References

  • Based on error estimation work by Lamba and Rackauckas

LambaEulerHeun - Adaptive Euler-Heun

StochasticDiffEq.LambaEulerHeunType
LambaEulerHeun()

LambaEulerHeun: Adaptive Euler-Heun Method (Nonstiff)

Adaptive time-stepping version of the Euler-Heun method with error estimation for Stratonovich SDEs.

Method Properties

  • Strong Order: 0.5 (in the Stratonovich sense)
  • Weak Order: 1.0
  • Time stepping: Adaptive with embedded error estimation
  • Noise types: All forms (diagonal, non-diagonal, scalar, additive, and colored noise)
  • SDE interpretation: Stratonovich

When to Use

  • When adaptive time stepping is needed for Stratonovich SDEs
  • For problems requiring error control in Stratonovich interpretation
  • When computational efficiency and adaptivity are both important
  • For non-commutative noise in Stratonovich formulation

Algorithm Description

Adaptive version of EulerHeun method with error estimation for automatic step size control.

Error Control

  • Embedded error estimation for adaptive stepping
  • Standard tolerance control (abstol, reltol)
  • Automatic step size adjustment for Stratonovich problems

References

  • Error estimation methodology by Lamba, adapted by Rackauckas

Milstein Methods

RKMil - Runge-Kutta Milstein

StochasticDiffEq.RKMilType

Kloeden, P.E., Platen, E., Numerical Solution of Stochastic Differential Equations. Springer. Berlin Heidelberg (2011)

RKMil(;interpretation=AlgorithmInterpretation.Ito)

RKMil: Runge-Kutta Milstein Method (Nonstiff)

Explicit Runge-Kutta discretization of the Milstein method achieving strong order 1.0 convergence for diagonal and scalar noise.

Method Properties

  • Strong Order: 1.0 (for diagonal/scalar noise)
  • Weak Order: Depends on tableau
  • Time stepping: Adaptive
  • Noise types: Diagonal and scalar noise only
  • SDE interpretation: Configurable (Itô or Stratonovich)

Parameters

  • interpretation: Choose AlgorithmInterpretation.Ito (default) or AlgorithmInterpretation.Stratonovich

When to Use

  • When higher accuracy than Euler methods is needed
  • For diagonal or scalar noise problems
  • When strong order 1.0 convergence is required
  • Alternative to SRI methods for simpler noise structures

Restrictions

  • Only works with diagonal or scalar noise
  • For non-diagonal noise, use RKMilCommute or RKMilGeneral
  • For general noise, use SRI/SRA methods

Algorithm Description

Implements the Milstein scheme using Runge-Kutta techniques:

du = f(u,t)dt + g(u,t)dW + 0.5*g(u,t)*g'(u,t)*(dW^2 - dt)

where g'(u,t) is the derivative of g with respect to u.

References

  • Kloeden, P.E., Platen, E., "Numerical Solution of Stochastic Differential Equations", Springer (1992)
  • Milstein, G.N., "Numerical Integration of Stochastic Differential Equations"

Split Methods

SplitEM - Split Euler-Maruyama

StochasticDiffEq.SplitEMType
SplitEM()

SplitEM: Split-Step Euler-Maruyama Method (Nonstiff)

Split-step version of the Euler-Maruyama method that separates the drift and diffusion terms for improved stability.

Method Properties

  • Strong Order: 0.5 (in the Itô sense)
  • Weak Order: 1.0
  • Time stepping: Fixed time step
  • Noise types: All forms (diagonal, non-diagonal, scalar, additive, and colored noise)
  • SDE interpretation: Itô

When to Use

  • When standard EM has stability issues with large diffusion terms
  • Alternative to EM with split=true
  • For problems where operator splitting is natural
  • When drift and diffusion have different timescales

Algorithm Description

Applies operator splitting to treat drift and diffusion separately:

Step 1: u* = u_n + f(u_n,t_n)Δt     (drift step)
Step 2: u_{n+1} = u* + g(u*,t_n)ΔW_n (diffusion step)

References

  • Operator splitting methods for SDEs

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