Class: Malge::ErrorFittedFunction::AXInv32

Inherits:
Malge::ErrorFittedFunction show all
Defined in:
lib/malge/errorfittedfunction/axinv32.rb

Overview

Assumed y = a /x^3/2

NOTE: @coefficients might become negative value. Need discussion for dealing?

Instance Attribute Summary

Attributes inherited from Malge::ErrorFittedFunction

#coefficients, #diff_abs_pairs, #raw_pairs

Instance Method Summary collapse

Methods inherited from Malge::ErrorFittedFunction

#initialize, #variance

Constructor Details

This class inherits a constructor from Malge::ErrorFittedFunction

Instance Method Details

#equationObject



15
16
17
# File 'lib/malge/errorfittedfunction/axinv32.rb', line 15

def equation
  sprintf("f(x) = %f / (x^{3/2})", * @coefficients)
end

#expected_error(x) ⇒ Object



19
20
21
# File 'lib/malge/errorfittedfunction/axinv32.rb', line 19

def expected_error(x)
  @coefficients[0] /(x** (3.0/2.0))
end

#fitObject



10
11
12
13
# File 'lib/malge/errorfittedfunction/axinv32.rb', line 10

def fit
  inv32_pairs = @diff_abs_pairs.map {|pair| [pair[0] ** ( - 3.0/2.0), pair[1]]}
  @coefficients = Malge::LeastSquare.least_square_proportional(inv32_pairs)
end

#most_strict_pairObject



32
33
34
# File 'lib/malge/errorfittedfunction/axinv32.rb', line 32

def most_strict_pair
  @raw_pairs.max_by{ |pair| pair[0] }
end

#x(y) ⇒ Object

y = a/x^3/2

y = a[0]/x^{3/2}

x^3/2 y = a

x^{3/2} = a[0]/y
      x = (a[0]/y)^{2/3}


28
29
30
# File 'lib/malge/errorfittedfunction/axinv32.rb', line 28

def x(y)
  return (@coefficients[0] / y ) ** (2.0/3.0)
end