| #include <stdio.h> |
| #include <gsl/gsl_math.h> |
| #include <gsl/gsl_deriv.h> |
| |
| double f (double x, void * params) |
| { |
| return pow (x, 1.5); |
| } |
| |
| int |
| main (void) |
| { |
| gsl_function F; |
| double result, abserr; |
| |
| F.function = &f; |
| F.params = 0; |
| |
| printf ("f(x) = x^(3/2)\n"); |
| |
| gsl_deriv_central (&F, 2.0, 1e-8, &result, &abserr); |
| printf ("x = 2.0\n"); |
| printf ("f'(x) = %.10f +/- %.10f\n", result, abserr); |
| printf ("exact = %.10f\n\n", 1.5 * sqrt(2.0)); |
| |
| gsl_deriv_forward (&F, 0.0, 1e-8, &result, &abserr); |
| printf ("x = 0.0\n"); |
| printf ("f'(x) = %.10f +/- %.10f\n", result, abserr); |
| printf ("exact = %.10f\n", 0.0); |
| |
| return 0; |
| } |