Integration by Monte Carlo Method
by Reinaldo Baretti Machín www.oocities.org/serienumerica www.oocities.org/reibaretti2004 e-mail: reibaretti2004@yahoo.com c Integration of sin(x) by Monte Carlo method c see solved problem 30.1 ,Numerical Analysis, Francis Scheid, c Schaum's Outline dimension na(400) real nmod f(x)=sin(x) pi=2.*asin(1.) nmod=2.**7 x1=1. na(1)=int(x1) r=37. nsample=100 kount=0 sum=0. bmina=pi/2.-0. do 30 ii=1,nsample call aleat(x1,r,nmod,x2,naleat) theta=bmina*float(naleat)/nmod sum=sum+sin(theta) x1=x2 30 continue aint= bmina*sum/float(nsample) print*,'aint,Iexact=',aint,1. c call alist (na,nsample) stop end subroutine aleat(x1,r,nmod,x2,naleat) real nmod x2=r*x1 factor=x2/nmod x2=x2-int(factor)*nmod naleat=int(x2) x1=x2 return end subroutine alist(na, nsample) dimension na(400) in=ifix(float(nsample)/10.) nj1=1 nj2=10*nj1 Print*,'random numbers=' do 10 i=1,in print*,(na(j),j=nj1,nj2) nj1=nj2+1 nj2=10*(i+1) 10 continue return end RUN aint,Iexact= 0.998798788 1.