Anda di halaman 1dari 11

Resolucion de integrales por Metodo Montecarlo

Bryan Motta Zorrilla - Cod 082924H


21-07-2016

Resumen
Se Implementar an distintos metodos numericos para la resoluci
on de integrales mediante el uso de n
ume-
ros aleatorios y el metodos montecarlo se presentar an tanto el metodo de Aceptaci on-Rechazo y el del Valor
Promedio

1. M
etodo del Valor Promedio
El primer programa se implemento para la obtencion del valor de la integral mediante el metodo del Valor
Promedio
program Met_Valor
! variables
Integer N
Real (4) X ,Y , So , Ds , X1 , INTE , Var , Des
! apertura de archivo
open (1 , FILE = Muestra . dat )
! Ingreso de datos
Write (* ,*) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Write (* ,*) solucion de una integral con metodos MC
Write (* ,*) Valor Promedio
Write (* ,*) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
N =10000
a =0
b =4* atan (1.0)
Call RANDOM_SEED () ! Semilla Inicial
Write (* ,*) El numeros iteraciones es : ,N
Write (* ,*) El limite inferior es : ,a
Write (* ,*) El limite superior es : ,b
! inicio de Calculo
J =10
Do while ( J . LE . N )
So =0
Ds =0
If ( Mod (J ,1000). EQ .0) then
Do I =1 , J

Call RANDOM_NUMBER ( X )
X1 = a +( b - a )* X
FX = F ( X1 )
So = So + FX
Ds = Ds +( FX **2)
end Do
So = So / J
Ds = Ds / J
INTE =( b - a )* So
Var =( So **2 - Ds )/ REAL ( J )
Des = SQRT ( ABS ( var ))
Write (1 ,*) J , INTE
Write (* ,10) J , INTE , Var , Des
End if

1
J = J +1
End Do
write (* ,*) La solucion de la integral es : , INTE
10 Format (2 X , I5 ,3( F8 .2 ,1 X ))
End

Function F ( X )
F =10* sin ( x )
return
End Function

2
Se puede tambien hacer el mismo ejemplo para un caso de una integral doble
program Met_Valor_2
! variables
Integer N
Real (4) X ,Y , So , Ds , X1 , INTE , Var , Des , a1 , b1 , a2 , b2
Real (4) Y1
! apertura de archivo
open (1 , FILE = Muestra . dat )
! open (2 , FILE = monte2 . dat )
! open (3 , FILE = montecreci . txt )
! Ingreso de datos
Write (* ,*) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Write (* ,*) Programa para la integral del valor medio para
Write (* ,*) dos variables
Write (* ,*) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
N =1000
a1 =0
b1 =10
a2 =0
b2 =10
Call RANDOM_SEED () ! Semilla Inicial
Write (* ,*) El numeros iteraciones es : ,N
Write (* ,*) El limite inferior en X : , a1
Write (* ,*) El limite superior en X : , b1
Write (* ,*) El limite inferior en Y : , a2
Write (* ,*) El limite superior en Y : , b2
! inicio de Calculo
J =10
Do while ( J . LE . N )
So =0
Ds =0
If ( Mod (J ,100). EQ .0) then
Do I =1 , J

Call RANDOM_NUMBER ( X )
X1 = a1 +( b1 - a1 )* X
Call RANDOM_NUMBER ( Y )
Y1 = a2 +( b2 - a2 )* Y
FX = F ( X1 )
FY = G ( Y1 )
FXY = FX * FY
So = So + FXY
Ds = Ds +( FXY **2)
end Do
So = So / J
Ds = Ds / J
INTE =( b1 - a1 )*( b2 - a2 )* So
Var =( So **2 - Ds )/ REAL ( J )
Des = SQRT ( ABS ( var ))
Write (1 ,*) J , INTE
Write (* ,10) J , INTE , Var , Des
End if
J = J +1
End Do
Write (* ,*) La solucion de la integral es : , INTE
10 Format (2 X , I5 ,2( F8 .2 ,1 X ) , + - ,1X , F8 .2)
End

