class StochasticProcess::BrownianMotion
Public Class Methods
new(initial_position: 0.0, start_time: DEFAULT_START_TIME, end_time: DEFAULT_END_TIME, evaluations: DEFAULT_EVALUATIONS)
click to toggle source
Calls superclass method
StochasticProcess::Base::new
# File lib/stochastic_process/brownian_motion.rb, line 9 def initialize(initial_position: 0.0, start_time: DEFAULT_START_TIME, end_time: DEFAULT_END_TIME, evaluations: DEFAULT_EVALUATIONS) super(initial_position: initial_position, start_time: start_time, end_time: end_time, evaluations: evaluations, path_increment: method(:brownian_path_increment)) end
Public Instance Methods
brownian_path_increment()
click to toggle source
# File lib/stochastic_process/brownian_motion.rb, line 5 def brownian_path_increment return gaussian(0, 0.1) end
Private Instance Methods
gaussian(mean, stddev)
click to toggle source
# File lib/stochastic_process/brownian_motion.rb, line 20 def gaussian(mean, stddev) theta = 2 * Math::PI * rand rho = Math.sqrt(-2 * Math.log(1 - rand)) scale = stddev * rho x = mean + scale * Math.cos(theta) #y = mean + scale * Math.sin(theta) return x end