Adloun

Combien de points pour trois décimales de pi ?

Exercice de TD · niveau 3 (difficile) · sciences numériques et technologie (seconde), chapitre 7 — Projets et mini-jeux · Estimation de pi par Monte-Carlo

Énoncé

On estime par la méthode de Monte-Carlo du cours.

  1. Pour valant , et , lancer cinq estimations et relever l'écart entre la plus grande et la plus petite.
  2. Comparer cet écart à .
  3. Combien de points faudrait-il, à ce rythme, pour obtenir trois décimales justes à coup sûr ? Conclure.

Corrigé

1. et 2.

import random

def estime_pi(N):
    dedans = 0
    for i in range(N):
        x, y = random.random(), random.random()
        if x*x + y*y <= 1:
            dedans = dedans + 1
    return 4 * dedans / N

for N in [100, 10000, 1000000]:
    essais = [estime_pi(N) for k in range(5)]
    print(N, round(max(essais) - min(essais), 4))
étendue des 5 essais
0,320,10
0,040,01
0,0040,001

L'étendue est de l'ordre de quelques : elle décroît comme la racine carrée, pas comme .

3. Trois décimales justes demandent une erreur inférieure à , donc de l'ordre de — et encore, sans garantie : la méthode est probabiliste, elle ne promet jamais un résultat à coup sûr.

Conclusion, et c'est le cœur de l'exercice : c'est une très mauvaise façon de calculer . Une formule comme celle de Leibniz, ou mieux les algorithmes classiques, donnent des milliers de décimales en un instant. Ce qui fait l'intérêt de Monte-Carlo est ailleurs : il s'applique à des domaines dont on ne sait pas calculer l'aire, et son coût ne dépend pas du nombre de dimensions — là où les méthodes exactes deviennent impraticables.

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.