Sha256: 85f499f0ba0ca9ce4082ace01d6e58844b7a82828b0bb35c75afecebc50c99ea

Contents?: true

Size: 698 Bytes

Versions: 6

Compression:

Stored size: 698 Bytes

Contents

#!/usr/bin/env ruby
require("gsl")

N = 40

amp0 = 5.0
b0 = 0.1
y0 = 1.0

r = GSL::Rng.alloc()
x = GSL::Vector[0...N]
sigma = GSL::Vector[N]
sigma.set_all(0.1)
y = y0 + amp0*GSL::Sf::exp(-b0*x) + 0.1*r.gaussian(1, N)

coef, err, chi2, dof = GSL::MultiFit::FdfSolver.fit(x, sigma, y, "exponential")
y0 = coef[0]
amp = coef[1]
b = coef[2]
p coef
p err
GSL::graph(x, y, y0+amp*GSL::Sf::exp(-b*x))

# This will result in
# [ 1.019e+00 5.045e+00 1.040e-01 ]
# [ 3.385e-02 5.395e-02 2.826e-03 ]

# GNUPLOT results:
# y0              = 1.01925          +/- 0.03383      (3.319%)
# A               = 5.04536          +/- 0.05396      (1.069%)
# b               = 0.104049         +/- 0.002826     (2.716%)

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
gsl-2.1.0.3 examples/fit/expfit.rb
gsl-2.1.0.2 examples/fit/expfit.rb
gsl-2.1.0.1 examples/fit/expfit.rb
gsl-2.1.0 examples/fit/expfit.rb
gsl-1.16.0.6 examples/fit/expfit.rb
rb-gsl-1.16.0.5 examples/fit/expfit.rb