#include
#include
#include
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