Adloun

mathématiques appliquées (ECG 1re année) · Chapitre 11 · Exercice

Estimer par Monte-Carlo

Informatique et algorithmique · Simulation et données · niveau 3 (difficile)

É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.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre