#include <stdio.h> #include <math.h> #include <numeric.h> double func(double x) { return x*sin(x); } int main() { double yprime, func(double), x, h, err; x = 2.5; yprime = derivative(func, x); /* derivative of func = x*sin(x) is sin(x)+x*cos(x) */ printf("yprime = %f\n", sin(x)+x*cos(x)); printf("derivative(func, x) = %f\n", yprime); yprime = derivative(func, x, &err); printf("derivative(func, x, &err) = %f, err = %f\n", yprime, err); h = 0.1; // default h = 0.001 yprime = derivative(func, x, &err, h); printf("derivative(func, x, &err, h) = %f, err = %f\n", yprime, err); }
yprime = -1.404387 derivative(func, x) = -1.404387 derivative(func, x, &err) = -1.404387, err = 0.000000 derivative(func, x, &err, h) = -1.404387, err = 0.000000