Sha256: f54fa387ae277626c0b01a66ed7e3330cb32fa8817f53e7667bae9f6e0fa43e6

Contents?: true

Size: 830 Bytes

Versions: 22

Compression:

Stored size: 830 Bytes

Contents

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

# Create data
r = GSL::Rng.alloc("knuthran")
sigma = 1.5
x0 = 1.0
amp = 2.0
y0 = 3.0
N = 100
x = GSL::Vector.linspace(-4, 6, N)
y = y0 + amp*GSL::Ran::gaussian_pdf(x - x0, sigma) + 0.02*GSL::Ran::gaussian(r, 1.0, N)

coef, err, chi2, dof =  GSL::MultiFit::FdfSolver.fit(x, y, "gaussian")
sigma2 = Math::sqrt(coef[3])
x02 = coef[2]
amp2 = coef[1]*Math::sqrt(2*Math::PI)*sigma
y02 = coef[0]
y2 = y02 + amp2*GSL::Ran::gaussian_pdf(x - x02, sigma2)

GSL::graph(x, y, y2, "-C -g 3 -x -4 6")

printf("Expect:\n")
printf("sigma = #{sigma}, x0 = #{x0}, amp = #{amp}, y0 = #{y0}\n")
printf("Result:\n")
printf("sigma = %5.4e +/- %5.4e\n", sigma2, err[3])
printf("   x0 = %5.4e +/- %5.4e\n", x02, err[2])
printf("  amp = %5.4e +/- %5.4e\n", amp2, err[1])
printf("   y0 = %5.4e +/- %5.4e\n", y02, err[0])

Version data entries

22 entries across 22 versions & 4 rubygems

Version Path
gsl-2.1.0.3 examples/fit/gaussfit.rb
gsl-2.1.0.2 examples/fit/gaussfit.rb
gsl-2.1.0.1 examples/fit/gaussfit.rb
gsl-2.1.0 examples/fit/gaussfit.rb
gsl-1.16.0.6 examples/fit/gaussfit.rb
rb-gsl-1.16.0.5 examples/fit/gaussfit.rb
rb-gsl-1.16.0.4 examples/fit/gaussfit.rb
rb-gsl-1.16.0.3 examples/fit/gaussfit.rb
rb-gsl-1.16.0.3.rc1 examples/fit/gaussfit.rb
gsl-nmatrix-1.15.3.2 examples/fit/gaussfit.rb
gsl-nmatrix-1.15.3.1 examples/fit/gaussfit.rb
rb-gsl-1.16.0.2 examples/fit/gaussfit.rb
rb-gsl-1.16.0.1 examples/fit/gaussfit.rb
rb-gsl-1.16.0 examples/fit/gaussfit.rb
rb-gsl-1.15.3.2 examples/fit/gaussfit.rb
rb-gsl-1.15.3.1 examples/fit/gaussfit.rb
blackwinter-gsl-1.15.3.2 examples/fit/gaussfit.rb
gsl-nmatrix-1.15.3.0 examples/fit/gaussfit.rb
gsl-1.15.3 examples/fit/gaussfit.rb
gsl-1.14.7 examples/fit/gaussfit.rb