Class: SPCore::Calculus

Inherits:
Object
  • Object
show all
Defined in:
lib/spcore/analysis/calculus.rb

Overview

Calculus analysis methods.

Class Method Summary collapse

Class Method Details

.derivative(values, dt) ⇒ Object

Differentiates the given values.

Parameters:

  • values (Array)

    The input value series.

  • dt (Numeric)

    The time differential (i.e. the sample period)



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/spcore/analysis/calculus.rb', line 8

def self.derivative values, dt
  raise "values.size is <= 2" if values.size <= 2
  
  derivative = Array.new(values.size)
  
  for i in 1...values.count
    derivative[i] = (values[i] - values[i-1]) / dt
  end
  
  derivative[0] = derivative[1]
  return derivative
end

.integral(values, dt) ⇒ Object

Integrates the given values.

Parameters:

  • values (Array)

    The input value series.

  • dt (Numeric)

    The time differential (i.e. the sample period)



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/spcore/analysis/calculus.rb', line 25

def self.integral values, dt
  raise "values.size is <= 2" if values.size <= 2
  
  integral = Array.new(values.size)
  
  integral[0] = values[0] * dt
  for i in 1...values.count
    integral[i] = (values[i] * dt) + integral[i-1]
  end
  
  return integral
end