Sha256: 9fc6f911aee08448039d18a69cbd1f199f9ca7ee3cdc25b95af6d8c8b51f0ad3

Contents?: true

Size: 720 Bytes

Versions: 22

Compression:

Stored size: 720 Bytes

Contents

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

# Expected: x0 ~ 0.57983, x1 ~ 2.54621
#   (by Octave)
func = GSL::MultiRoot::Function.alloc(2) { |x, f|
  x0 = x[0]
  x1 = x[1]
  f[0] = -2.0*x0*x0 + 3.0*x0*x1 + 4.0*sin(x1) - 6.0
  f[1] = 3.0*x0*x0 - 2.0*x0*x1*x1 + 3.0*cos(x0) + 4.0
}

#fsolver = GSL::MultiRoot::FSolver.alloc("dallocton", 2)
fsolver = GSL::MultiRoot::FSolver.alloc("broyden", 2)
p fsolver.name

x = GSL::Vector.alloc([1.0, 2.0])
fsolver.set(func, x)

iter = 0
begin
  iter += 1
  status = fsolver.iterate
  root = fsolver.root
  f = fsolver.f
  status = fsolver.test_residual(1e-6)
end while status == GSL::CONTINUE and iter < 1000

x0 = fsolver.root[0]
x1 = fsolver.root[1]
printf("%f %f\n", x0, x1)

Version data entries

22 entries across 22 versions & 4 rubygems

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