continuous

import "github.com/umbralcalc/stochadex/pkg/continuous"

Package continuous provides implementations of continuous-time stochastic processes for simulation modeling. It includes various diffusion processes, jump-diffusion models, and other continuous stochastic dynamics commonly used in mathematical finance, physics, and engineering applications.

Key Features:

Mathematical Background: Continuous stochastic processes are typically described by stochastic differential equations (SDEs) of the form:

dX(t) = μ(X,t)dt + σ(X,t)dW(t)

where μ is the drift, σ is the volatility, and W(t) is a Wiener process.

Usage Patterns:

Index

type CompoundPoissonProcessIteration

CompoundPoissonProcessIteration steps a compound Poisson process.

Usage hints:

type CompoundPoissonProcessIteration struct {
    JumpDist JumpDistribution
    // contains filtered or unexported fields
}

func (*CompoundPoissonProcessIteration) Configure

func (c *CompoundPoissonProcessIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*CompoundPoissonProcessIteration) Iterate

func (c *CompoundPoissonProcessIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type CumulativeTimeIteration

CumulativeTimeIteration outputs the cumulative simulation time.

Usage hints:

type CumulativeTimeIteration struct{}

func (*CumulativeTimeIteration) Configure

func (c *CumulativeTimeIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*CumulativeTimeIteration) Iterate

func (c *CumulativeTimeIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type DriftDiffusionIteration

DriftDiffusionIteration steps a general drift–diffusion SDE per dimension.

Usage hints:

type DriftDiffusionIteration struct {
    // contains filtered or unexported fields
}

func (*DriftDiffusionIteration) Configure

func (d *DriftDiffusionIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*DriftDiffusionIteration) Iterate

func (d *DriftDiffusionIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type DriftJumpDiffusionIteration

DriftJumpDiffusionIteration steps a general drift–jump–diffusion process.

Usage hints:

type DriftJumpDiffusionIteration struct {
    JumpDist JumpDistribution
    // contains filtered or unexported fields
}

func (*DriftJumpDiffusionIteration) Configure

func (d *DriftJumpDiffusionIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*DriftJumpDiffusionIteration) Iterate

func (d *DriftJumpDiffusionIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type GammaJumpDistribution

GammaJumpDistribution draws jump magnitudes from a gamma distribution.

Usage hints:

type GammaJumpDistribution struct {
    // contains filtered or unexported fields
}

func (*GammaJumpDistribution) Configure

func (g *GammaJumpDistribution) Configure(partitionIndex int, settings *simulator.Settings)

func (*GammaJumpDistribution) NewJump

func (g *GammaJumpDistribution) NewJump(params *simulator.Params, valueIndex int) float64

type GeometricBrownianMotionIteration

GeometricBrownianMotionIteration steps a multiplicative (geometric) Brownian motion per dimension.

Usage hints:

type GeometricBrownianMotionIteration struct {
    // contains filtered or unexported fields
}

func (*GeometricBrownianMotionIteration) Configure

func (g *GeometricBrownianMotionIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*GeometricBrownianMotionIteration) Iterate

func (g *GeometricBrownianMotionIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type GradientDescentIteration

GradientDescentIteration performs a gradient-based parameter update.

Usage hints:

type GradientDescentIteration struct{}

func (*GradientDescentIteration) Configure

func (g *GradientDescentIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*GradientDescentIteration) Iterate

func (g *GradientDescentIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type JumpDistribution

JumpDistribution defines the interface to draw sudden jumps.

Usage hints:

type JumpDistribution interface {
    Configure(partitionIndex int, settings *simulator.Settings)
    NewJump(params *simulator.Params, valueIndex int) float64
}

type OrnsteinUhlenbeckIteration

OrnsteinUhlenbeckIteration steps an Ornstein–Uhlenbeck mean-reverting process per dimension.

Usage hints:

type OrnsteinUhlenbeckIteration struct {
    // contains filtered or unexported fields
}

func (*OrnsteinUhlenbeckIteration) Configure

func (o *OrnsteinUhlenbeckIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*OrnsteinUhlenbeckIteration) Iterate

func (o *OrnsteinUhlenbeckIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

type WienerProcessIteration

WienerProcessIteration implements a standard Wiener process (Brownian motion) for stochastic simulation.

The Wiener process W(t) is a fundamental continuous-time stochastic process that serves as the building block for many other stochastic models. It represents pure random motion with no drift or mean reversion.

Mathematical Background: The Wiener process W(t) is characterized by:

Implementation: At each timestep, the process evolves as:

X(t+dt) = X(t) + sqrt(variance * dt) * Z

where Z ~ N(0,1) is a standard normal random variable, variance is the per-dimension variance rate, and dt is the timestep size.

Applications:

Configuration:

Example:

iteration := &WienerProcessIteration{}
// Configure with variance = 0.1, dt = 0.01
// Results in sqrt(0.1 * 0.01) = 0.0316 standard deviation per step

Performance:

type WienerProcessIteration struct {
    // contains filtered or unexported fields
}

func (*WienerProcessIteration) Configure

func (w *WienerProcessIteration) Configure(partitionIndex int, settings *simulator.Settings)

func (*WienerProcessIteration) Iterate

func (w *WienerProcessIteration) Iterate(params *simulator.Params, partitionIndex int, stateHistories []*simulator.StateHistory, timestepsHistory *simulator.CumulativeTimestepsHistory) []float64

Generated by gomarkdoc