Estimer une aire en tirant des points
Exercice d'entraînement · niveau 3 (difficile) · mathématiques (ECT 1re année), chapitre 13 — Informatique et algorithmique · Simulation aléatoire
Énoncé
On veut estimer en tirant au hasard des points du carré et en comptant ceux situés sous la courbe. Écrire le script, expliquer pourquoi la fréquence obtenue estime l'intégrale, et comparer à la valeur exacte.
Corrigé
Le principe. Un point tiré au hasard dans le carré unité tombe dans une région avec une probabilité égale à l'aire de cette région, le carré étant d'aire . Or la région située sous la courbe de et au-dessus de l'axe a pour aire . La fréquence des points vérifiant estime donc cette intégrale.
Le script.
import numpy.random as rd
n = 10000
compte = 0
for i in range(n):
x = rd.random()
y = rd.random()
if y <= x**2:
compte = compte + 1
print(compte/n) # 0.3327 par exemple
La valeur exacte. Une primitive de est , donc
La comparaison. La fréquence obtenue, environ , en est très proche ; elle varie de quelques millièmes d'une exécution à l'autre.
Le point délicat. Les deux appels à rd.random() doivent être séparés : écrire x = rd.random() puis y = x tirerait toujours des points de la diagonale et donnerait un résultat sans rapport. Chaque appel produit un nouveau nombre, indépendant du précédent — c'est ce qui fait des deux coordonnées un point réellement au hasard dans le carré.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.