Algorithme de Metropolis
Monte Carlo — échantillonnage par chaîne de Markov
Enonce
Implémenter l'algorithme de Metropolis générique :
- energie(x) : fonction qui retourne l'énergie de l'état x.
- voisin(x) : fonction qui propose un nouvel état proche.
- x0 : état initial. T : température. n_iter : nombre d'itérations.
Retourner la liste des états visités. Application test : trouver le minimum de $E(x)=x^2-4\cos(3x)$.
Signature attendue
def metropolis(energie, voisin, x0, T: float, n_iter: int) -> list:
📖 Rappel de cours
L'algorithme de Metropolis-Hastings échantillonne une distribution $\pi(x)\propto e^{-E(x)/T}$ sans connaître la constante de normalisation. Application : modèle d'Ising, simulations physiques, optimisation par recuit simulé.
Itération :
- Proposer $x' = \text{voisin}(x_n)$.
- Calculer $\Delta E = E(x') - E(x_n)$.
- Si $\Delta E \leq 0$ : accepter $x_{n+1} = x'$.
- Sinon : accepter avec probabilité $e^{-\Delta E/T}$, rejeter sinon.
À basse température ($T\to 0$), seuls les états d'énergie minimale sont visités (recuit simulé). À haute température, on explore largement.
← Exercices d'analyse numérique en Python — dichotomie, Newton, intégration
Exercices du meme theme
La correction commentee, les indices progressifs, l'execution du code dans le navigateur et la verification par l'IA sont reserves aux abonnes.