Vous êtes sur la page 1sur 9

SIMULATIONS

AHMED EL KHARROUBI

October 19, 2020


Ahmed El kharroubi fsac Casablanca

0.1 SIMULATION DE VARIABLES ALEATOIRES


REELLES
Presque tous les langages de programmation disposent d’un générateur de
nombres pseudo-aléatoires.

1. Scilab possède rand()

2. Le langage R possède runif(n)

Dans ce cours nous utiliserons plus le logiciel Scilab

Postulat 1 On pose U = rand()

1. ∀a, b, 0 ≤ a < b ≤ 1
P(U ∈ [a, b]) = b − a

2. Les appels successifs du générateur pseudo-alétoire fournissent une


suite de variables aléatoires indépendantes et identiquement distribuées,
de loi uniforme sur [0, 1].

Proposition 2 Soient U1 , U2 , . . . , Un n appels successifs de rand(). Alors


les postulats 1) et 2) entrainent que pour tout rectangle D =]a1 , b1 ]×]a2 , b2 ]×
. . . ×]ak , bk ] on a :

P((U1 , U2 , . . . , Un ) ∈ D) = (b1 − a1 )(b2 − a2 ) . . . (bn − an )

Exemple 3 1.
X = [rand() ∗ 6] + 1

2.
X = [rand(1, 5) ∗ 6] + 1

3.
X = [U1 ∗ 3] ∗ [U2 ∗ 2]

0.1.1 Méthode d’inversion


Définition 4 Si F est une fonction de répartition. On note F −1 la fonction
définie de [0, 1] dans R par : ∀u ∈ [0, 1],

F −1 (u) = inf{x ∈ R | F (x) > u}

Remarque 5 Si F est strictement croissante alors F −1 est la fonction


réciproque de F

1
Ahmed El kharroubi fsac Casablanca

Exemple 6 1. Pour la fonction de répartition continue suivante :

