13
Universidad de El Salvador Facultad de Ingeniería y Arquitectura Técnicas de Simulación TDS 115 Trabajo Ex Aula Cálculo de Área de un Polígono Irregular por Método Monte Carlo Catedrático: Ingeniero y Master en Ciencias de Computación Carlos Ernesto García Alumno: Alexander Enrique Escobar Ortiz Carnet: EO97003 Abril de 2013

Calculo de Area de un Poligono Irregular por Metodo Monte Carlo

Embed Size (px)

DESCRIPTION

Calculo de Area de un Poligono Irregular por Metodo Monte Carlo

Citation preview

  • 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