Beispiel #1
0
static VALUE Diff_forward(VALUE self, VALUE f, VALUE x) {
  int ret;
  gsl_function * ptr;
  double abserr, result;
  Data_Get_Struct(f, gsl_function, ptr);
  ret = gsl_diff_forward(ptr, NUM2DBL(x), &result, &abserr);
  return rb_ary_new3(2, rb_float_new(result), rb_float_new(abserr));
}
Beispiel #2
0
int
main ()
{
  gsl_function F;
  double result, abserr;

  F.function = &f ;
  F.params = 0;

  printf("f(x) = x^(3/2)\n\n") ;

  gsl_diff_central (&F, 2.0, &result, &abserr);
  printf("x = 2.0\n");
  printf("derivative = %.10f +/- %.5f\n", result, abserr);
  printf("exact      = %.10f\n\n", 1.5 * sqrt(2.0));

  gsl_diff_forward (&F, 0.0, &result, &abserr);
  printf("x = 0.0\n");
  printf("derivative = %.10f +/- %.5f\n", result, abserr);
  printf("exact      = %.10f\n", 0.0);
}