/* 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));
}
}