Calcolare il valore di pi greco
Ora affrontiamo un esempio classico: stimare il valore di \(\pi\).
Immagina un quadrato di lato \(2\) con l'origine \((0, 0)\) al centro e i quattro vertici con coordinate \((1, 1), (1, -1), (-1, 1), (-1, -1)\). L'area di questo quadrato è \(2\times 2 = 4\). Ora immagina un cerchio di raggio \(1\) con centro nell'origine che si inserisce perfettamente dentro il quadrato. L'area del cerchio sarà \(\pi \times \text{raggio}^2 = \pi\).
Per stimare \(\pi\), campioniamo casualmente più punti all'interno di questo quadrato e calcoliamo la frazione di punti interni al cerchio (\(x^2 + y^2 <= 1\)). L'area del cerchio è quindi \(4\) volte questa frazione, che ci fornisce la nostra stima di \(\pi\).
Dopo questo esercizio, avrai capito come usare la simulazione per la computazione.
Questo esercizio fa parte del corso
Simulazione statistica in Python
Istruzioni dell'esercizio
- Esamina il valore reale di \(\pi\) usando
np.pinella console. Inizializzasimsa 10000 ecircle_pointsa 0. - All'interno del ciclo
for, genera un punto (coordinate x e y) usandonp.random.uniform()tra -1 e 1, consize=2. - Verifica se il punto cade nel cerchio unitario con l'equazione \(x^2 + y^2 <= 1\), assegna a
within_circlee incrementacircle_pointsdi conseguenza. - Stampa la stima di $\pi
pi_sim` come 4 volte la frazione di punti che cadono all'interno del cerchio.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Initialize sims and circle_points
sims, circle_points = ____, ____
for i in range(sims):
# Generate the two coordinates of a point
point = ____
# if the point lies within the unit circle, increment counter
within_circle = point[0]**2 + point[1]**2 <= 1
if ____ == True:
circle_points +=1
# Estimate pi as 4 times the avg number of points in the circle.
pi_sim = ____
print("Simulated value of pi = {}".format(pi_sim))