
刚开始学C语言,没想到高数里也有这个东西,就做不出来了,根本没有丝路
#include <stdio.h>
#include <math.h>
double first_order_precession_difference(double x, double h) {
return (exp(x + h) - exp(x)) / h;
}
double first_order_posterior_difference(double x, double h) {
return (exp(x) - exp(x - h)) / h;
}
double first_order_midpoint_difference(double x, double h) {
return (exp(x + h) - exp(x - h)) / (h * 2);
}
int main() {
double x = 0.0;
for (int i = 0; i <= 6; i++) {
double h = pow(0.5, i);
printf("h = %lf\n", h);
double r1 = first_order_precession_difference(x, h);
double r2 = first_order_posterior_difference(x, h);
double r3 = first_order_midpoint_difference(x, h);
printf("前差:%lf\n后差:%lf\n中差:%lf\n", r1, r2, r3);
}
return 0;
}