Adloun

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.