Vous êtes sur la page 1sur 6

Simulation Stochastique

Introduction

La simulation de Monte Carlo a été appliquée à de nombreux domaines, et est définie


comme une technique d'exécution d'expériences d'échantillonnage sur les modèles de
systèmes stochastiques. Bien que la simulation soit une technique imprécise qui ne
fournit que des estimations statistiques plutôt que des résultats exacts et qui constitue
également un moyen lent et coûteux d'étudier les problèmes, c'est en effet un outil
puissant traitant de problèmes complexes sans techniques analytiques.

La base de la simulation stochastique est la génération de nombres aléatoires. En règle


générale, soit x une variable aléatoire avec une distribution de probabilité F(. ). Puisque
F(. ) est une fonction non décroissante, la fonction inverse F −1 (. ) est définie sur [0,1].
Supposons que u soit une variable uniformément distribuée sur l'intervalle [0,1].
Ensuite, nous avons

Pr{F −1 (u) ≤ x} = Pr{u ≤ F(x)} = F(x)

Ce qui prouve que la variable aléatoire X = F −1 (u) a la distribution de probabilité F(. ).


Afin d'obtenir une variable aléatoire X avec la distribution de probabilité F(. ), nous
pouvons produire une variable uniformément distribuée u de l'intervalle [0,1], et X est
assigné à être F −1 (u). Le processus ci-dessus est appelé la méthode de
transformation inverse. Mais pour les principales distributions connues, au lieu
d'utiliser la méthode de transformation inverse, nous avons des processus de génération
directe.

Génération d’un nombre aléatoire uniforme

La simulation stochastique est basée sur la génération d’un nombre aléatoire


uniformément distribué dans l’intervalle [0,1]. Ce processus est dérivé du cas général
d’une variable aléatoire définie dans l’intervalle [a, b] définie comme suit

Distribution uniforme : Une variable aléatoire 𝜉 a une distribution uniforme si sa


