/* m.c: 中点公式による数値積分 */ #include <stdio.h> double f(double x) { return(1/x); } double m(double x1, double x2, int n) { int i; double s = 0.0; double h = (x2 - x1) / n; for (i = 1; i <= n; i++) { s = f(x1+(i-0.5)*h) * h + s; } return(s); } int main(void) { int n; for (n = 2; n <= 256; n = 2*n) { printf("n = %3d, s = %13.10lf \n", n, m(1.0, 2.0, n)); } }