M2 MSA
2013/2014
Du mouvement brownien à la modélisation financière
TP no1
Travaux Pratiques : Marches aléatoires
Le but de ce TP sur ordinateur est d’étudier et de comparer quelques marches aléatoires.
1 Introduction
Une particule se déplace sur un axe en partant de l’origine. A chaque itération n, elle fait un pas dont
l’amplitude Xn(positive ou négative) est indépendante de sa position et de son histoire (chaîne de Markov). Sa
position Snà l’itération nest donc donnée par
Sn=Sn−1+Xn
avec S0= 0. Dans la suite, on s’intéressera à des marches aléatoires de Npas et à la distribution P(SN)de
la position finale SNde la particule, dans les cas où les pas Xnsont distribués sur une loi f(Xn)uniforme,
binomiale, gaussienne et de Cauchy.
En Fortran et en C, la fonction rand() génère des nombres pseudo-aléatoires uniformément distribués
entre 0 et 1. Le générateur est initialisé par la fonction srand(s), où sest un entier appelé la “graine”. Changer s
permet donc de changer la séquence des nombres pseudo-aléatoires en appelant “call srand(s)” avec une graine
sdifférente pour chaque marche aléatoire.
⊲1-1 Proposer un moyen de changer la graine pour chaque marche aléatoire simulée.
2 Loi binomiale
Les pas de la marche aléatoire discrète valent Xn= 1 avec la probabilité pou Xn=−1avec la probabilité
1−p.
⊲2-1 Comment générer la variable aléatoire Xnà partir de la fonction rand() ?
⊲2-2 Générer quelques marches aléatoires de N= 10000 pas pour p= 0.4, 0.49 et 0.5. Tracer ces marches
aléatoires (Snen fonction de n). Quelle est la trajectoire moyenne < Sn>pour chaque valeur de p?
⊲2-3 Observer l’aspect d’une marche aléatoire Msymétrique (p= 0.5) de N= 10000 pas. Soit M′la marche
aléatoire obtenue à partir des 1000 premiers pas de M. Tracer sur un même graphe Met M′en multipliant la
taille des itérations (axe des abscisses) de cette dernière par 10. Par quel facteur faut-il multiplier la taille des
pas (axe des ordonnées) de M′pour que les deux marches aléatoires aient le même aspect ? Reprendre la même
procédure avec M′′ , la marche aléatoire obtenue à partir des 100 premiers pas de M.
⊲2-4 Pour p= 0.5, générer M= 10q(d’abord pour q= 1, puis q= 2, 3 et 4) marches aléatoires de N= 10000
pas et calculer < Sn>qet pV ar(Sn)qpour n≤N. Calculer la distribution (ie les histogrammes) P(SN)qde la
dernière position SN. Tracer sur un même graphe < Sn>qet pV ar(Sn)qd’une part et P(SN)qd’autre part.
Quelle est la fonction qui ajuste cette distribution dans la limite M≫1? Pourquoi ?
3 Loi uniforme
Les pas de la marche aléatoire sont distribués sur une loi uniforme f(Xn)centrée entre −0.5et 0.5.
⊲3-1 Comment générer la variable aléatoire Xnà partir de la fonction rand() ?
⊲3-2 Générer quelques marches aléatoires de N= 10000 pas. Vérifier que f(Xn)est bien la distribution
uniforme souhaitée. Tracer une marche aléatoire (Snen fonction de n) et la comparer à une marche aléatoire
binomiale symétrique. Quelle est la différence entre ces deux marches aléatoires ?
⊲3-3 Reprendre la question 2-4. Vers quelle fonction tend P(SN)quand M≫1? Pourquoi ?
1