SDE Problems
Mathematical Specification of a SDE Problem
To define an SDE Problem, you simply need to give the forcing function $f$, the noise function g
, and the initial condition $u₀$ which define an SDE:
f
and g
should be specified as f(t,u)
and g(t,u)
respectively, and u₀
should be an AbstractArray whose geometry matches the desired geometry of u
. Note that we are not limited to numbers or vectors for u₀
; one is allowed to provide u₀
as arbitrary matrices / higher dimension tensors as well. A vector of g
s can also be defined to determine an SDE of higher Ito dimension.
Problem Type
Wraps the data which defines an SDE problem
with initial condition $u0$.
Constructors
SDEProblem(f,g,u0,tspan,noise=WHITE_NOISE,noise_rate_prototype=nothing)
: Defines the SDE with the specified functions. The default noise is WHITE_NOISE
.
Fields
f
: The drift function in the SDE.g
: The noise function in the SDE.u0
: The initial condition.tspan
: The timespan for the problem.noise
: The noise process applied to the noise upon generation. Defaults to Gaussian white noise. For information on defining different noise processes, see the noise process documentation pagenoise_rate_prototype
: A prototype type instance for the noise rates, that is the outputg
. It can be any type which overloadsA_mul_B!
with itself being the middle argument. Commonly, this is a matrix or sparse matrix. If this is not given, it defaults tonothing
, which means the problem should be interpreted as having diagonal noise.callback
: A callback to be applied to every solver which uses the problem. Defaults to nothing.mass_matrix
: The mass-matrix. Defaults toI
, theUniformScaling
identity matrix.
Example Problems
Examples problems can be found in DiffEqProblemLibrary.jl.
To use a sample problem, such as prob_sde_linear
, you can do something like:
# Pkg.add("DiffEqProblemLibrary")
using DiffEqProblemLibrary
prob = prob_sde_linear
sol = solve(prob)
DiffEqProblemLibrary.prob_sde_linear
— Constant.where β=1.01, α=0.87, and initial condtion u0=1/2, with solution
DiffEqProblemLibrary.prob_sde_2Dlinear
— Constant.8 linear SDEs (as a 4x2 matrix):
where β=1.01, α=0.87, and initial condtion u0=1/2 with solution
DiffEqProblemLibrary.prob_sde_wave
— Constant.and initial condition u0=1.0
with solution
DiffEqProblemLibrary.prob_sde_lorenz
— Constant.Lorenz Attractor with additive noise
with $σ=10$, $ρ=28$, $β=8/3$, $α=3.0$ and inital condition $u0=[1;1;1]$.
DiffEqProblemLibrary.prob_sde_cubic
— Constant.and initial condtion u0=1/2, with solution
DiffEqProblemLibrary.prob_sde_additive
— Constant.Additive noise problem
and initial condition u0=1.0 with α=0.1 and β=0.05, with solution
DiffEqProblemLibrary.prob_sde_additivesystem
— Constant.A multiple dimension extension of additiveSDEExample