Leçon 12
La méthode de Monte-Carlo
Le cours écrit
12.1 Le principe
Soit continue sur , avec . Sa courbe reste dans un carré d'aire . On choisit un point au hasard dans ce carré, en tirant et au hasard entre et . La probabilité que tombe sous la courbe est le rapport des aires :
En répétant l'expérience un grand nombre de fois, la fréquence des points sous la courbe se rapproche de cette probabilité.
12.2 Le programme
from random import random
from math import exp
def f(x):
return exp(-x ** 2)
def monte_carlo(f, N):
sous = 0
for i in range(N):
x = random()
y = random()
if y <= f(x):
sous = sous + 1
return sous / N
La fonction random() renvoie un nombre au hasard entre et . Le programme renvoie la fréquence des points sous la courbe.
12.3 Une méthode qui fluctue
Voici deux exécutions pour . Tes résultats seront différents : c'est le hasard.
| Première exécution | Deuxième exécution | |
|---|---|---|
La leçon 11 a donné . On observe que, pour gagner une décimale, il faut environ fois plus de points. C'est lent, et le résultat n'est jamais garanti. L'explication de cette précision viendra au chapitre 16, avec la loi des grands nombres. L'intérêt de la méthode est ailleurs : il suffit de savoir dire si un point est dans la zone ou non, même pour une aire de forme compliquée.
12.4 Dans un rectangle quelconque
Si sur , on enferme la courbe dans un rectangle : on tire au hasard dans et au hasard dans . La fréquence approche l'intégrale divisée par l'aire du rectangle :
Exemple 46. Pour sur , on prend . Le rectangle a pour aire , et . La fréquence est donc proche de .
Exercices 23 et 24
- Exercice 23 : lire une simulation
- Exercice 24 : Monte-Carlo en Python
Corrigés
Cherche d'abord les exercices sur ta feuille, puis compare avec le corrigé détaillé.