IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Esamina il valore reale di \(\pi\) usando np.pi nella console. Inizializza sims a 10000 e circle_points a 0.
  • All'interno del ciclo for, genera un punto (coordinate x e y) usando np.random.uniform() tra -1 e 1, con size=2.
  • Verifica se il punto cade nel cerchio unitario con l'equazione \(x^2 + y^2 <= 1\), assegna a within_circle e incrementa circle_points di conseguenza.
  • Stampa la stima di $\pipi_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))
Modifica ed esegui il codice