Sha256: 2b06d748eda3f2c9fc40d2b72f28343eecc6ef9664e3690ee60bfa212f2160c7

Contents?: true

Size: 600 Bytes

Versions: 16

Compression:

Stored size: 600 Bytes

Contents

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

# Polynomial p(x) = 1.5-1.25x-3.75x^2+x^4
poly = Poly[1.5, -1.25, -3.75, 0, 1]
# Solve the equation p(x) == 0
root = poly.solve    # Vector::Complex
# Extract only the real parts 
# (imaginary parts are zero for this case)
re = root.real       # Vector::View

puts("p(x) = 1.5-1.25x-3.75x^2+x^4 == 0")
puts("Roots are found at #{re[0]}, #{re[1]}, #{re[2]}, #{re[3]}")

# Display the result
x = Vector.linspace(-2.5, 2.5, 20)
y = poly.eval(x)
zero = Vector.calloc(4)
graph([x, y], [re, zero], "-T X -C -g 3 -S 4 -X x -L 'p(x) = 1.5-1.25x-3.75x^2+x^4'")

Version data entries

16 entries across 16 versions & 4 rubygems

Version Path
rb-gsl-1.16.0.4 examples/poly/demo.rb
rb-gsl-1.16.0.3 examples/poly/demo.rb
rb-gsl-1.16.0.3.rc1 examples/poly/demo.rb
gsl-nmatrix-1.15.3.2 examples/poly/demo.rb
gsl-nmatrix-1.15.3.1 examples/poly/demo.rb
rb-gsl-1.16.0.2 examples/poly/demo.rb
rb-gsl-1.16.0.1 examples/poly/demo.rb
rb-gsl-1.16.0 examples/poly/demo.rb
rb-gsl-1.15.3.2 examples/poly/demo.rb
rb-gsl-1.15.3.1 examples/poly/demo.rb
blackwinter-gsl-1.15.3.2 examples/poly/demo.rb
gsl-nmatrix-1.15.3.0 examples/poly/demo.rb
gsl-1.15.3 examples/poly/demo.rb
gsl-1.14.7 examples/poly/demo.rb
gsl-1.14.6 examples/poly/demo.rb
gsl-1.14.5 examples/poly/demo.rb