08/07/02 15:24:37
>>486
main()
{
int i,NMAX;
double h,s1,s2,s,x1,x2;
for(NMAX=2;NMAX<10000;NMAX*=2){
printf("\n[シンプソンの公式による数値積分]\n");
printf("\n数値積分の分割数 NMAX(偶数)=");
// scanf("%d",&NMAX);
h=(B-A)/NMAX;
s1=f(A+h);
s2=0.0;
for(i=2;i<=NMAX-2;i+=2){
x1=A+(i+1)*h;
x2=A+i*h;
s1=s1+f(x1);
s2=s2+f(x2);
}
s=(f(A)+f(B)+4.0*s1+2.0*s2)*h/3.0;
printf("\n積分値=%15.12lf\n",s);
printf("\n円周率=%15.12lf\n",Pi);
}
}