-
UniversidaddeElSalvador
Facultad de Ingeniera y Arquitectura
Tcnicas de Simulacin TDS 115
Trabajo Ex Aula Clculo de rea de un Polgono Irregular por Mtodo
Monte Carlo
Catedrtico: Ingeniero y Master en Ciencias de Computacin Carlos
Ernesto Garca
Alumno: Alexander Enrique Escobar Ortiz Carnet: EO97003
Abril de 2013
-
Contenido
Introduccin
............................................................................................................................................
3
Mtodo Monte Carlo
...............................................................................................................................
4
Definicin del Problema
..........................................................................................................................
4
Implementacin de la Solucin utilizando Scilab
......................................................................................
6
El Ejercicio:
..........................................................................................................................................
6
Ejecucin del Programa
.......................................................................................................................
8
Calculo de Error Absoluto y Relativo
..................................................................................................
10
Error Absoluto
...................................................................................................................................
10
Error Relativo
....................................................................................................................................
10
Resolviendo los Otros problemas de rea
..........................................................................................
11
Conclusiones
.........................................................................................................................................
12
Bibliografa
............................................................................................................................................
13
-
Introduccin
El presente documento pretende ilustrar claramente el Mtodo
Monte Carlo resolviendo el problema de
Calcular el rea de un Polgono irregular, haciendo uso de un
lenguaje de programacin especfico, con
el fin de demostrar su aplicabilidad prctica, sin profundizar en
el concepto o teora.
Debido a que el Autor del documento se encuentra cursando la
Materia Anlisis Numrico (ANS115),
dicho curso se pretende proveer al estudiante de los
conocimientos necesarios para permitirle tomar
decisiones adecuadas en cuanto a la aplicacin de algoritmos para
la solucin numrica de problemas
cuya solucin matemtica es complicada o imposible.1
Se encontr conveniente implementarlo en el Software oficial de
dicha materia (anlisis numrico) que
es Scilab un Software de cdigo abierto para el Clculo
Numrico.
1 Programa de la Asignatura Anlisis Numrico ANS 115 UES 2013,
objetivos generales
-
Mtodo Monte Carlo
El mtodo de Monte Carlo2 es un mtodo no determinstico o
estadstico numrico, usado para
aproximar expresiones matemticas complejas y costosas de evaluar
con exactitud. El mtodo se llam
as en referencia al Casino de Monte Carlo (Principado de Mnaco)
por ser la capital del juego de azar,
al ser la ruleta un generador simple de nmeros aleatorios. El
nombre y el desarrollo sistemtico de los
mtodos de Monte Carlo datan aproximadamente de 1944 y se
mejoraron enormemente con el
desarrollo de la computadora.
El uso de los mtodos de Monte Carlo como herramienta de
investigacin, proviene del trabajo
realizado en el desarrollo de la bomba atmica durante la Segunda
Guerra Mundial en el Laboratorio
Nacional de Los lamos en EE. UU. Este trabajo conllevaba la
simulacin de problemas probabilsticos de
hidrodinmica concernientes a la difusin de neutrones en el
material de fisin. Esta difusin posee un
comportamiento eminentemente aleatorio. En la actualidad es
parte fundamental de los algoritmos de
Raytracing para la generacin de imgenes 3D.
Definicin del Problema
El Mtodo Estadstico Monte Carlo por aproximacin, para clculo de
reas, inicia definiendo un
Conjunto de A de rea conocida a que contiene dentro un
sub-conjunto B de rea b (b es
desconocida, Ilustracin 1. Conjunto A y Sub Conjunto B, con
puntos al azar). El objetivo es aproximar el
cociente b/a. El mtodo consiste en tirar puntos al azar dentro
del conjunto A. as algunos puntos
caern dentro del sub-conjunto B. Lo que se espera es que a
medida que aumenta la cantidad de puntos
ploteados el cociente de / = nos acerque al valor esperado de
Area.
2 Pea Snchez de Rivera, Daniel (2001). Deduccin de
distribuciones: el mtodo de Monte Carlo, en
Fundamentos de Estadstica. Madrid: Alianza Editorial. ISBN
84-206-8696-4.
-
Ilustracin 1. Conjunto A y Sub Conjunto B, con puntos al
azar
A continuacin Enumeramos 4 Problemas de los cuales resolveremos
utilizando el Mtodo Monte Carlo
con la herramienta Scilab.
1. Usando el Mtodo de Monte Carlo aproximar el rea que hay por
debajo de la Recta = 1, dentro del intervalo [0,1] y tirando 1000
puntos al azar. Adicionalmente Graficar la sucesin de
cocientes.
2. Usando el Mtodo de Monte Carlo aproximar el rea que hay
dentro del crculo 0.5 0.5 = 0.25, tirando 1000 puntos al azar.
Adicionalmente Graficar la sucesin de cocientes.
3. Usando el Mtodo de Monte Carlos aproximar el rea que hay
debajo de la curva = 2, dentro del intervalo [0,1] y tirando 1000
puntos al azar. Adicionalmente Graficar la sucesin de
cocientes.
4. Comprobar el mtodo Monte Carlo calculando el rea de un
circulo de 3m de dimetro, la cual
ya se conoce de antemano ( = = 9.4"). Proceder segn el ejemplo
anterior; es decir, encerrando en un rectngulo de dimensiones
conocidas (por ejemplo 12x12) y ploteando pares
de nmeros aleatorios.3
Adicionalmente y como parte de lo visto en clases de Anlisis
Numrico, se calculara el Error Absoluto y
el Error Relativo.
3 Tcnicas de Simulacin para Ingenieros Informticos, Dcima
Edicin, Carlos Ernesto Garca. Pgina 50.
-
Implementacin de la Solucin utilizando Scilab
Como Scilab es un Software de cdigo abierto para el Clculo
Numrico, y las facilidades que ofrece para
este tipo de Problemas procedemos a explicar la resolucin del
problema, para un mayor detalle se
incluye en los anexos la descripcin y uso de cada uno de los
comando empleados en los ejemplos.
El Ejercicio:
Para el Ejercicio 1, realizaremos un FOR desde 1 hasta 1000, por
el nmero de ploteos al azar,
obteniendo valores del primer cuadrante del plano cartesiano.
Los puntos que caigan debajo de la Recta
lo llamaremos AcumuladoB y estarn en Rojo, mientras que todos
los dems en Azul.
Al visualizar la Ilustracin 3. Cdigo para Calculo del rea debajo
de una Lnea Recta o Triangulo
Rectngulo de la Pagina 7, ampliaremos cada una de las lneas, que
posiblemente podran dar confusin
para la implementacin de la solucin (la columna de Numeracin a
la Izquierda han sido agregadas).
Ntese que se ha definido una Funcin de Acuerdo a la lnea de
Cdigo 1, y de acuerdo a la herramienta
no se requiere Dimensin o declaracin de las variables locales,
la funcin no recibe parmetros, pero
devuelve result como el valor de aproximacin de rea.
La lnea 17 del Cdigo, nos permite definir una Matriz de 1 fila x
2 columnas de valores aleatorio de
distribucin uniforme, entre [0,1] como se muestra en la
Ilustracin 2. Salida del Comando rand en
Scilab, los valores corresponden a la respuesta (ans abreviacin
de answer).
Ilustracin 2. Salida del Comando rand en Scilab
La lnea 18 del cdigo, corresponde a la evaluacin del Dominio o
Rango de la Ecuacin (funcin),
aplicados a cada punto.
= 1 = 1
: $% 1&'('(') 1&*''('
-
A continuacin el Cdigo Empleado en Scilab.
Ilustracin 3. Cdigo para Calculo del rea debajo de una Lnea
Recta o Triangulo Rectngulo
La Lnea de 24 del cdigo corresponde al Valor del rea calculada
en cada iteracin del lazo, siendo
almacenada en una Matriz para luego ser graficada en la lnea de
cdigo 27 y 28, dndonos
grficamente la evolucin del valor aproximado de rea a medida que
se obtienen los puntos.
-
Ntese que el Conjunto efectivo de lneas de cdigo, no exceden de
10, para resolver el problema de
Clculo del rea utilizando Monte Carlo.
Ejecucin del Programa
A continuacin las Pantallas de Ejecucin de la Funcin, desde la
Consola de Scilab, por practicidad solo
se muestra lo correspondiente a una sola Ejecucin, tampoco se le
ha agregado una interfaz grfica de
ejecucin.
-
Capturas de Pantalla de la Evolucin del Ploteo de Puntos a
medida que estos son suministrados.
Ilustracin 4. Ploteo de Puntos Inicial
Ilustracin 5. Ploteo de Puntos finalizado
Ilustracin 6. Grafica de plot([1:N], a)
-
La grafica plot([1:N],a) muestra una clara tendencia en el Valor
del rea a medida que se grafican ms
puntos.
Calculo de Error Absoluto y Relativo
Despus de Realizar cambios en el cdigo para no mostrar los
grficos y evitar tiempos de clculos
innecesarios, Montecarliamos con 1000 Ejecuciones, obteniendo un
valor aproximado de
rea=0.499729.
Error Absoluto
Recordando que el rea de un tringulo rectngulo es = 12 2+ = 0.5
,-' = |/'0' /'&"|,-' = |0.5 0.499729| = 0.000271
Error Relativo
,0'2 = |/'0' /'&"||/'0'| ,0'2 = |0.5 0.499729||0.5| =
0.000542
-
Resolviendo los Otros problemas de rea
Para resolver los Restantes ejercicios propuestos, Aplicamos un
Razonamiento Similar, a continuacin
los anlisis respectivos:
Ejercicio 2 Ejercicio 3 Ejercicio 4
Ecuacin 0.5 0.5 = 0.25 = 2 = = 9.4" (" = 3"4' = 12"12"
Consideracin N/A
Como la Grafica en el intervalo de [0,1] da valores de
negativos, la re-escribimos para poder graficarla en el Cuadrante I
del plano cartesiano, y hacemos los ajustes de clculos
respectivos.
= 20 = 2
Recordando: - = = 56789:; Al obtener el rea Hay que volver hacer
la conversin con regla de 3.
Condicin a
Evaluar
0.5 0.5 $ ?@, % 0.25BC4, ) 0.25
2 D ?@, % 0BC4, ) 0
2.5 2.5 E ?@, % .> BC4, ) .>
Valor Real = = 0.25 = 0.785398 = 1 GH 2 I= G
= 0.25 La ecuacin = = 9.4" tiene error tipogrfico, porque con un
dimetro = 3, el valor real debe ser de: = 3/2 = 7.0685"
Valor Aproximado
= 0.785197 en5.226segundos = 0.272289 en4.929segundos =
7.0632"
en5.429segundos Cantidad de Puntos
1000 pares ordenados (x,y) 1000 pares ordenados (x,y) 1000 pares
ordenados (x,y)
Cantidad de Experimentos
1000 promediados 1000 promediados 1000 promediados
Error Absoluto
0.000201 0.022289 0.0053
Error Relativo 0.0002559 0.089156 0.0007498
-
Conclusiones
Entre Mayor el nmero de iteraciones el Error Absoluto y Relativo
tienden a Cero
Es un mtodo de aproximacin confiable, utilizndolo con cantidad
de iteraciones bastante
grande.
Gracias a la utilizacin de la Herramienta Scilab el tiempo de
programacin para Anlisis
Numrico es bastante corto y reduce el nmero de lneas de cdigo a
comparacin de un
lenguaje de programacin de usos generales.
-
Bibliografa
Scilab y Monte Carlo (herramientas Scilab)
http://difusion.df.uba.ar/ConectarIgualdad/ElcicloFORenScilab.pdf
Mtodo Monte Carlo
http://es.wikipedia.org/wiki/M%C3%A9todo_de_Montecarlo
Figuras Geomtricas, graficas, clculo de reas
http://es.wikipedia.org/wiki/Circunferencia
http://mimosa.pntic.mec.es/clobo/geoweb/area7.htm
http://wolframalpha.com
Scilab
http://www.scilab.org