TP de simulations de Monte-Carlo, 2019
Séances organisées et gérées par Denis Dumont <denis_dot_dumont_arobase_umons_dot_ac_dot_be>
Questions
1D Random Walk :
Montrer que la marche aléatoire conduit à des distributions de déplacements équivalente à ce qu'on observe pour la diffusion de composés chimiques.
Questions :
Générer et représenter une marche aléatoire 1D avec n pas pour 1 marcheur
Générer et représenter une marche aléatoire 1D avec n pas pour N marcheurs + tester différents n et N
Etudier la distribution de probabilité du dernier pas d'une marche aléatoire avec un petit nombre de pas (n=6 par exemple); comparer quantitativement avec la distribution théorique attendue
Etudier une marche aléatoire avec un grand nombre de pas (n=1000 par exemple); vérifier (via un fit) que l'on obtient bien une distribution normale
Comparer les statistiques des résultats avec le modèle de la diffusion
Questions supplémentaires:
6) Regarder <x> pour un grand nombre de marcheurs (que peut-on en dire ?)
7) Regarder <x^2> pour un grand nombre de marcheurs + fitter par une droite et discuter de la valeur de la pente (cfr. coefficient de diffusion)
8) Envisager d'étendre l'étude à 2 ou 3 dimensions
Code python : 1D_random_walk.py
Jeter de pièces :
Simulation de lancers de pièce
Questions :
Générer n lancers de pièceset en mesurer la moyenne (tester différents n)
Générer N moyennes de n lancers de pièce
Etudier la distribution de probabilité de la question 2 pour des grands N et n, fitter une loi normale et comparer avec la valeur théorique attendue de mu et sigma
Comparer les résultats obtenus pour différents n (en gardant N fixe), que peut-on en dire?
Questions supplémentaires
Code python : throw_coin_and_dice.py
Approximation du nombre pi - direct sampling :
Permet d'approcher pi par une méthode stochastique (Direct Sampling)
Questions :
Trouver une méthode stochastique pour approcher le nombre pi ⇒ Tirer n flechettes sur un carre avec de coté 2R et comptabiliser le nbre de flechettes à l'intérieur du cercle de rayon R inscrit au carré. Le rapport des deux surfaces donne pi/4.
Générer n lancers de flechettes sur la “cible” et approcher pi avec la méthode trouvée à la question (1)
Représenter graphiquement les lancers de flechettes sur la “cible”
Générer N approximations de pi en faisant n lancers + étudier la distribution de probabilité des N approximations (faire varier n et N)
Estimer l'écart quadratique moyen, sqrt(<(Nhits/N − pi/4)^2>) + représenter graphiquement. Cmt varie-t-il avec N ?
Code python : Pi_approximation_by_direct_sampling.py
Approximation du nombre pi - Markov chain :
Permet d'approcher pi par une méthode stochastique (Markov chain)
Questions :
Trouver une méthode stochastique utilisant une marche aléatoire pour approcher le nombre pi ⇒ Attention besoin de gérer la question du rejet (cad lorsque le prochain pas est en dehors de la “cible”), de la longueur du pas et du départ de la marche !!!
Approcher pi avec la méthode trouvée à la question (1) pour une marche avec un nbre de pas suffisamment grand de pas + représenter graphiquement la marche
Générer N approximations de pi en faisant n marches + étudier la distribution de probabilité des N approximations (faire varier n et N)
Estimer l'écart quadratique moyen sqrt(<(Nhits/N − pi/4)**2>) + représenter graphiquement. Cmt varie-t-il avec N ?
Etudier la dépendance de la condition initiale sur l'estimation de pi pour une marche suffisamment longue
Etudier la dépendance de la longueur du pas sur la qualité de l'approximation de pi
Questions supplémentaires
Code python : Pi_approximation_by_markov_chain.py
Pebble Game 3x3 :
Etudier Le cas d'un terrain quadrillé en 3×3 (cas plus simple que le problème précédent) et comprendre pourquoi, on empile des cailloux lorsque l'on rejette les pas qui sortent de la cible. De plus, cela permet d'introduire l'algorithm de Metropolis.
Questions :
Montrer théoriquement qu'empiler des cailloux permet d'uniformément parcourir le terrain de jeu
Verifier par simulation que cet empilement permet bien de parcourir uniformément le terrain de jeu
Montrer théoriquement que l'algorithme de Metropolis est en accord avec la detailled condition balance
Etudier un terrain ou les probabilités de presence sont inhomogenes a l'aide d'un algorithme de metropolis
Questions supplémentaires:
5) Montrer que si on impose des cond. périodiques à un terrain homogène, la probabilité de presence est uniforme sur l'entièreté du terrain sans utiliser de condition de rejet
6) Envisager l'étude sur un terrain autre que 3×3. Le code devra être adaptatif (cad ne pas devoir modifier l'entièreté du code) pour décrit un terrain NxM
Code python : Pebble3x3.py