F (x) = (x − 1)1[1,2] (x) + 1[2,∞[ (x)

on a
F −1 (u) = (1 + u)1[0,1] (u)

2. Pour la fonction de répartition discontinue suivante

F (x) = (1 − e−λx )1[0,+∞[ (x)

on a :
Ln(1 − u)
F −1 (u) = (− )1[0,1[ (u)
λ
Proposition 7 Soit X une variable aléatoire de fonction de répartition F .
Soit U = rand(). On pose Y = F −1 (U ). Alors les variables X et Y obéissent
à la même loi. Ainsi F −1 (rand()) simule une valeur de X

Démonstartion faite en cours

0.1.2 Simulation de loi usuelles


1. Loi uniforme sur [a, b]

Proposition 8 Soit X une variable aléatoire de loi uniforme sur [a, b]


(a 6= b).Alors l’agorithme suivant simule une valeurs de X :

X ← a + (b − a) ∗ rand()

2. Loi Exponetielle de paramètre λ

Proposition 9 L’algorithme suivant simule une valeur de X ∼ Exp(λ).

ln(rand())
X← −
λ

3. Variable discrète

Proposition 10 Soit X une variable aléatoire telle que X(Ω) = {x0 , x1 , ..., xn }
et, pi = P(X = xi ). Rappelons que pi ≥ 0 et que
n
X
pi = 1
i=0

2
Ahmed El kharroubi fsac Casablanca

La fonction de répartition de X est donnée par :


n−1
X
F (x) = p0 1[x0 ,x1 [ (x)+(p0 +p1 )1[x1 ,x2 [ (x)+. . .+ pi 1[xn−1 ,xn [ (x)+1[xn ,+∞[ (x)
0

et
n
X
−1
F (u) = x0 1[0,p0 [ (u) + xi 1[Pk−1 pi ,Pk pi [ (u)
i=0 i=0
k=1

Pogramme Scilab :

function y=sdiscrete(x,p)
#x= vecteur des valeurs prises par la variable aléatoire X
#p= vecteur des probabilités
u=rand(); q=p(0); i=0;
while (u>q); i=i+1; q=q+p(i); end;
y=x(i);

4. Loi BINOMIALE

function y=binomiale(n,p)
u=rand();
P=zeros(1,n+1);
P=binomial(p,n);
q=P(1);
i=0;
while(u>q); i=i+1; q=q+P(i+1);
end;
y=i;
endfunction

5. Loi Géometrique

function x=geometrique(p)
x=1;
while(rand()>p), x=x+1;
end;
endfunction

Proposition 11
ln(rand())
X =1+[ ]
ln(1 − p)
suit la loi geometrique de parametre p

3
Ahmed El kharroubi fsac Casablanca

6. Loi de Poisson

function x=lpoisson(l)
u=rand();
q=exp(-l);
i=0;
while(u>q), i=i+1;q=q*(1+l/(i+1));
end;
x=i;
endfunction

Proposition 12 Soient X1 , X2 , . . . , Xn , . . . une suite de var indépendantes


et de même loi Exp(λ). A lors la variable N définie par :
i
X
N = 0 ; si ; X1 ≥ 1 et N = M ax{i ≥ 1 | Xj ≤ 1}
j=1

suit la loi de Poisson de paramètre λ

function x=poisson(l)
q=exp(-l);
x=0;
p=rand();
while(p>q), x=x+1;p=p*rand();
end;
endfunction

0.1.3 Méthode de rejet


Comment simuler une loi uniforme sur le disque unité ?

{(x, y)|x2 + y 2 ≤ 1}

ou
Comment choisir un point au hasard dans le disque unité ?

Proposition 13 Soit ((Xn , Yn ))n≥1 une suite de points indépendants uni-


formément distribués dans le rectangle [−1, 1] × [−1, 1]. Soit

N = inf{n ≥ 1|(Xn , Yn ) ∈ D(O, 1)}

Alors la variable XN a pour densité


1
f (x, y) = 1 (x, y)
π D(O,1)

4
Ahmed El kharroubi fsac Casablanca

function [a]=disque(n)
for k=1:n
xy=[1,2];
while(xy(1)^2+xy(2)^2>1),
plot(xy(1),xy(2),’.b’);
xy=6*rand(1,2)-[3,3];
end;
a=xy;
plot(xy(1),xy(2),’.r’)
end;
endfunction

cours-simulation-soms-s2/home/choix-point-disque-eps-converted-to.pdf

0.1.4 Méthode de rejet : Densité à support compact


X variable aléatoire de densité f
Hypothèses 14 f est à support compact. C’est à dire f est nulle
hors d’un intervalle [a, b]. Donc il existe M > 0 tel que :

∀x ∈ [a, b] : f (x) ≤ M

f (x) = 6x(1 − x)1[0,1] (x)


cours-simulation-soms-s2/home/courbe-ex-eps-converted-to.pdf
Méthode

1. On choisit un point A = (X, Y ) au hasard dans le rectangle [a, b] ×


[0, M ]

2. Si Y ≤ f (X) on garde X sinon on choisit un autre point

3. On réitère jusqu’à ce que la condition Y ≤ f (X) soit remplie

Théorème 15 Soit X une VA réelle de densité f à support compact [a, b].


Soit M = sup[a,b] f (x). Soit ((Xn , Yn ))n une suite de points indépendants
uniformément distribués dans le rectangle [a, b] × [0, M ]. Soit

N = inf{n ≥ 1|f (Xn ) ≤ Yn }

Alors la variable XN a pour densité f

Exemple 16
f (x) = 6x(1 − x)1[0,1] (x)

5
Ahmed El kharroubi fsac Casablanca

Théorème 17 X une VA réelle de densité f à simuler. On suppose qu’il


existe une constante K > 0 et une densité g facile à simuler tels que :

∀x ∈ R f (x) ≤ Kg(x)

On pose
f (y)
α(y) =
kg(y)
Soit ((Xn , Yn ))n une suite i.i.d telle que Yn est une var de loi uniforme :
U[0,1] et Xn une var de densité g

On suppose que Un et Xn sont indépendantes. Soit

N = inf{n ≥ 1|Xn ≤ α(Yn )}

Alors la variable XN a pour densité f

function x=simulf
u=rand(); z=simulg;
y=K*u*g(z);
while(y>=f(z)), u=rand(); z=simulg;
y=K*u*g(z);
end;
endfunction

Exemple 18
3
f (x) = Ce−x 1R+ (x)

0.1.5 Mélange des lois


Soit
X = ΘX1 + (1 − Θ)X2
où Θ suit une loi de Bernoulli(p) et X1 ,X2 deux variables aléatoires de
fonctions de répartition respectives F1 et F2 Quelle est la loi de X ?

function X=melange(N,p,mu1,mu2)
Y=grand(1,N,"bin",1,p);
Z1=grand(1,N,"exp",mu1);
Z2=grand(1,N,"exp",mu2);
X=Y.*Z1+(1-Y).*Z2;
endfunction

Exemple 19 (Mélange de deux gaussiennes) Soit

X = 1{Θ=1} X1 + 1{Θ=−1} X2

6
Ahmed El kharroubi fsac Casablanca

où Θ suit la loi


P{Θ = 1} = p = 1 − P{Θ = −1}
et X1 ,X2 deux variables aléatoires de lois respectives N (−3, 2) et N (3, 1).
On suppose que Θ est indépendante des variables X1 et X2 . Quelle est la
loi de X ?

0.2 Méthode de Monte Carlo


Calcul approché de π
Un premier exemple de méthode de Monte-Carlo, est la détermination du
nombre π via l’estimation de la surface du disque de centre O et rayon 1.
function d=calculpi(n)
d=0;
for i=1:n
x=rand();
y=rand();
if x^2+y^2<1 then d=d+1;
plot(x,y,"+r")
else plot(x,y,"+g")
end
end
disp(4*d/n)
endfunction
Principe de la méthode 20 Pour utiliser une méthode de Monte-Carlo,
on doit tout d’abord mettre sous la forme d’une espérance mathématique
E(X) la quantité que l’on cherche à calculer. C’est souvent simple (cal-
cul d’intégrale par exemple) mais peut-être plus compliqué (équations aux
dérivées partielles par exemple).
Donner une valeur approchée de
Z
I= f (x)dx

où ∆ est un domaine de Rn et f fonction continue et bornée sur ∆
Exemple 21 Z +∞
2
I= e−x |cos(x)|dx
0

Théorème 22 (Loi forte des grands nombres) Soit X une variable aléatoire
tel que E(|X|) < +∞. Soit (Xi )i une suite de réalisations de X ( c’est
indépendantes et de même loi que X). Alors on P − p.s
Pn
i=1 Xi
lim = E(X)
n→+∞ n

7
Ahmed El kharroubi fsac Casablanca

Définition 23 L’érreur est définie par


Pn
i=1 Xi
n = E(X) −
n

Théorème 24 Si en plus E(|X|2 ) < +∞ (on note σ 2 la variance de X)


Alors on a : √
n
n
σ
converge en loi vers variable gaussienne Z centrée et réduite.
σ
Dans la pratique pour n assez grand l’erreur n suit N (0, √ ).
n
σ
P{|n | ≤ 1.96 √ } ' 0.95
n
c’est à dire l’intervalle de confiance à 95% est
Pn Pn
i=1 Xi σ Xi σ
[ − 1.96 √ , i=1 − 1.96 √ ]
n n n n

Vous aimerez peut-être aussi