CommencezCommencez gratuitement

Calcul de la valeur de pi

Passons maintenant à un exemple classique : estimer la valeur de \(\pi\).

Imaginez un carré de côté \(2\) dont l'origine \((0, 0)\) est au centre et dont les quatre sommets ont pour coordonnées \((1, 1), (1, -1), (-1, 1), (-1, -1)\). L'aire de ce carré est \(2\times 2 = 4\). Imaginez ensuite un cercle de rayon \(1\), centré à l'origine, qui s'inscrit parfaitement dans ce carré. L'aire du cercle est alors \(\pi \times \text{rayon}^2 = \pi\).

Pour estimer \(\pi\), on échantillonne au hasard plusieurs points dans ce carré et on calcule la fraction de points à l'intérieur du cercle (\(x^2 + y^2 <= 1\)). L'aire du cercle est alors \(4\) fois cette fraction, ce qui nous donne notre estimation de \(\pi\).

Après cet exercice, vous saurez comment utiliser la simulation pour effectuer des calculs.

Cette activité fait partie du cours

Simulation statistique en Python

Voir le cours

Instructions de l’exercice

  • Consultez la valeur réelle de \(\pi\) dans la console avec np.pi. Initialisez sims à 10000 et circle_points à 0.
  • Dans la boucle for, générez un point (coordonnées x et y) à l'aide de np.random.uniform() entre -1 et 1, avec size=2.
  • Vérifiez si le point se trouve dans le cercle unité avec l'équation \(x^2 + y^2 <= 1\), affectez le résultat à within_circle, puis incrémentez circle_points en conséquence.
  • Affichez l'estimation de $\pipi_sim` comme 4 fois la fraction de points situés dans le cercle.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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))
Modifier et exécuter le code