Estimer par Monte-Carlo
Exercice · niveau 3 (difficile) · mathématiques appliquées (ECG 1re année), chapitre 11 — Informatique et algorithmique · Simulation et données
Énoncé
Écrire une fonction qui estime en tirant des points au hasard dans le carré et en comptant ceux qui tombent dans le quart de disque. Combien de tirages faut-il pour obtenir deux décimales stables ? Pourquoi cette méthode est-elle mauvaise pour calculer ?
Corrigé
import numpy.random as rd
def estime_pi(n):
dedans = 0
for _ in range(n):
x, y = rd.random(), rd.random()
if x * x + y * y <= 1:
dedans += 1
return 4 * dedans / n
Le principe. Le quart de disque a pour aire et le carré . La proportion de points tombés dedans estime donc , qu'on multiplie par .
Combien de tirages. L'estimateur a pour écart-type avec , soit environ . Pour espérer deux décimales, il faut cet écart-type sous , donc
Et encore : à on obtient typiquement ou — les décimales ne sont pas stables, elles fluctuent d'une exécution à l'autre.
Pourquoi c'est une mauvaise méthode pour . L'erreur décroît en : gagner une décimale demande de multiplier le nombre de tirages par cent. Pour dix décimales il faudrait points. La méthode des trapèzes du chapitre 8, avec son erreur en , fait mieux avec mille points ; et la série , ou mieux les formules de Machin, donnent des milliers de décimales en quelques secondes.
Alors pourquoi Monte-Carlo existe. Parce que son erreur en ne dépend pas de la dimension. En dimension , une grille de trapèzes est hors de portée ; Monte-Carlo, lui, marche exactement pareil. C'est là qu'il est irremplaçable — et , en dimension deux, est justement le cas où il est le plus mauvais.
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.