表2の出力に用いたCプログラム(文字コードはUTF-8)
#include <stdio.h>
#include <math.h>
#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));
}