#include #include #define KMAX 7 #define PI 3.141592653589793238 double func(double x); int main(void) { int k = 0, n = 1; double a,b,h,x,s = 0.0, w, I; a = 0.0; b = 2 * PI; I = 7.9549265210128448631; h = b-a; s = 0.5 * h * (func(a) + func(b)); k = 0; printf("%3s %5s %20s %11s\n","n","h","T_n ","T_n-I"); printf("%3d %8.4f %20.15f %11.4e\n",n,h,s,s-I); for(k = 1; k <= KMAX && fabs(s-I)>1.0e-15; k++){ n *= 2; h *= 0.5; w = 0.0; x = a + h; while(x < b){ w += func(x); x += 2.0 * h; } s = 0.5 * s + h * w; printf("%3d %8.4f %20.15f %11.4e\n",n,h,s,s-I); } return 0; } double func(double x) { return exp(sin(x)); }