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

f = GSL::Function.alloc { |x| Math::exp(-x) }

puts("f(x) = exp(-x)");
puts("Derivative: -exp(-x)")

h = 1e-8
x = GSL::Vector.linspace(0, 5, 50)
y = f.eval(x)
dy, derr = f.deriv_central(x, h)
GSL::graph(x, y, dy, "-T X -C -g 3 -X x -L 'f(x) = exp(-x), and its derivative'")