EL VALOR DE PI USANDO EL MÉTODO MONTE CARLO EN FORTRAN, SCILAB 5.5 Y MATLAB
1. Año de la Diversificación Productiva y del Fortalecimiento de la
Educación
UNIVERSIDAD NACIONAL
DEL CALLAO
FACULTAD DE CIENCIAS
NATURALES Y MATEMÁTICA
FÍSICA TEÓRICA COMPUTACIONAL II
“EL VALOR DE PI USANDO EL MÉTODO MONTE
CARLO EN FORTRAN Y SCILAB 5.5”
MARCO ANTONIO ALPACA CHAMBA
ESCUELA PROFESIONAL DE: FÍSICA
PROGRAM
IMPLICIT NONE
REAL, INTEGER…
11 -06-2015
2. Encontrar el valor de pi por el Método MONTE CARLO:
USANDO FORTRAN TENEMOS:
PROGRAM MONTE_PI
INTEGER::S,L
REAL :: X,Y,PI,N,R
OPEN(UNIT=12,FILE='DENTRO.TXT',STATUS='UNKNOWN',ACTION='WRITE')
OPEN(UNIT=13,FILE='FUERA.TXT',STATUS='UNKNOWN',ACTION='WRITE')
PRINT*,''
PRINT*,
'====================================================================='
PRINT*,' EL VALOR DE PI USANDO EL METHODMONTE CARLO'
PRINT*,'==================================================================
===='
PRINT*,''
PRINT*, 'INGRESAR EL NUMBER DE HISTORIAS:'
READ(5,*) N
PRINT*,''
PRINT*,('*',I=1,79)
PRINT '(5X,"RESULTADOS COMPUTACIONALES")'
PRINT*,('*',I=1,79)
DO J=1,N
R=1
IF (MOD(J,500)==0) THEN
!DO WHILE (K<N+1)
S=0
D=0
CALL RANDOM_SEED()
END IF
ENDDO
DO L=1,N
CALL RANDOM_NUMBER(X)
CALL RANDOM_NUMBER(Y)
RALEAT=SQRT(X**2+Y**2)
IF(RALEAT<=(R**2)) THEN
S=S+1
WRITE(12,7)X,Y
ELSE
D=D+1
WRITE(13,9)X,Y
END IF
ENDDO
PI=4*S/N
7 FORMAT(2X,2F8.4)
9 FORMAT(2X,2F8.4)
PRINT*,'EL NUMBER APROXIMADO DE PI ES:',PI
PRINT*,''
STOP
END PROGRAM
4. program rng_estimate_pi
implicit none
integer,parameter:: NUM_DRAWS_TOTAL =1e7
integer::countDrawsInCircle =0,i
real :: randomPosition (2)
integer:: seedArray (16)
call date_and_time(values=seedArray (1:8))
call date_and_time(values=seedArray (9:16))
call random_seed(put=seedArray)
do i=1,NUM_DRAWS_TOTAL
call random_number( randomPosition )
if((randomPosition(1)**2 + randomPosition(2)**2)<1.0) then
countDrawsInCircle = countDrawsInCircle + 1
end if
end do
print*,''
print*,"el valor estimado de pi es:=", &
4.0*(real(countDrawsInCircle )/ real(NUM_DRAWS_TOTAL ))
end program rng_estimate_pi