Implicit Methods for Stiff SDEs
When SDEs have stiff drift terms, explicit methods may require impractically small time steps for stability. Implicit methods treat the drift term implicitly while keeping the diffusion explicit, providing excellent stability properties.
Recommended Stiff Methods
SKenCarp - Stochastic KenCarp (Highly Recommended for Stiff Additive Noise)
Basic Implicit Methods
ImplicitEM - Implicit Euler-Maruyama
ImplicitEulerHeun - Implicit Euler-Heun (Stratonovich)
Missing docstring for ImplicitEulerHeun. Check Documenter's build log for details.
ImplicitRKMil - Implicit Runge-Kutta Milstein
Split-Step Implicit Methods
ISSEM - Implicit Split-Step Euler-Maruyama
ISSEulerHeun - Implicit Split-Step Euler-Heun
Method Selection Guide
Problem Classification:
- Mildly stiff drift: ImplicitEM, ImplicitRKMil
- Stiff additive noise: SKenCarp (highly recommended)
- Fully stiff (including diffusion): ISSEM, ISSEulerHeun
- Stratonovich problems: ImplicitEulerHeun, ISSEulerHeun
Performance Ranking for Stiff Problems:
- SKenCarp - Best for stiff problems with additive noise
- ISSEM/ISSEulerHeun - For fully stiff problems
- ImplicitRKMil - Higher order for mildly stiff problems
- ImplicitEM - Robust fallback option
Understanding Stiffness in SDEs
Drift Stiffness: Large negative eigenvalues in the drift term f(u,t) requiring small time steps for explicit stability.
Diffusion Stiffness: Large coefficients in the diffusion term g(u,t) causing stability issues.
Detection: If explicit methods require very small dt or produce unstable solutions, try implicit methods.
Configuration Options
All implicit methods share common configuration parameters:
# Linear solver options
ImplicitEM(linsolve = KrylovJL_GMRES())
# Nonlinear solver options
ImplicitEM(nlsolve = NLNewton(max_iter = 20))
# Jacobian computation
ImplicitEM(autodiff = true, chunk_size = 4)
# Theta method parameter
ImplicitEM(theta = 0.5) # Trapezoidal ruleSymplectic Methods
For Hamiltonian SDEs, use symplectic variants:
SImplicitMidpoint() # Symplectic implicit midpoint
STrapezoid() # Symplectic trapezoidal rulePerformance Tips
- Jacobian: Provide analytical Jacobian when possible
- Linear solver: Choose appropriate solver for problem structure
- Preconditioning: Use preconditioners for large systems
- Theta parameter: θ=0.5 often provides good accuracy/stability balance
References
- Standard implicit ODE methods adapted to SDEs
- Milstein, G.N., "Numerical Integration of Stochastic Differential Equations"