s1Eva_IIT2004_T3 Estimar π por Montecarlo

Ejercicio: 1Eva_IIT2004_T3 Estimar π por Montecarlo

[ algoritmo ] [ diagrama flujo ]

Ingresar la cantidad de puntos n para ubicar en el plano de forma aleatoria dentro del rango del cuadrado que contiene al círculo. 

Usar una variable k como el contador para los puntos que caen dentro del círculo.

Al generar aleatoriamente cada punto (x,y), se puede calcular la distancia al centro usando Pitágoras.

d= \sqrt{x^2 +y^2}

Se repite el proceso para n puntos y al final se calcula el valor estimado de pi según la relación del enunciado.

\frac{k}{n} =\frac{\pi}{4}

Nota: no se usa como variable la palabra “pi” debido a que es nombre de variable reservada.

[ algoritmo ] [ diagrama flujo ]
..


Algoritmo en Python

# 1Eva_IIT2004_T3 Estimar Pi por Montecarlo
# Propuesta de solución. edelros@espol.edu.ec
# se usa todo el círculo
import random as rnd
import numpy as np

# INGRESO
n = int(input('¿Cuántos puntos?: '))
radio = 1

# PROCEDIMIENTO
punto = np.zeros(shape=(n,2),dtype=float)
k = 0
i = 0
while i<n:
    x = rnd.random()*(2*radio)-1
    y = rnd.random()*(2*radio)-1

    d = np.sqrt(x**2+y**2)
    if d<=radio:
        k = k + 1
    punto[i] = [x,y]
    i = i + 1

estimadopi = 4*k/n

# SALIDA
print(k,n)
print('estimador pi: ', estimadopi)
print(punto)

la estimación de π con números aleatorios que se ubican dentro del círculo de radio 1 es:

¿Cuántos puntos?: 1000
781 1000
estimador pi:  3.124
[[ 0.15581724  0.43992571]
 [-0.11114653 -0.86426905]
 [ 0.51257751 -0.1969925 ]
 ...
 [ 0.26965478 -0.01555604]
 [-0.89575602  0.56077385]
 [ 0.33467618 -0.59497405]]
>>> 

[ algoritmo ] [ diagrama flujo ]
..


Diagrama de Flujo

[ algoritmo ] [ diagrama flujo ]

ejercicios resueltos Matlab parc_iit2004_t3 pdf