Skip to main content

gbm

Function gbm 

Source
pub fn gbm(
    mu: f64,
    sigma: f64,
) -> SDE<f64, impl Drift<f64>, impl Diffusion<f64, f64>>
Expand description

Geometric Brownian motion: dX = muX dt + sigmaX dW

ยงExample

use pathwise_core::{simulate, gbm, euler};

let g = gbm(0.05, 0.2);
let scheme = euler();
let paths = simulate(&g.drift, &g.diffusion, &scheme, 100.0, 0.0, 1.0, 5, 100, 0).expect("simulate failed");
assert_eq!(paths.shape(), &[5, 101]);
// All starting values equal x0 = 100.0
for i in 0..5 {
    assert!((paths[[i, 0]] - 100.0).abs() < 1e-12);
}