pub struct GeometricBrownianMotion {
pub s0: f64,
pub mu: f64,
pub sigma: f64,
/* private fields */
}Expand description
Geometric Brownian Motion (GBM) for log-normal asset/particle dynamics.
SDE: dS = mu * S * dt + sigma * S * dW Exact solution: S(t) = S0 * exp((mu - sigma^2/2)t + sigmaW(t))
Fields§
§s0: f64Initial value S(0).
mu: f64Drift coefficient mu.
sigma: f64Volatility coefficient sigma.
Implementations§
Source§impl GeometricBrownianMotion
impl GeometricBrownianMotion
Sourcepub fn exact_path(&self, t_end: f64, n_steps: usize) -> Vec<f64>
pub fn exact_path(&self, t_end: f64, n_steps: usize) -> Vec<f64>
Exact path using the analytical solution (no discretisation error).
Returns n_steps + 1 values including S(0) = s0.
Sourcepub fn euler_path(&self, t_end: f64, n_steps: usize) -> Vec<f64>
pub fn euler_path(&self, t_end: f64, n_steps: usize) -> Vec<f64>
Euler-Maruyama discretisation path.
Sourcepub fn variance_at(&self, t: f64) -> f64
pub fn variance_at(&self, t: f64) -> f64
Theoretical variance Var[S(t)] = S0^2 * exp(2mut) * (exp(sigma^2*t) - 1).
Auto Trait Implementations§
impl Freeze for GeometricBrownianMotion
impl RefUnwindSafe for GeometricBrownianMotion
impl Send for GeometricBrownianMotion
impl Sync for GeometricBrownianMotion
impl Unpin for GeometricBrownianMotion
impl UnsafeUnpin for GeometricBrownianMotion
impl UnwindSafe for GeometricBrownianMotion
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.