Noise Processes API

Wiener Processes

Standard Wiener Process

DiffEqNoiseProcess.WienerProcessFunction

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...)
source
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...)
source
DiffEqNoiseProcess.SimpleWienerProcessFunction

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.

source
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.

source

Real-Valued Wiener Process

DiffEqNoiseProcess.RealWienerProcessFunction

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...)
source
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...)
source

Correlated Wiener Process

DiffEqNoiseProcess.CorrelatedWienerProcessFunction

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.

source
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.

source

Geometric Brownian Motion

DiffEqNoiseProcess.GeometricBrownianMotionProcessFunction

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...)
source
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...)
source

Ornstein-Uhlenbeck Process

DiffEqNoiseProcess.OrnsteinUhlenbeckProcessFunction

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...)
source
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...)
source

Jump Processes

Missing docstring.

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

Missing docstring.

Missing docstring for CompoundPoissonProcess!. Check Documenter's build log for details.

Bridge Processes

DiffEqNoiseProcess.BrownianBridgeFunction

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.

source
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.

source
DiffEqNoiseProcess.GeometricBrownianBridgeFunction

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 parameter
  • t0: Starting time
  • tend: Ending time
  • W0: 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)
source
DiffEqNoiseProcess.OrnsteinUhlenbeckBridgeFunction

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 parameter
  • t0: Starting time
  • tend: Ending time
  • W0: 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)
source
DiffEqNoiseProcess.CompoundPoissonBridgeFunction

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 time
  • tend: Ending time
  • W0: 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)
source

Advanced Noise Types

Noise Wrapper

Missing docstring.

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

Noise Functions

Missing docstring.

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

Missing docstring.

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

Noise from Data

Missing docstring.

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

Noise Approximation

Missing docstring.

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

Memory-Efficient Alternatives

Missing docstring.

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

Missing docstring.

Missing docstring for VirtualBrownianTree!. Check Documenter's build log for details.

Missing docstring.

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

Missing docstring.

Missing docstring for BoxWedgeTail!. Check Documenter's build log for details.

Preconditioned Crank-Nicolson

Missing docstring.

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

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

source