Adloun

mathématiques complémentaires (terminale) · Chapitre 7 · Exercice de TD

Estimer une aire par tirage au sort

Intégration · niveau 3 (difficile)

Énoncé

Estimer une aire par tirage au sort.

La méthode de Monte-Carlo consiste à tirer des points au hasard dans un rectangle contenant le domaine, puis à compter la proportion de ceux qui tombent dedans. C'est ainsi que les logiciels d'analyse d'images mesurent la surface d'une feuille ou d'une tache sur une photographie.

  • Expliquer pourquoi la proportion de points « sous la courbe » approche le rapport de l'aire cherchée à l'aire du rectangle.
  • Tester la méthode sur , dont on sait qu'elle vaut (aire d'un quart de disque de rayon ).
  • L'appliquer à , dont aucune primitive ne s'exprime avec les fonctions usuelles.

Corrigé

  • Le principe. Un point tiré au hasard uniformément dans le rectangle a autant de chances de tomber dans n'importe quelle partie de ce rectangle : la proportion de tirages qui tombent dans une région donnée approche donc le rapport de l'aire de cette région à l'aire totale . En multipliant la proportion observée par , on obtient une estimation de l'aire cherchée.
  • et 3. Programme.

from math import exp, sqrt
from random import random, seed

def monte_carlo(f, a, b, hmax, n):
    dedans = 0
    for _ in range(n):
        x = a + (b - a) * random()
        y = hmax * random()
        if y <= f(x):
            dedans = dedans + 1
    return (b - a) * hmax * dedans / n

demi_cercle = lambda x: sqrt(1 - x * x)
seed(7)
print("quart de disque, n = 10^3 :", round(monte_carlo(demi_cercle, 0, 1, 1, 1000), 5))
seed(7)
print("quart de disque, n = 10^5 :", round(monte_carlo(demi_cercle, 0, 1, 1, 100000), 5))
print("pi / 4                    :", round(3.141592653589793 / 4, 5))

cloche = lambda x: exp(-x * x)
seed(7)
print("cloche, n = 10^4          :", round(monte_carlo(cloche, 0, 1, 1, 10000), 5))
seed(7)
print("cloche, n = 10^6          :", round(monte_carlo(cloche, 0, 1, 1, 1000000), 5))

```text

quart de disque, n = 10^3 : 0.788 quart de disque, n = 10^5 : 0.78556 pi / 4 : 0.7854 cloche, n = 10^4 : 0.7499 cloche, n = 10^6 : 0.7468 ``` Le test réussit : contre . On accorde donc du crédit à l'estimation — que les trapèzes avec confirment : .

Deux enseignements. D'abord, on valide toujours une méthode numérique sur un cas dont on connaît la réponse avant de la lâcher sur un cas inconnu. Ensuite, Monte-Carlo est lent : multiplier par ne gagne qu'un facteur sur la précision. Sa vertu n'est pas la vitesse, c'est de fonctionner là où le découpage régulier est impossible.

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →