Aller au contenu

Leçon 12

La méthode de Monte-Carlo

Vidéo 12 : La méthode de Monte-Carlo · 3 min 23 s · sous-titres en français

Le cours écrit

12.1 Le principe

Soit ff continue sur [0 ;1][0\,;1], avec 0≤f≤10 \leq f \leq 1. Sa courbe reste dans un carré d'aire 11. On choisit un point M(x ;y)M(x\,;y) au hasard dans ce carré, en tirant xx et yy au hasard entre 00 et 11. La probabilité que MM tombe sous la courbe est le rapport des aires : P(y≤f(x))=aire sous la courbe1=∫01f(x) dx.P\big(y \leq f(x)\big) = \dfrac{\text{aire sous la courbe}}{1} = \int_0^1 f(x)\,\mathrm{d}x.

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 00 et 11. Le programme renvoie la fréquence des points sous la courbe.

12.3 Une méthode qui fluctue

Voici deux exécutions pour f(x)=e−x2f(x) = \mathrm{e}^{-x^2}. Tes résultats seront différents : c'est le hasard.

NN Première exécution Deuxième exécution
100100 0,780{,}78 0,720{,}72
1 0001\,000 0,7430{,}743 0,7380{,}738
10 00010\,000 0,7470{,}747 0,74530{,}7453
100 000100\,000 0,747040{,}74704 0,747390{,}74739

La leçon 11 a donné I≈0,7468I \approx 0{,}7468. On observe que, pour gagner une décimale, il faut environ 100100 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 0≤f≤M0 \leq f \leq M sur [a ;b][a\,;b], on enferme la courbe dans un rectangle : on tire xx au hasard dans [a ;b][a\,;b] et yy au hasard dans [0 ;M][0\,;M]. La fréquence approche l'intégrale divisée par l'aire du rectangle : ∫abf(x) dx≈freˊquence×(b−a) M.\int_a^b f(x)\,\mathrm{d}x \approx \text{fréquence} \times (b - a)\,M.

Exemple 46. Pour f(x)=x2f(x) = x^2 sur [0 ;2][0\,;2], on prend M=4M = 4. Le rectangle a pour aire 2×4=82 \times 4 = 8, et ∫02x2 dx=83\displaystyle\int_0^2 x^2\,\mathrm{d}x = \dfrac83. La fréquence est donc proche de 8/38=13\dfrac{8/3}{8} = \dfrac13.

Lire le cours complet du chapitre

Exercices 23 et 24

  • Exercice 23 : lire une simulation
  • Exercice 24 : Monte-Carlo en Python

Exercices du chapitre (PDF, 179 Ko)

Corrigés

Cherche d'abord les exercices sur ta feuille, puis compare avec le corrigé détaillé.

Corrigés du chapitre (PDF, 184 Ko)

Tu es hors connexion. Les chapitres téléchargés restent disponibles dans Hors connexion.