🎛️ Estimer π en jetant des fléchettes au hasard
On lance N points aléatoires dans un carré [-1,1]×[-1,1]. La fraction qui tombe dans le disque unité × 4 = π. Plus on lance, plus l'estimation se précise.
Points lancés
0
π estimé
—
Erreur vs π réel
—
Lance des points et regarde la précision augmenter. L'erreur diminue comme 1/√N — c'est la « malédiction de Monte-Carlo ».
♠️ 1946 : un solitaire et un mathématicien malade
Stanislaw Ulam (1909-1984), mathématicien polonais réfugié aux États-Unis, travaille sur le projet Manhattan. En 1946, il est cloué au lit par une encéphalite. Pour passer le temps, il joue au solitaire de Canfield et se demande : quelle est la probabilité de gagner ?
Le calcul combinatoire exact est inhumainement complexe. Ulam a alors une idée révolutionnaire : simuler 100 parties au hasard et compter celles qui se gagnent. La proportion donne une estimation de la probabilité.
Quand Ulam guérit, il en parle à son collègue John von Neumann. Ensemble, ils réalisent qu'on peut utiliser cette idée pour résoudre des problèmes de physique nucléaire au projet Manhattan : la diffusion des neutrons dans l'uranium. Trop compliqué analytiquement, mais simulable.
L'oncle d'Ulam adorait jouer au casino de Monte-Carlo. Nicholas Metropolis propose le nom de code : « Monte-Carlo method ». L'algorithme tourne sur l'ENIAC en 1948 — c'est l'un des tout premiers programmes de l'informatique scientifique.
🎯 Le principe : utiliser le hasard pour calculer du déterministe
Soit on veut calculer une quantité Q qui s'exprime comme une espérance Q = E[f(X)]. La méthode de Monte-Carlo :
- Tirer N échantillons indépendants X₁, ..., X_N selon la loi de X.
- Calculer la moyenne : Q̂ = (1/N) · Σ f(Xᵢ).
- Par la loi des grands nombres, Q̂ → Q quand N → ∞.
- Par le théorème central limite, l'erreur décroît en 1/√N.
Erreur Monte-Carlo : ≈ σ / √N
Pour 10× plus de précision, il faut 100× plus de simulations.
Lent. Mais indépendant de la dimension du problème.
🔢 Exemple : estimer π avec des fléchettes
Le disque unité a aire π. Le carré [-1, 1]² a aire 4. Si on lance des points au hasard dans le carré, la fraction qui tombe dans le disque tend vers π/4. Donc :
π ≈ 4 · (nombre de points dans le disque) / N
C'est exactement ce que fait la viz du haut. Avec 100 points, on obtient typiquement π à ±0.2 près. Avec 10 000, ±0.02. Avec 1 million, ±0.002.
☢️ Première grande application : la bombe nucléaire
Pendant le projet Manhattan (1942-1945), il fallait simuler la diffusion des neutrons dans une masse d'uranium ou de plutonium pour calculer la masse critique. Les équations exactes sont des EDP en 6 dimensions (position + vitesse) — incalculables.
Avec Monte-Carlo : on simule la trajectoire de neutrons individuels en tirant au hasard les angles de diffusion, les distances de libre parcours, les probabilités d'absorption. Statistique sur des millions de neutrons → bilan de criticité.
C'est la méthode encore utilisée aujourd'hui dans les codes de simulation nucléaire (MCNP, Geant4, FLUKA), pour le design des réacteurs et la radioprotection médicale.
📈 Applications massives modernes
- Finance quantitative : valorisation d'options exotiques, gestion des risques (VaR), couverture (delta-hedging). Banques comme Goldman Sachs ou JPMorgan exécutent des milliards de simulations Monte-Carlo par jour.
- Climat et météo : ECMWF, Météo-France lancent 50 simulations stochastiques en parallèle pour estimer l'incertitude de la prévision. Méthode d'ensemble.
- Particules en physique : LHC (CERN) simule chaque collision proton-proton par Monte-Carlo (PYTHIA, GEANT4) pour comparer théorie et expérience. Sans ça, pas de découverte du Higgs.
- Imagerie médicale : reconstruction d'image, planification de radiothérapie, dosimétrie nucléaire.
- Rendu 3D (path tracing) : films Pixar, jeux vidéo nouvelle génération (UE5), NVIDIA RTX. Chaque pixel est calculé par lancer de rayons aléatoires — c'est du Monte-Carlo.
- Statistique bayésienne : algorithme de Metropolis-Hastings (1953), échantillonnage MCMC (Markov Chain Monte-Carlo). Base de Stan, PyMC, JAGS.
- Intelligence artificielle : AlphaGo (DeepMind 2016) utilise Monte Carlo Tree Search (MCTS) pour évaluer les coups au go. Sans MCTS, pas de victoire 4-1 contre Lee Sedol.
- Biologie computationnelle : repliement de protéines, simulation moléculaire, cinétique biochimique.
- Assurance : modélisation des sinistres, calcul des primes, solvabilité.
- Astrophysique : formation des étoiles, dynamique galactique, modèles cosmologiques.
⚡ Variantes avancées
- Importance sampling : tirer dans une distribution proche du vrai problème pour réduire la variance.
- MCMC (Markov Chain Monte Carlo) : Metropolis-Hastings 1953, Gibbs sampler. Échantillonner des distributions inconnues à constante près.
- HMC (Hamiltonian MC) : utilise la mécanique hamiltonienne pour explorer efficacement (cœur de Stan, l'outil bayésien #1).
- Sequential Monte-Carlo : suivi de particules dans les filtres bayésiens (drone, SLAM robotique).
- Quasi-Monte-Carlo : suites à faible discrépance (Sobol, Halton) au lieu d'aléatoire pur. Convergence en 1/N au lieu de 1/√N. Pour la finance.
- Multilevel Monte-Carlo (Giles 2008) : combine résolutions fines et grossières pour accélérer. Standard en finance et UQ.
📐 Le lien avec ton programme
- Probabilités : tout repose sur les variables aléatoires et leurs lois. Programme probabilités 2BAC SM.
- Loi des grands nombres : justifie la convergence Q̂ → Q. Cours 2BAC SM (énoncé intuitif), démontrée en prépa.
- Théorème central limite : justifie le 1/√N et les intervalles de confiance. Énoncé 2BAC SM, démonstration en master.
- Loi uniforme : la base de toute simulation. Programme 2BAC SM.
- Loi normale : utilisée pour modéliser le bruit, calculer les intervalles de confiance. Programme 2BAC SM.
- Espérance et variance : E[Q̂] = Q (estimateur non biaisé), Var(Q̂) = σ²/N. Programme 2BAC SM.
- Génération de nombres pseudo-aléatoires : Mersenne Twister, PCG, xorshift. Concepts CS, mais accessibles.