class StochasticProcess::Base

Constants

DEFAULT_END_TIME
DEFAULT_EVALUATIONS
DEFAULT_START_TIME

Attributes

evaluations[RW]

Public Class Methods

new(initial_position: 0.0, start_time: DEFAULT_START_TIME, end_time: DEFAULT_END_TIME, evaluations: DEFAULT_EVALUATIONS, path_increment: method(:default_path_increment)) click to toggle source
# File lib/stochastic_process/base.rb, line 9
def initialize(initial_position: 0.0,
  start_time: DEFAULT_START_TIME,
  end_time: DEFAULT_END_TIME,
  evaluations: DEFAULT_EVALUATIONS,
  path_increment: method(:default_path_increment))
  @initial_position = initial_position
  @start_time = start_time
  @end_time = end_time
  @evaluations = evaluations
  @path_increment = path_increment
end

Public Instance Methods

default_path_increment() click to toggle source
# File lib/stochastic_process/base.rb, line 21
def default_path_increment
  return 0
end
graph() click to toggle source
# File lib/stochastic_process/base.rb, line 40
def graph
  a = []
  m = mesh()
  a.push({x: @start_time, y: @initial_position})
  @evaluations.times do |i| # iterates from 0 to @evaluations - 1
    a.push({x: @start_time + (i + 1) * m, y: a[i][:y] + @path_increment.call})
  end
  return a
end
interval_length() click to toggle source
# File lib/stochastic_process/base.rb, line 25
def interval_length
  (@end_time - @start_time).abs.to_f
end
mesh() click to toggle source
# File lib/stochastic_process/base.rb, line 29
def mesh
   interval_length / @evaluations
end
mesh=(m) click to toggle source
# File lib/stochastic_process/base.rb, line 33
def mesh=(m)
  if m <= 0
    raise("Only positive numbers allowed!")
  end
  @evaluations = interval_length / m.to_f
end