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