fonction de densité de probabilité est définie par
1
𝑓 (𝑥) = {𝑏 − 𝑎 , 𝑆𝑖 𝑎 ≤ 𝑥 ≤ 𝑏
0, 𝑆𝑖𝑛𝑜𝑛

Noté par 𝑈[𝑎, 𝑏], où a et b sont donnés des nombres réels avec 𝑎 < 𝑏. Ainsi, une
variable uniformément distribuée sur un intervalle [a, b] peut être produit comme suit :

▪ Etape 1 : 𝑢 = 𝑟𝑎𝑛𝑑() ;
▪ Etape 2 : 𝑢 ⟵ 𝑢/𝑅𝐴𝑁𝐷_𝑀𝐴𝑋;
▪ Etape 3 : Retourner a + u(b − a)
1er Cas : Variables Discrètes

Nous utilisons également la méthode de transformation inverse pour générer une


variable aléatoire discrète. Supposons que nous voulions générer la valeur d'une
variable aléatoire discrète ξ ayant une fonction de masse de probabilité

Pr{ξ = xj } = pj , j = 0,1,2, … , avec ∑ pj = 1

Pour ce faire, nous générons un nombre aléatoire u uniformément distribué sur (0,1) et
nous considérons que
x0 Si u < p0
x1 Si p0 ≤ u < p0 + p1
x2 Si p0 + p1 ≤ u < p1 + p2
ξ= … ……………
j−1 j

xj Si ∑ pi ≤ u < ∑ pi
{… … …i=1
… … .. i=1

Or, pour 0 < 𝑎 < 𝑏 < 1, on a Pr{𝑎 ≤ 𝑈 < 𝑏} = 𝑏 − 𝑎, nous avons


j−1 j j j−1

Pr{ξ = xj } = Pr {∑ pi ≤ u < ∑ pi } = ∑ pi − ∑ pi = pj
i=1 i=1 i=1 i=1

Donc ξ a la distribution désirée.


Exemple 1 : Si nous voulions simuler une variable aléatoire ξ tel que
p1 = 0.35; p2 = 0.25; p3 = 0.4, avec pj = Pr {ξ = j}

Alors :
▪ Générer u~U[0,1]
▪ Si u < 0.35, soit ξ = 1 et stop
▪ Si u < 0.60, soit ξ = 2 et stop
▪ Sinon soit ξ = 3 et stop
Le temps nécessaire pour générer une variable aléatoire discrète à l'aide de la méthode
ci-dessus est proportionnel au nombre d'intervalles que l'on doit rechercher. Pour cette
raison, il est parfois utile de considérer les valeurs possibles xj de ξ par ordre décroissant
de pj

Alors :
▪ Générer u~U[0,1]
▪ Si u < 0.40, soit ξ = 3 et stop
▪ Si u < 0.65, soit ξ = 2 et stop
▪ Sinon soit ξ = 1 et stop
Ensuite, voyons comment générer les deux variables aléatoires discrètes spéciales.
Binomiale et Poisson.
Distribution Binomiale :
Supposons que nous voulions générer la valeur d’une variable aléatoire binomiale
ξ~B(n, p), ξ tel que
𝑛!
Pr{𝜉 = 𝑖} = 𝑝𝑖 (1 − 𝑝)𝑛−𝑖 , 𝑖 = 0,1,2, … ..
(𝑛 − 𝑖)! × 𝑖!
Pour ce faire, nous utilisons la méthode de transformation inverse en utilisant une
identité récursive.
n−i p
Pr{ξ = i + 1} = Pr{ξ = i}
i+11−p
Avec i désignant la valeur actuellement à l’étude, Pr = Pr{ξ = i} la probabilité que ξ
est égal à i, et F = F(i) la probabilité que ξ est inférieur ou égal à i, l'algorithme peut
être exprimé comme suit
▪ Etape 1 : Générer u~U[0,1]
𝑝
▪ Etape 2 : 𝑐 = , 𝑖 = 0, 𝑃𝑟 = (1 − 𝑝)𝑛 , 𝐹 = 𝑃𝑟
1−𝑝
▪ Etape 3 : Si u < F, soit ξ = i et FinSi
( )
▪ Etape 4 : 𝑃𝑟 = [𝑐 𝑛 − 𝑖 ⁄𝑖 + 1] . 𝑃𝑟, 𝐹 = 𝐹 + 𝑃𝑟, 𝑖 = 𝑖 + 1
▪ Etape 5 : Aller à l’étape 3

Distribution Poisson : La variable aléatoire ξ est de poisson avec moyenne 𝜆 si


λi
pi = Pr{ξ = i} = e− λ , i = 0,1,2, … ..
i!
La clé pour utiliser le procédé de transformation inverse pour générer une telle variable
aléatoire est l’identité suivante
𝜆
Pr{ξ = i + 1} = Pr{ξ = i} , 𝑖 ≥ 0
𝑖+1
L’algorithme de simulation peut être exprimé comme suit
▪ Etape 1 : Générer u~U[0,1]
▪ Etape 2 𝑖 = 0, 𝑃𝑟 = e− λ , 𝐹 = 𝑃𝑟
▪ Etape 3 : Si u < F, soit ξ = i et FinSi
▪ Etape 4 : 𝑃𝑟 = [λ⁄𝑖 + 1]. 𝑃𝑟, 𝐹 = 𝐹 + 𝑃𝑟, 𝑖 = 𝑖 + 1
▪ Etape 5 : Aller à l’étape 3

2ème Cas : Variables Continues


Considérons une variable aléatoire continue ayant une fonction de distribution F. Une
méthode générale pour générer une telle variable aléatoire, appelée méthode de
transformation inverse, est basée sur le lemme suivant.
Lemme : Soit u une variable uniformément distribuée sur l'intervalle [0,1]. Pour toute
fonction de distribution continue F, la variable aléatoire ξ défini par

ξ = F −1 (u)

A la distribution F. F −1 (u) est définie comme étant la valeur de x telle que F(x) = u

Le lemme ci-dessus montre donc que nous pouvons générer une variable aléatoire ξ à
partir de la fonction de distribution continue F en générant un nombre aléatoire u puis
en fixant ξ = F −1 (u).

Exemple 2 : Supposons que nous voulions générer une variable aléatoire ξ ayant une
fonction de distribution

F(x) = x n , 0<x≤1

Soit x = F −1 (u), donc

u = F(x) = x n ⟺ x = u1/n
Par conséquent, nous pouvons générer une telle variable aléatoire ξ en générant un
nombre aléatoire u puis en paramétrant ξ = F −1 (u) = u1/n .

La méthode de transformation inverse offre une approche puissante pour générer des
variables aléatoires exponentielles, comme indiqué dans l'exemple suivant.

Exemple 3 : Si ξ est une variable aléatoire exponentielle de taux 1, alors sa fonction de


distribution est donnée par

F(x) = 1 − 𝑒 −𝑥

Soit x = F −1 (u), donc

u = F(x) = 1 − 𝑒 −𝑥 ⟺ 𝑥 = −log (1 − 𝑢)

Par conséquent, nous pouvons générer une exponentielle avec le paramètre 𝛽 = 1 en


générant un nombre aléatoire u puis en définissant ξ = F −1 (u) = −log (1 − 𝑢). Une
petite économie de temps peut être obtenue en notant que 1 − 𝑢 est également uniforme
sur 𝑈[0,1] et donc − log(1 − 𝑢) a la même distribution que −log (𝑢). C'est-à-dire que
le logarithme négatif d'un nombre aléatoire est réparti de façon exponentielle avec le
taux 1.

En outre, notez que si ξ est variable aléatoire exponentielle avec la moyenne 1 alors,
pour toute constante positive c, 𝑐. ξ c’est une v.a exponentiel avec la moyenne c. Par
conséquent, une variable aléatoire exponentielle avec le taux 𝜆 (moyenne 1/𝜆) peut être
générée en générant un nombre aléatoire 𝑢 et en définissant que

1
ξ = F −1 (u) = − ∗ log (𝑢)
𝜆

Algorithme (Distribution Exponentiel 𝛏~𝐞𝐱𝐩 (𝛃))

▪ Générer u~U[0,1]
▪ Retourner −𝛽 ∗ log (𝑢)
Exercice d’application :

Soit trois variables aléatoires 𝜉1 , 𝜉2 et 𝜉3 ayant les fonctions de distributions suivantes :


𝜉1 ~𝑈(0,1), 𝜉2 ~ exp(2.5) et 𝜉3 ~𝑁(3,1). Calculer la valeur de la fonction 𝑓 définie par :

𝑓 (𝜉1 , 𝜉2 , 𝜉3 ) = √𝜉12 + 𝜉23 + 𝜉32

En utilisant MATLAB

Vous aimerez peut-être aussi