Noise Processes API
Wiener Processes
Standard Wiener Process
DiffEqNoiseProcess.WienerProcess — Function
The WienerProcess, also known as Brownian motion, or the noise in the Langevin equation, is the stationary process with white noise increments and a distribution N(0,dt). The constructor is:
WienerProcess(t0,W0,Z0=nothing;kwargs...)
WienerProcess!(t0,W0,Z0=nothing;kwargs...)DiffEqNoiseProcess.WienerProcess! — Function
The WienerProcess, also known as Brownian motion, or the noise in the Langevin equation, is the stationary process with white noise increments and a distribution N(0,dt). The constructor is:
WienerProcess(t0,W0,Z0=nothing;kwargs...)
WienerProcess!(t0,W0,Z0=nothing;kwargs...)DiffEqNoiseProcess.SimpleWienerProcess — Function
The SimpleWienerProcess, also known as Brownian motion, or the noise in the Langevin equation, is the stationary process with white noise increments and a distribution N(0,dt). The constructor is:
SimpleWienerProcess(t0,W0,Z0=nothing;kwargs...)
SimpleWienerProcess(t0,W0,Z0=nothing;kwargs...)Unlike WienerProcess, this uses the SimpleNoiseProcess and thus does not support adaptivity, but is slightly more lightweight.
DiffEqNoiseProcess.SimpleWienerProcess! — Function
The SimpleWienerProcess, also known as Brownian motion, or the noise in the Langevin equation, is the stationary process with white noise increments and a distribution N(0,dt). The constructor is:
SimpleWienerProcess(t0,W0,Z0=nothing;kwargs...)
SimpleWienerProcess(t0,W0,Z0=nothing;kwargs...)Unlike WienerProcess, this uses the SimpleNoiseProcess and thus does not support adaptivity, but is slightly more lightweight.
Real-Valued Wiener Process
DiffEqNoiseProcess.RealWienerProcess — Function
The RealWienerProcess is a Brownian motion that is forced to be real-valued. While the normal WienerProcess becomes complex valued if W0 is complex, this version is real valued for when you want to, for example, solve an SDE defined by complex numbers where the noise is in the reals.
RealWienerProcess(t0,W0,Z0=nothing;kwargs...)
RealWienerProcess!(t0,W0,Z0=nothing;kwargs...)DiffEqNoiseProcess.RealWienerProcess! — Function
The RealWienerProcess is a Brownian motion that is forced to be real-valued. While the normal WienerProcess becomes complex valued if W0 is complex, this version is real valued for when you want to, for example, solve an SDE defined by complex numbers where the noise is in the reals.
RealWienerProcess(t0,W0,Z0=nothing;kwargs...)
RealWienerProcess!(t0,W0,Z0=nothing;kwargs...)Correlated Wiener Process
DiffEqNoiseProcess.CorrelatedWienerProcess — Function
One can define a CorrelatedWienerProcess which is a Wiener process with correlations between the Wiener processes. The constructor is:
CorrelatedWienerProcess(Γ,t0,W0,Z0=nothing;kwargs...)
CorrelatedWienerProcess!(Γ,t0,W0,Z0=nothing;kwargs...)where Γ is the constant covariance matrix.
DiffEqNoiseProcess.CorrelatedWienerProcess! — Function
One can define a CorrelatedWienerProcess which is a Wiener process with correlations between the Wiener processes. The constructor is:
CorrelatedWienerProcess(Γ,t0,W0,Z0=nothing;kwargs...)
CorrelatedWienerProcess!(Γ,t0,W0,Z0=nothing;kwargs...)where Γ is the constant covariance matrix.
Geometric Brownian Motion
DiffEqNoiseProcess.GeometricBrownianMotionProcess — Function
A GeometricBrownianMotion process is a Wiener process with constant drift μ and constant diffusion σ. I.e. this is the solution of the stochastic differential equation
\[dX_t = \mu X_t dt + \sigma X_t dW_t\]
The GeometricBrownianMotionProcess is distribution exact (meaning, not a numerical solution of the stochastic differential equation, but instead follows the exact distribution properties). It can be back interpolated exactly as well. The constructor is:
GeometricBrownianMotionProcess(μ,σ,t0,W0,Z0=nothing;kwargs...)
GeometricBrownianMotionProcess!(μ,σ,t0,W0,Z0=nothing;kwargs...)DiffEqNoiseProcess.GeometricBrownianMotionProcess! — Function
A GeometricBrownianMotion process is a Wiener process with constant drift μ and constant diffusion σ. I.e. this is the solution of the stochastic differential equation
\[dX_t = \mu X_t dt + \sigma X_t dW_t\]
The GeometricBrownianMotionProcess is distribution exact (meaning, not a numerical solution of the stochastic differential equation, but instead follows the exact distribution properties). It can be back interpolated exactly as well. The constructor is:
GeometricBrownianMotionProcess(μ,σ,t0,W0,Z0=nothing;kwargs...)
GeometricBrownianMotionProcess!(μ,σ,t0,W0,Z0=nothing;kwargs...)Ornstein-Uhlenbeck Process
DiffEqNoiseProcess.OrnsteinUhlenbeckProcess — Function
a Ornstein-Uhlenbeck process, which is a Wiener process defined by the stochastic differential equation
\[dX_t = \theta (\mu - X_t) dt + \sigma dW_t\]
The OrnsteinUhlenbeckProcess is distribution exact (meaning, not a numerical solution of the stochastic differential equation, but instead follows the exact distribution properties). The constructor is:
OrnsteinUhlenbeckProcess(Θ,μ,σ,t0,W0,Z0=nothing;kwargs...)
OrnsteinUhlenbeckProcess!(Θ,μ,σ,t0,W0,Z0=nothing;kwargs...)DiffEqNoiseProcess.OrnsteinUhlenbeckProcess! — Function
A Ornstein-Uhlenbeck process, which is a Wiener process defined by the stochastic differential equation
\[dX_t = \theta (\mu - X_t) dt + \sigma dW_t\]
The OrnsteinUhlenbeckProcess is distribution exact (meaning, not a numerical solution of the stochastic differential equation, but instead follows the exact distribution properties). The constructor is:
OrnsteinUhlenbeckProcess(Θ,μ,σ,t0,W0,Z0=nothing;kwargs...)
OrnsteinUhlenbeckProcess!(Θ,μ,σ,t0,W0,Z0=nothing;kwargs...)Jump Processes
Missing docstring for CompoundPoissonProcess. Check Documenter's build log for details.
Missing docstring for CompoundPoissonProcess!. Check Documenter's build log for details.
Bridge Processes
DiffEqNoiseProcess.BrownianBridge — Function
A BrownianBridge process is a Wiener process with a pre-defined start and end value. This process is distribution exact and back be back interpolated exactly as well. The constructor is:
BrownianBridge(t0,tend,W0,Wend,Z0=nothing,Zend=nothing;kwargs...)
BrownianBridge!(t0,tend,W0,Wend,Z0=nothing,Zend=nothing;kwargs...)where W(t0)=W₀, W(tend)=Wend, and likewise for the Z process if defined.
DiffEqNoiseProcess.BrownianBridge! — Function
A BrownianBridge process is a Wiener process with a pre-defined start and end value. This process is distribution exact and back be back interpolated exactly as well. The constructor is:
BrownianBridge(t0,tend,W0,Wend,Z0=nothing,Zend=nothing;kwargs...)
BrownianBridge!(t0,tend,W0,Wend,Z0=nothing,Zend=nothing;kwargs...)where W(t0)=W₀, W(tend)=Wend, and likewise for the Z process if defined.
DiffEqNoiseProcess.GeometricBrownianBridge — Function
A GeometricBrownianBridge is a geometric Brownian motion process with pre-defined start and end values.
This creates a GBM process that is conditioned to pass through specific values at the beginning and end of the time interval, useful for financial modeling where asset prices must match observed values.
Arguments
μ: Drift parameterσ: Volatility parametert0: Starting timetend: Ending timeW0: Starting value W(t0)Wend: Ending value W(tend)Z0,Zend: Optional auxiliary process values
Examples
# Stock price bridge from $100 to $110 over 1 year
bridge = GeometricBrownianBridge(0.05, 0.2, 0.0, 1.0, 100.0, 110.0)DiffEqNoiseProcess.GeometricBrownianBridge! — Function
In-place version of GeometricBrownianBridge.
See GeometricBrownianBridge for details.
DiffEqNoiseProcess.OrnsteinUhlenbeckBridge — Function
An OrnsteinUhlenbeckBridge is an Ornstein-Uhlenbeck process with pre-defined start and end values.
This creates a mean-reverting process that is conditioned to pass through specific values at the beginning and end of the time interval.
Arguments
Θ: Mean reversion rateμ: Long-term meanσ: Volatility parametert0: Starting timetend: Ending timeW0: Starting value W(t0)Wend: Ending value W(tend)Z0: Optional auxiliary process value
Examples
# Mean-reverting process from 1.0 to 0.5 over unit time
bridge = OrnsteinUhlenbeckBridge(2.0, 0.0, 0.3, 0.0, 1.0, 1.0, 0.5)DiffEqNoiseProcess.OrnsteinUhlenbeckBridge! — Function
In-place version of OrnsteinUhlenbeckBridge.
See OrnsteinUhlenbeckBridge for details.
DiffEqNoiseProcess.CompoundPoissonBridge — Function
A CompoundPoissonBridge is a compound Poisson process with pre-defined start and end values.
This creates a jump process that is conditioned to have specific values at the beginning and end of the time interval. The jumps are distributed to satisfy the endpoint constraint.
Arguments
rate: Jump rate (λ parameter)t0: Starting timetend: Ending timeW0: Starting value W(t0)Wend: Ending value W(tend)
Examples
# Jump process from 0 to 5 over unit time with rate 2.0
bridge = CompoundPoissonBridge(2.0, 0.0, 1.0, 0.0, 5.0)DiffEqNoiseProcess.CompoundPoissonBridge! — Function
In-place version of CompoundPoissonBridge.
See CompoundPoissonBridge for details.
Advanced Noise Types
Noise Wrapper
Noise Functions
Noise from Data
Noise Approximation
Missing docstring for NoiseApproximation. Check Documenter's build log for details.
Memory-Efficient Alternatives
Missing docstring for VirtualBrownianTree. Check Documenter's build log for details.
Missing docstring for VirtualBrownianTree!. Check Documenter's build log for details.
Preconditioned Crank-Nicolson
DiffEqNoiseProcess.pCN! — Function
pCN!(noise::AbstractNoiseProcess, ρ; reset=true,reverse=false,indx=nothing)Create a new, but correlated noise process from noise and additional entropy with correlation ρ. This update defines an autoregressive process in the space of Wiener (or noise process) trajectories, which can be used as proposal distribution in Metropolis-Hastings algorithms (often called the "preconditioned Crank–Nicolson scheme".)
External links