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
Instructions
- Consultez la vraie valeur de \(\pi\) avec
np.pidans la console. Initialisezsimsà 10000 etcircle_pointsà 0. - Dans la boucle
for, générez un point (coordonnées x et y) avecnp.random.uniform()entre -1 et 1, avecsize=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émentezcircle_pointsen conséquence. - Affichez l’estimation de $\pi
pi_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))