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
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 14 autres exercices corrigés dans ce chapitre
Sans compte : le cours et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.