Function F ( X )

3
F = X **2* EXP ( -( X **2))
return
End Function

Function G ( Y1 )
G = Y **2* EXP ( -( Y **2))
return
End Function

4
2. M
etodo de Aceptaci
on-Rechazo
El segundo programa se implement
o para la resolucion de una integral usando el Metodo de Aceptaci
on-
Rechazo
program Monte_basic
! variables
Integer N
Real (4) X ,Y ,C ,D , Inte , X1 , Y1 ,a ,b , FMAX
! apertura de archivo
open (1 , FILE = monte . dat )
open (2 , FILE = monte2 . dat )
open (3 , FILE = montecreci . dat )
! Ingreso de datos
Write (* ,*) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Write (* ,*) Programa para la integral usando el metodo
Write (* ,*) de aceptacion y rechazo
Write (* ,*) = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
N =10000
Write (* ,*) El numeros iteraciones es : ,N

a =0
b =4* atan (1.0)

K =10
Call RANDOM_SEED () ! Semilla Inicial
! Inicio de numeros randoms
Do while ( K . LE . N )
C =0
D =0
FMAX = Fun ( b /2)
If ( Mod (K ,1000). EQ .0) then
Do I =1 , K
Call RANDOM_NUMBER ( X1 )
X = a +( b - a )* X1
Call RANDOM_NUMBER ( Y1 )
Y = FMAX * Y1
FXI = Fun ( X )
If ( Y . LE . FXI ) Then
C = C +1
Write (1 ,*) X , Y
Else
D = D +1
Write (2 ,*) X , Y
End If
End Do
! Solucion de la integral
Inte =( C / K )*( b - a )* FMAX
Write (3 ,*) K , Inte
Write (* ,*) K , Inte
End If
K = K +1
End Do
Write (* ,*) La solucion de la integral es : , Inte
End

FUNCTION Fun ( X )
! Funcion a Integrar
Fun =10* sin ( X )
RETURN
END FUNCTION

5
3. Problema Planteado y Soluci
on.
Determinar el valor de la integral: Z
10Sin()d
0

3.1. Soluci
on mediante M
etodo de Aceptaci
on-Rechazo
Mediante la salida de datos por Archivo y un graficador obtenemos la imagen de los valores de la integral

Figura 1: Datos del Metodo de Aceptacion-Rechazo

6
adem
as podemos graficar el contorno a trabajar

Figura 2: Puntos de analisis

Figura 3: Evolucion del algoritmo cada 1000 casos

7
3.2. Soluci
on mediante M
etodo del Valor Promedio
Mediante la salida de datos por Archivo y un graficador obtenemos la imagen de los valores de la integral

Figura 4: Datos Metodo del Valor Promedio

8
Figura 5: Evolucion cada 1000 casos

3.3. Comparacion de Metodos


Con los datos anteriores podemos superponer los metodos para ver la evolucion segun el n
umero de casos

Figura 6: Comparaci
on entre los metodos de Aceptacion-Rechazo y Metodo del Valor Promedio

4. Conclusiones
Podemos observar de la comparaci on de datos que la obtencion del valor de la integral es mucho mas rapida
y exacta mediante el uso del Metodo del Valor Promedio esto debido al uso de terminos estadsticos como la
Desviaci
on estandar y la varianza para el algoritmo

9
5. Problema de la integral Doble - Valor Promedio
Determinar el valor de la integral: ZZ 10
2 2
x2 y 2 ex ey dxdy
0
Mediante la salida de datos por Archivo y un graficador obtenemos la imagen de los valores de la integral

Figura 7: Datos Metodo del Valor Promedio para 2 Variables

10
Figura 8: Evolucion cada 1000 casos

11

Anda mungkin juga menyukai