Entrada destacada

Distancia media de dos puntos en un cuadrado unitario

martes, 7 de noviembre de 2017

Aproximación a la Constante Pi por el Método de Montecarlo


El Método de Montecarlo es un método numérico de orden probabilistico (no determinista) creado por el matemático Stanilaw Ulam y mejorado conjuntamente con John von Neumann en 1944. Su nombre se debe a las ruletas de los casinos de Montecarlo como generadoras de números aleatorios.

El método consiste en realizar experimentos con números generados de forma aleatoria, contando las posibilidades con alguna característica sobre el total de los experimentos.

Se va a realizar una aproximación al número Pi determinando el área de un cuarto de circunferencia de radio uno, sabemos que el área de este cuarto de circunferencia en Pi/4 y está contenida dentro de un cuadrado de área una unidad. Se van a generar puntos al azar dentro del cuadrado y contamos los que están dentro del cuarto de circunferencia, la relación entre estos puntos (dentro del cuarto de circunferencia) con el total de puntos generados nos da el porcentaje del área del cuarto de circunferencia con respecto al área del cuadrado que es una unidad.

En rojo están los puntos dentro del cuarto de circunferencia y en verde los que no lo están, este experimento lo vamos a realizar con 10000 puntos

ran := RandomReal[]
n = 0;
puntos = 10000;
Show[Plot[Sqrt[1 - x^2], {x, 0, 1}], 
 Graphics[Table[{If[a = ran; b = ran; a^2 + b^2 <= 1, n++; Red, 
     Green], Point[{a, b}]}, {puntos}], Axes -> True], 
 AspectRatio -> 1]
n/puntos



7839/10000


De los 10000 puntos 7839 quedaron dentro del cuarto de circunferencia, luego el área del cuarto de circunferencia es 78.39% aproximadamente el área del cuadrado de una unidad, así el área del cuarto de circunferencia es 0.7839 unidades cuadradas. Como sabemos que el área exacta del cuarto de circunferencia es Pi/4, tenemos que Pi aproximadamente es:

N[7839/10000]*4
3.1356

El error de la aproximación va decreciendo 1/√N donde N es el número de puntos que se toman.

Realicemos ahora el conteo con un millón de puntos sin necesidad de realizar el gráfico.

ran := RandomReal[]
n = 0;
veces = 1000000;
Do[If[ran^2 + ran^2 <= 1, n++], {veces}]
N[n/veces]*4

3.14157

Para aprender más sobre Mathematica ingrese aquí sitio de aprendizaje de Wolfram o en mi website ustamathematica.wixsite.com/basicas


No hay comentarios.:

Publicar un comentario