Sha256: 80b9d11bd9c9039899b3b3632b041ad43a68675d1d71ba01ae44034a4fcb7942

Contents?: true

Size: 970 Bytes

Versions: 22

Compression:

Stored size: 970 Bytes

Contents

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

dim = 3
roesller = Proc.new { |t, v, dvdt, params|
  a = params[0]; b = params[1]; c = params[2]
  x = v[0]; y = v[1]; z = v[2]
  dvdt[0] = - y - z
  dvdt[1] = x + a*y
  dvdt[2] = b*x - (c - x)*z
}

a = 0.344
b = 0.4
c = 4.5
solver = GSL::Odeiv::Solver.new(GSL::Odeiv::Step::RKF45, [1e-6, 0.0], roesller, dim)
solver.set_params(a, b, c)

t = 0.0; tend = 100.0
h = 1e-6
v = GSL::Vector[1, 0, 0]

GSL::ieee_env_setup()

N = 1000
x = GSL::Vector[N]
y = GSL::Vector[N]
z = GSL::Vector[N]

i = 0
while t < tend
  t, h, status = solver.apply(t, tend, h, v)
  x[i] = v[0]
  y[i] = v[1]
  z[i] = v[2]
  i += 1
  break if status != GSL::SUCCESS
end

Gnuplot::open do |gp|
  Gnuplot::SPlot.new( gp ) do |plot|

    plot.title "Roesller equation"

    plot.data = [
      Gnuplot::DataSet.new( [x.subvector(i), y.subvector(i), z.subvector(i)] ) { |ds|
        ds.title = ""
        ds.with = "lines"
      }
    ]
  end
end


Version data entries

22 entries across 22 versions & 4 rubygems

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