#include #include float exp_diff_for(float x, float h) { return (exp(x+h) - exp(x))/h ; } double exp_diff_back(double x, double h) { return (exp(x-h) - exp(x))/h ; } double exp_diff_central(double x, double h) { return (exp(x+h) - exp(x-h))/(2.0 * h); } int main() { int n; float x = 1.0 , h, fx, err, ex; ex = exp(x); printf("# exact = %f\n", ex); printf("# h diff error\n"); for(h = 1e-1; h > 1e-6; h = h / 2.0) { fx = exp_diff_for(x, h); err = fabs((ex - fx) / ex); printf("%10.7lf %15.10lf %15.10lf\n", h, fx, err); } return 0; }