シンプソン則

program simpsonsoku2(input,output); const a=0; b=1; pi=3.1415; var I,h,s,t:real; N,x,u:integer; function f1(x:real):real; begin f1:=4/(1+sqr(x)) end; function f2(N:integer):real; begin h:=b-a; h:=h/N; s:=0; u:=2; while u<N do begin s:=s+f1(a+u*h); u:=u+2 end; t:=0; u:=1; while u<N do begin t:=t+f1(a+u*h); u:=u+2 end; f2:=h*(f1(a)+f1(b)+2*s+4*t)/3; end; { f2 } function g1(x:real):real; begin x:=sin(2*pi*x); g1:=exp(x) end; { J } function g2(N:integer):real; begin h:=b-a; h:=h/N; s:=0; u:=2; while u<N do begin s:=s+g1(a+u*h); u:=u+2 end; t:=0; u:=1; while u<N do begin t:=t+g1(a+u*h); u:=u+2 end; g2:=h*(g1(a)+g1(b)+2*s+4*t)/3; end; { g2 } begin N:=2; while N<=16 do begin N:=2*N; writeln('N=',N:1,' I1=',f2(N),' I2=',g2(N)) end end.


Last modified: 2000$BG/(B1$B7n(B20$BF|(B 13:51