- 111 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:33:10 ]
- >>107
#include <stdio.h> #include <math.h> double f(double x){ return 1.0/(1.0+x*x); } int main(void){ double a=0.0, b=10.0, e=0.0000001, h, s1=0.0, s2; long n, i; int is_first=1; for(n=2;;n+=2){ // アルゴリズムの関係で n は偶数 h=(b-a)/n; s2=f(a)+f(b); for(i=1;i<n;i+=2) s2+=2*f(a+h*i); for(i=2;i<n;i+=2) s2+=4*f(a+h*i); s2*=h/3; if(!is_first && fabs(s2-s1)<e) break; s1=s2; is_first=0; } printf("n=%ld integral=%f\n", n, s2); return 0; }
|

|