CommencerCommencer gratuitement

Calculer la valeur de pi

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

Imaginez un carré de côté \(2\) dont l’origine \((0, 0)\) est le centre, et dont les quatre coins 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, ajusté parfaitement à l’intérieur de ce carré. L’aire de ce cercle est \(\pi \times \text{rayon}^2 = \pi\).

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

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

Cet exercice fait partie du cours

Simulation statistique en Python

Afficher le cours

Instructions

  • Consultez la vraie valeur de \(\pi\) avec np.pi dans la console. Initialisez sims à 10000 et circle_points à 0.
  • Dans la boucle for, générez un point (coordonnées x et y) avec 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 qui se trouvent dans le cercle.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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