TP 3 - Simulation de variables aléatoires - Corrigé...

18
Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017 TP 3 - Simulation de variables aléatoires - Corrigé succinct Simulation de lois uniformes Exercice 1. 1. Si U ∼U [0;1] , alors X = a +(b - a)U ∼U [a;b] . 2. Si X ∼U [a;b] et Y ∼U [c;d] , avec X et Y indépendantes, alors (X, Y ) ∼U [a;b]×[c;d] . 3. Si U ∼U [0;1] , alors bNU c +1 ∼U {1,2,...,n} . En effet, comme U ]0; 1[ p.s., NU ]0; N [ p.s., et bNU c +1 ∈{1, 2,...,n} p.s.. De plus, pour tout k ∈{1, 2,...,n}, en utilisant la définition de la partie entière (pour un réel x, c’est l’unique entier bxc tel que bxc≤ x< bxc +1), P (bNU c +1= k) = P k - 1 N U< k N = 1 N . Les 3 fonctions demandées sont donc les suivantes (enregistrées ici dans un fichier TP3Ex1LoisUnifs.sci). function X=TP3Ex1SimulUnif_Intervalle(n,a,b) //simulation d’un n-echantillon de v.a.r. U_{[a;b]} X=a+(b-a)*rand(n,1) endfunction function X=TP3Ex1SimulUnif_Pave(n,a,b,c,d) //simulation d’un n-echantillon de v.a.r. U_{[a;b]*[c;d]} X=[a+(b-a)*rand(n,1),c+(d-c)*rand(n,1)] endfunction function X=TP3Ex1SimulUnif_Discrete(n,N) //simulation d’un n-echantillon de v.a.r. U_{1,...,N} X=ceil(N*rand(n,1)) //ou floor(N*rand(n,1))+1 endfunction On peut les tester avec le script suivant, dont les sorties graphiques sont regroupées à la Figure 1. B Attention, pour représenter un diagramme en bâtons des fréquences théoriques (les “vraies pro- babilités”) et des fréquences empiriques (celles observées dans l’échantillon simulé), il est vivement conseillé de fournir à Scilab les échelles des axes, tout au moins les valeurs minimales et maximales en abscisses et ordonnées (pour éviter l’échelle choisie automatiquement, qui n’est pas forcément celle à laquelle on s’attend) : utiliser par exemple l’option rect de plot2d3. exec(’TP3Ex1LoisUnifs.sci’) n=500; //Loi unif sur [a;b]: histogramme + FDR empirique a=-1; b=1; X=TP3Ex1SimulUnif_Interval(n,a,b) scf(1) clf subplot(211) //histogramme histplot(20,X) xset(’thickness’,2) plot2d([a-0.5,a,a,b,b,b+0.5],[0,0,1/(b-a),1/(b-a),0,0],style=5) //(trace de la vraie densite) subplot(212) //FDR XX=gsort(X,’g’,’i’) FX=(XX-a)/(b-a) plot2d2(XX,(1:n)/n) //FDR emp. xset(’thickness’,2) 1

Transcript of TP 3 - Simulation de variables aléatoires - Corrigé...

Page 1: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

TP 3 - Simulation de variables aléatoires - Corrigé succinct

Simulation de lois uniformes

Exercice 1. 1. Si U ∼ U[0;1], alors X = a+ (b− a)U ∼ U[a;b].2. Si X ∼ U[a;b] et Y ∼ U[c;d], avec X et Y indépendantes, alors (X,Y ) ∼ U[a;b]×[c;d].3. Si U ∼ U[0;1], alors bNUc + 1 ∼ U{1,2,...,n}. En effet, comme U ∈]0; 1[ p.s., NU ∈]0;N [ p.s., etbNUc + 1 ∈ {1, 2, . . . , n} p.s.. De plus, pour tout k ∈ {1, 2, . . . , n}, en utilisant la définition de lapartie entière (pour un réel x, c’est l’unique entier bxc tel que bxc ≤ x < bxc+ 1),

P (bNUc+ 1 = k) = P(k − 1

N≤ U <

k

N

)=

1

N.

Les 3 fonctions demandées sont donc les suivantes (enregistrées ici dans un fichier TP3Ex1LoisUnifs.sci).

function X=TP3Ex1SimulUnif_Intervalle(n,a,b)//simulation d’un n-echantillon de v.a.r. U_{[a;b]}X=a+(b-a)*rand(n,1)

endfunction

function X=TP3Ex1SimulUnif_Pave(n,a,b,c,d)//simulation d’un n-echantillon de v.a.r. U_{[a;b]*[c;d]}X=[a+(b-a)*rand(n,1),c+(d-c)*rand(n,1)]

endfunction

function X=TP3Ex1SimulUnif_Discrete(n,N)//simulation d’un n-echantillon de v.a.r. U_{1,...,N}X=ceil(N*rand(n,1)) //ou floor(N*rand(n,1))+1

endfunction

On peut les tester avec le script suivant, dont les sorties graphiques sont regroupées à la Figure 1.B Attention, pour représenter un diagramme en bâtons des fréquences théoriques (les “vraies pro-babilités”) et des fréquences empiriques (celles observées dans l’échantillon simulé), il est vivementconseillé de fournir à Scilab les échelles des axes, tout au moins les valeurs minimales et maximalesen abscisses et ordonnées (pour éviter l’échelle choisie automatiquement, qui n’est pas forcément celleà laquelle on s’attend) : utiliser par exemple l’option rect de plot2d3.

exec(’TP3Ex1LoisUnifs.sci’)n=500;

//Loi unif sur [a;b]: histogramme + FDR empiriquea=-1;b=1;X=TP3Ex1SimulUnif_Interval(n,a,b)scf(1)clfsubplot(211) //histogrammehistplot(20,X)xset(’thickness’,2)plot2d([a-0.5,a,a,b,b,b+0.5],[0,0,1/(b-a),1/(b-a),0,0],style=5)

//(trace de la vraie densite)subplot(212) //FDRXX=gsort(X,’g’,’i’)FX=(XX-a)/(b-a)plot2d2(XX,(1:n)/n) //FDR emp.xset(’thickness’,2)

1

Page 2: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

plot2d(XX,FX,style=5) //FDR theo.

//Loi unif sur [a;b]*[c;d]: représentation des couples de points obtenusc=4;d=8;Y=TP3Ex1SimulUnif_Pave(n,a,b,c,d)scf(2)clfplot2d(Y(:,1),Y(:,2),style=-1)xset(’thickness’,2)plot2d([a,a,b,b,a],[c,d,d,c,c],style=5)

//Loi unif sur {1,...,n}: diagramme en batons et FDR empiriqueN=8;Z=TP3Ex1SimulUnif_Discrete(n,N)FreqTheo=(1/N)*ones(1,N)[ind,occ]=dsearch(Z,1:N,"d")FreqEmp=occ/nscf(3)clfsubplot(211)plot2d3(1:N,FreqEmp,rect=[0 0 (N+1) (max(FreqTheo)+0.1)])xset("thickness",2)xset("line style",2)plot2d3((1:N)+0.02,FreqTheo,style=5)subplot(212)ZZ=gsort(Z,’g’,’i’)plot2d2(ZZ,(1:n)/n)xset(’thickness’,2)plot2d2((1:N),cumsum(FreqTheo),style=5)

1. U[a;b] 2. U[a;b]×[c;d] 3. U{1,2,...,n}

Figure 1 – Exercice 1. Vérification de la qualité des échantillons de lois uniformes simulés.

Simulation par inversion

Exercice 2.1. La fonction de répartition de la loi E(λ) est donnée, pour x > 0, par F (x) = 1−e−λx. En résolvantl’équation u = F (x), u ∈]0; 1[, on obtient x = − ln(1 − u)/λ (ce qui signifie que l’inverse généraliséeest F (−1)(u) = − ln(1− u)/λ). Donc, si U ∼ U[0;1], alors − ln(1− U)/λ ∼ E(λ). Or 1− U a même loique U , donc on a aussi − ln(U)/λ ∼ E(λ).2. La fonction de répartition de la loi de Cauchy C(a) est donnée pour x ∈ R par F (x) = arctan(x/a)/π+1/2. On a donc F (x) = u avec u ∈]0; 1[, si et seulement si x = a tan(π(u− 1/2)) (inverse généralisée).

2

Page 3: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

Ainsi, si U ∼ U[0;1], alors a tan(π(U − 1/2)) ∼ C(a).3. La fonction de répartition de la loi de Laplace est donnée par

∀x ∈ R, F (x) =

ex

2si x < 0,

1− e−x

2si x ≥ 0.

L’inverse généralisée est donc

∀u ∈]0; 1[, F (−1)(u) =

{ln(2u) si u < 1/2,

− ln(2(1− u)) si u ≥ 1/2.

Donc si U ∼ U[0;1], alors ln(2U)1{U<1/2} − ln(2(1− U))1{U≥1/2} suit la loi de Laplace.4. La fonction de répartition de la loi W(a, b, c) est donnée, pour x > b, par

F (x) = 1− exp

(−(x− bc

)a),

et donc pour u ∈]0; 1[, F (−1)(u) = c(− ln(1− u))1/a + b. Donc si U ∼ U[0;1], alors c(− ln(U))1/a + b ∼W(a, b, c).5. La fonction de répartition de la loi de Pareto de paramètre a est donnée pour x > 1 par F (x) =1 − x−a. Donc F (−1)(u) = (1 − u)−1/a pour u ∈]0; 1[. Donc si U ∼ U[0;1], alors 1/U1/a suit la loi dePareto de paramètre a > 0.

Les 5 fonctions demandées sont donc les suivantes,(enregistrées ici dans un fichier TP3Ex2LoisContinuesInversion.sci).

function X=TP3Ex2SimulExpon(n,la)//simulation d’un n-echantillon de loi Exp(la)X=-log(rand(n,1))/la;

endfunction

function X=TP3Ex2SimulCauchy(n,a)//simulation d’un n-echantillon de loi Cauchy(a)X=a*tan(%pi*(rand(n,1)-0.5));

endfunction

function X=TP3Ex2SimulLaplace(n)//simulation d’un n-echantillon de loi Laplace(1)U=rand(n,1);X=(U<0.5).*log(2*U)+(U>=0.5).*(-log(2*(1-U)));

endfunction

function X=TP3Ex2SimulWeibull(n,a,b,c)//simulation d’un n-echantillon de loi Weibull(a,b,c)X=b+c*(-log(1-rand(n,1))).^(1/a);

endfunction

function X=TP3Ex2SimulPareto(n,a)//simulation d’un n-echantillon de loi Weibull(a,b,c)X=(1.0)./(rand(n,1)).^(1/a);

endfunction

On peut tester chacune des fonctions avec le script suivant à utiliser en “décommentant” les morceauxde code correspondant à la fonction testée (décommenter la simulation de l’échantillon, et la vraiedensité théorique). Un exemple de figure est donné ci-dessous (voir Figure 2).

3

Page 4: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

//Script TP3 Ex2clearexec("TP3Ex2LoisContinuesInversion.sci")n=100;

//la=1;//X=TP3Ex2SimulExpon(n,la)//X=TP3Ex2SimulLaplace(n)a=2;b=0;c=0.5;X=TP3Ex2SimulWeibull(n,a,b,c)//a=1//X=TP3Ex2SimulPareto(n,a)

vectx=linspace(min(X),max(X),100);

//densite_theo=la*exp(-la*vectx).*(vectx>=0)//densite_theo=exp(-abs(vectx))/2densite_theo=(a/c).*((vectx-b)./c).^(a-1).*exp(-((vectx-b)./c).^a).*(vectx>b);//densite_theo=a*(vectx).^(-a-1).*(vectx>1)scf(1)clfhistplot(100,X)xset("thickness",2)plot2d(vectx,densite_theo,style=5)

B Attention, pour la loi de Cauchy, une représentation correcte est difficile à obtenir (il y a desvaleurs très “espacées” dans l’échantillon. Une solution est de faire un histogramme non pas avecl’échantillon complet, mais avec l’échantillon auquel on aura ôter 5% des valeurs extrêmes “à gauche”(les plus petites valeurs) et 5% des valeurs extrêmes à droite (les plus grandes valeurs). Comparer parexemple les résultats obtenus sur les deux figures du script suivant :

a=5;X=TP3Ex2SimulCauchy(n,a);

XX=gsort(X,’g’,’i’)NN=(5/100)*n

//densite theorique sur l’intervalle [min(X),max(X)]vectx=linspace(min(X),max(X),100)densite_theo=a*(%pi*(a^2+vectx.^2)).^(-1)

//densite theorique sur intervalle réduitvectxbis=linspace(XX(NN),XX(n-NN),100);densite_theobis=a*(%pi*(a^2+vectx.^2)).^(-1)

scf(1)clfsubplot(211) //histogramme de tout l’échantillonhistplot(100,X)xset("thickness",2)plot2d(vectx,densite_theo,style=5)xtitle(’Histogramme de tout l’’echantillon’)

subplot(212)

4

Page 5: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

histplot(100,XX(NN:n-NN)) //histogramme de l’échantillon tronquéxset("thickness",2)plot2d(vectxbis,densite_theobis,style=5)xtitle(’Histogramme de l’’echantillon tronqué’)

4. Exemple de la loi W(a, b, c) 2. Cas de la loi C(a)

Figure 2 – Exercice 2. Exemples d’histogrammes d’échantillons de lois à densité obtenus par méthoded’inversion.

Exercice 3.1. Soit U ∼ U[0;1]. Si U < p, on pose X = 1, sinon, X = 0. Alors, P(X = 0) = P(U < p) = p etP(X = 1) = P(U ≥ p) = 1− p. Donc X ∼ B(p).

Ensuite, si X ∼ B(p), alors Y = 2X − 1 ∼ R(p).2. On suit la méthode de simulation d’une variable discrète détaillée p.3 de l’énoncé.

Les 2 fonctions demandées sont donc les suivantes(enregistrées ici dans un fichier TP3Ex3_4LoisDiscretesInversion.sci).

function X=TP3Ex3SimulBernoulli(n,p)//simulation d’un n-echantillon de loi de Bernoulli B(p)X=1.*(rand(n,1)<p);

endfunction

function X=TP3Ex3SimulLoiFinie(n,vectx,vectp)//simulation d’un n-echantillon de loi discrete à support vectx dont les probas//sont donnees dans vectpFdr=cumsum(vectp);X=zeros(n,1);for i=1:n //boucle pr simuler chq réalisation de la variable

U=rand(1,1);j=1;while U>Fdr(j)

j=j+1;endX(i)=vectx(j);

endendfunction

On peut les tester avec le script suivant. Le graphique correspondant est à la Figure 3.

5

Page 6: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

clearexec("TP3Ex3_4LoisDiscretesInversion.sci")n=10000;

//Ex3//Loi de Bernoulli: on verifie que la moyenne est proche de pp=0.5X=TP3Ex3SimulBernoulli(n,p)disp(mean(X))

//Loi discrete: diagramme en bâtons et FDR empirique.vectx=1:6FreqTheo=(1/6).*ones(1,6);Y=TP3Ex3SimulLoiFinie(n,vectx,FreqTheo)[ind,occ]=dsearch(Y,vectx,"d")FreqEmp=occ/nscf(1)clfsubplot(211)YY=gsort(Y,’g’,’i’)plot2d2(YY,(1:n)/n)xset(’thickness’,2)plot2d2(vectx,cumsum(FreqTheo),style=5)subplot(212)plot2d3(vectx,FreqEmp,rect=[0 0 max(vectx) (max(FreqTheo)+0.1)])xset("thickness",2)xset("line style",2)plot2d3(vectx+0.02,FreqTheo,style=5)

Exercice 4.1. et 2. On suit la méthode de simulation d’une variable discrète détaillée p.3 de l’énoncé, en l’adaptantau cas d’une variable dont le support est infini. Les 2 fonctions obtenues sont les suivantes :

function X=TP3Ex3SimulPoisson(n,la)//simulation d’un n-echantillon de loi de Poisson P(la)X=zeros(n,1)for i=1:n

U=rand(1,1);proba=exp(-la);FDR=proba;while U>FDR

X(i)=X(i)+1;proba=proba*la/X(i);FDR=FDR+proba;

endend

endfunction

function X=TP3Ex3SimulGeometrique(n,p)//simulation d’un n-echantillon de loi géometrique G(p)X=ones(n,1)for i=1:n

U=rand(1,1);proba=p;FDR=proba;while U>FDR

6

Page 7: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

X(i)=X(i)+1;proba=proba*(1-p);FDR=FDR+proba;

endend

endfunction

On peut par exemple tester la première fonction en ajoutant le code suivant au script de l’exerciceprécédent (voir Figure 3).B Attention, pour représenter un diagramme en bâtons ou même la FDR empirique, comme ona une loi discrète mais à support infini, il faut choisir la “plage” de représentation pour calculerles fréquences théoriques et les valeurs de la fonction de répartition associée (on choisit d’aller duminimum de l’échantillon au maximum ici).

//Ex4 Loi de Poissonla=3;Z=TP3Ex3SimulPoisson(n,la)

m=min(Z);M=max(Z);

[ind,occ]=dsearch(Z,m:M,"d")FreqEmp2=occ/nif m==0 then

factorielles=[1,cumprod(1:M)]else factorielles=[1,cumprod(prod(1:m):M)]

end

FreqTheo2=exp(-la)*la.^([m:M])./factoriellesFDRTheo2=cumsum(FreqTheo2)ZZ=gsort(Z,’g’,’i’)scf(2)clfsubplot(211)plot2d2(ZZ,(1:n)/n)xset("thickness",2)plot2d2(m:M,FDRTheo2,style=5)subplot(212)plot2d3(m:M,FreqEmp2,[0 0 max(Z) max(FreqTheo2)+0.1])xset("thickness",2)xset("line style",2)plot2d3((m:M)+0.02,FreqTheo2,style=5)

La méthode est analogue pour tester la fonction simulant des variables de loi géométrique.

7

Page 8: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

Exemple de loi discrète à support fini Loi P(a)(Exercice 3, 2.) (Exercice 4, 1.)

Figure 3 – Exercices 3 - 4. Exemples d’illustration de la qualité d’échantillons de lois discrètesobtenus par méthode type inversion.

Simulation par méthode de rejet

Pour simuler une variable aléatoireX par rejet, il faut simuler des variables (ou vecteurs) aléatoires“auxiliaires” tant que ceux-ci ne vérifient pas une certaine condition (C) (voir énoncé). Une boucle detype while va donc être un outil adapté.

Pour simuler un n−échantillon (X1, . . . , Xn) de loi celle de la variable X par rejet, on peut doncadopter deux schémas d’implémentation.

Méthode 1 On simule successivement chacune des variables de l’échantillon, en faisant uneboucle for sur le nombre de variables :

99K for i=1:n99K simulation de Xi par rejet.99K endLa boucle while évoquée ci-dessus est intégrée dans la boucle for.

Méthode 2 On commence par simuler un n−échantillon de variables auxiliaires, on garde uni-quement les variables auxiliaires vérifiant la condition (C). S’il y en a k, on obtient donc kvariables de loi celle de X. Ensuite, on simule n−k variables auxiliaires. On obtient à nouveauun certain nombre de variables vérifiant (C), et donc aussi un certain nombre de variables deloi celle de X. On recommence tant qu’on n’a pas un échantillon de taille n.

Dans les corrigés des exercices qui suivent, on adopte principalement la Méthode 1. Un exemplede la Méthode 2 est donné à la correction de l’Exercice 7, question 1., un autre à l’Exercice 12,question 2. (b).

Exercice 5.1. On applique la méthode de rejet pour les lois uniformes décrite à la page 4 de l’énoncé, avec

B =

{(x, y) ∈ R2,

(xa

)2

+(yb

)2

≤ 1

}, et A = [−a; a]× [−b; b].

Pour simuler une variable X de loi UB , on tire donc des couples de lois UA jusqu’à en obtenir un quiappartienne à B. La fonction est la suivante :

function X=TP3Ex5UnifEllipse(n,a,b)X=zeros(n,2);for i=1:n

U1=-a+2*a*rand(1,1);U2=-b+2*b*rand(1,1);

8

Page 9: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

while (((U1/a)^2+(U2/b)^2)>1)U1=-a+2*a*rand(1,1);U2=-b+2*b*rand(1,1);

endX(i,:)=[U1,U2];

endendfunction

2. Pour l’affichage, on utilise la paramétrisation de l’ellipse suivante{x = a cos(t)

y = b sin(t)t ∈ [0; 2π[.

Ceci donne le code suivant, et la Figure 4.

n=2000;a=2;b=8;X=TP3Ex5UnifEllipse(n,a,b)

t=linspace(0,2*%pi,100)scf(1)clfplot2d(a*cos(t),b*sin(t),style=5)plot2d(X(:,1),X(:,2),style=-1)

Figure 4 – Exercice 5. Échantillon de loi uniforme sur une ellipse, obtenu par méthode de rejet.

3. On calcule la moyenne empirique du nombre de points de l’échantillon appartenant au pavé R =[−a/2; a/2]× [−b/2; b/2]. En théorie, en notant f une densité de X ∼ UB , ce nombre moyen de pointsest

P(X ∈ R) =

∫R

f(x)dx =1

πab

∫R∩B

dx =1

πab

∫R

dx =1

π.

On peut donc ajouter les lignes de code suivantes :

compteur=0;for i=1:n

if ((X(i,1)>(-a/2)) & (X(i,1)<(a/2)) &(X(i,2)>(-b/2)) & (X(i,2)<(b/2))) thencompteur=compteur+1

9

Page 10: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

endendapprox=compteur/n;disp(approx)proba=1/%pi;disp(proba)

Exercice 6.La densité donnée est à support compact [−2σ; 2σ] et bornée par 1/(πσ). On applique la méthode derejet correspondante décrite page 5 de l’énoncé : on simule des couples (X,U) de loi U[−2σ;2σ]×[0;1/(πσ)]

tant qu’ils ne vérifient pas f(X) ≥ U . Ceci donne la fonction suivante (on pourra faire un histogrammepour vérifier la qualité de l’échantillon simulé, voir Figure 5).

function X=TP3Ex6Wigner(n,sig)X=zeros(n,1)for i=1:n

Xp=4*sig*rand(1,1)-2*sigU=rand(1,1)/(%pi*sig)while U>sqrt(4*sig^2-Xp^2)/(2*%pi*sig^2)

Xp=4*sig*rand(1,1)-2*sigU=rand(1,1)/(%pi*sig)

endX(i)=Xp;

endendfunction

Exercice 7.1. Pour x > 0, on calcule,

f(x)−√

2e

πg(x) =

1√2π

(exp

(−x

2

2

)− exp

(−x+

1

2

)),

=1√2π

exp

(−x

2

2

)(1− exp

(x2

2− x+

1

2

)),

=1√2π

exp

(−x

2

2

)(1− exp

(1

2(x− 1)2

)),

≤ 0.

Dans le cas x < 0, le calcul est similaire. On peut donc implémenter la méthode de rejet pourles variables à densité telle qu’elle est décrite page 6 de l’énoncé : pour simuler une variable de loiN (0, 1) par rejet, on simule des variables U de loi U[0;1] et X de loi de Laplace L(1) (de densitég), indépendantes, jusqu’à ce que cUg(X) ≤ f(X). Pour simuler un n−échantillon par rejet, onpeut adopter le schéma proposé pour les autres méthodes de rejet implémentées (Exercices 5 et 6,et question 2 ci-dessous) : boucle for pour simuler chacune des variables, simulations de couples(X,U) dans chaque tour de boucle tant que l’on n’a pas cUg(X) ≤ f(X), et obtention d’une seulevariable gaussienne à la fin du tour de boucle. Une deuxième solution consiste à simuler directementun n−échantillons de couples (X,U) : on ne garde que ceux qui vérifient la condition cUg(X) ≤ f(X),et on simule au tour de boucle suivant un nombre de couples (X,U) correspondant aux nombres devariables manquantes dans l’échantillon cherché. On ré-itère jusqu’à avoir n variables de loi N (0, 1).Voici donc deux fonctions possibles.

function X=TP3Ex7SimulGaussienneRejet2(n)c=sqrt(2*exp(1)/%pi)X=zeros(n,1);for i=1:n

U=rand(1,1)

Xp=TP3Ex2SimulLaplace(1)A=c*U.*exp(-abs(Xp))/2B=exp(-Xp.^2/2)/sqrt(2*%pi)while A>B

U=rand(1,1)

10

Page 11: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

Xp=TP3Ex2SimulLaplace(1)A=c*U.*exp(-abs(Xp))/2B=exp(-Xp.^2/2)/sqrt(2*%pi)

endX(i)=Xp

endendfunction

function X=TP3Ex7SimulGaussienneRejet(n)X=[]c=sqrt(2*exp(1)/%pi)

while length(X)<nk=n-length(X) //nb de var. a simuler restantesU=rand(k,1)Xp=TP3Ex2SimulLaplace(k)A=c*U.*exp(-abs(Xp))/2B=exp(-Xp.^2/2)/sqrt(2*%pi)I=find(A<=B)X=[X;Xp(I)]

endendfunction

2. L’inégalité f(x) ≤ (ca,b/a)g(x) pour x ∈ [0; 1] est une conséquence de (1− x)b−1 ≤ 1, pour b > 1.On applique la méthode de rejet décrite ci-dessus, en simulant des variables de loi de densité g. Pourcela, on utilise une méthode par inversion : pour x ∈ R, la fonction de répartition G associée à ladensité g est

G(x) =

0 si x ≤ 0

xa si x ∈]0; 1]

1 si x > 1.

Ainsi, G(−1)(y) = y1/a, pour y ∈]0; 1[. La fonction permettant d’obtenir un échantillone de loi betaest la suivante.

function X=TP3Ex7SimulBeta(n,a,b)X=zeros(n,1);for i=1:n

U=rand(1,1)Xp=rand(1,1)^(1/a)while U>((1-Xp)^(b-1))

U=rand(1,1)Xp=rand(1,1)^(1/a)

endX(i)=Xp;

endendfunction

On peut tester l’ensemble des fonctions de cet exercice en représentant des histogrammes et les densitésthéoriques par exemple, voir Figure 5.

Loi de Wigner, σ = 1 Loi N (0, 1) Loi B(2, 3)

Figure 5 – Exercices 6-7. Exemples d’histogrammes d’échantillons de lois à densité obtenus parméthode de rejet.

11

Page 12: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

Simulation par méthodes particulières

Exercice 8.Si (Xi)i≥1 est une suite i.i.d. de variables de loi B(p), alors chaque Xi représente le résultat d’uneépreuve de Bernoulli, c’est-à-dire une expérience aléatoire à 2 issues (“succès” ou “échec”).

1. La variable S = X1 + · · · + Xn compte le nombre de succès dans un schéma de Bernoulli,c’est-à-dire lors de la répétition de ces épreuves de manière identique et indépendante. Sa loi est pardéfinition une loi binomiale B(n, p). Par le calcul, on montre sinon que si X ∼ B(n, p) et Y ∼ B(m, p),avec X et Y indépendantes alors X + Y ∼ B(n + m, p) : en effet, X + Y est p.s. à valeurs dans{0, . . . , n+m}, et pour k ∈ {0, . . . , n+m},

P(X + Y = k) = P

((n⋃l=0

{X = l}

)∩ {X + Y = k}

)=

k∑l=0

P(X = l)P(Y = k − l),

=

k∑l=0

(n

l

)pl(1− p)n−l

(m

k − l

)pk−l(1− p)m−k+l,

=

(k∑l=0

(n

l

)(m

k − l

))pk(1− p)n+m−k,

=

(n+m

k

)pk(1− p)n+m−k.

Remarque. On retrouve la formule∑k−ll=0

(nl

)(mk−l)

=(n+mk

)en dénombrant de deux manières diffé-

rentes le nombre de parties à k éléments choisies dans un ensemble de la forme E ∪F où E et F sontdeux ensembles disjoints de cardinaux respectifs n et m.

Pour obtenir une matrice de taille n1×n2 dont les entrées sont i.i.d. B(N, p), on simule un tableau à3 dimensions n1×n2 ×N de variables i.i.d. B(1) et on somme selon la troisième dimension (faire undessin !).

function X=TP3Ex8SimulBinomiale(n1,n2,N,p)X=sum(rand(n1,n2,N)<p,3)

endfunction

2. La variable G = inf{i ≥ 1, Xi = 1} est le “premier instant de succès” lors d’un schéma de Bernoulli.Donc par définition, G ∼ G(p). Si on veut le voir par le calcul, pour tout k ∈ N\{0},

P(Y = k) = P

({Xk = 1} ∩

k−1⋂l=1

{Xl = 0}

)= P ({Xk = 1})

k−1∏l=1

P ({Xl = 0}) ,

= P ({Xk = 1}) (P ({X1 = 0}))k−1= p(1− p)k−1.

Sachant que G = inf{i ≥ 1, Xi = 1} suit la loi géométrique G(p), pour simuler une variable G(p), onsimule donc des variables de Bernoulli jusqu’à en obtenir une égale à 1. On compte le nombre d’essaisnécessaires pour y parvenir.

function X=TP3Ex8SimulGeometrique(n,p)X=zeros(n,1)for i=1:n

k=1while rand(1,1)>p

k=k+1;endX(i)=k;

endendfunction

12

Page 13: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

On peut tester les deux fonctions de cet exercice en représentant des diagrammes en bâtons. Pourobtenir les fréquences théoriques de la loi binomiale, on peut utiliser la fonction binomial de Scilab(voir exemple dans le cours associé au TP, Représentation graphique d’échantillons).

Exercice 9.1. Pour montrer que si X ∼ E(λ), alors bX + 1c suit la loi G(1 − exp(−λ)), il suffit de calculerP(bX + 1c = k) = P(k − 1 ≤ X < k). Ainsi, pour simuler une variable G de loi G(p), il suffit desimuler X ∼ E(λ) avec λ = − ln(1− p), puis de poser G = bX + 1c.2. (a) On voit que γ(1, λ) = E(λ) en comparant les expressions des densités.2. (b) La densité fX1+X2

de la somme de deux variables aléatoires réelles indépendantes X1 et X2

est donnée par la convolée de la densité fX1 de X1 et de la densité fX2 de X2. Ici, pour x ∈ R, on adonc

fX1+X2(x) = fX1

? fX2(x) =

∫RfX1

(t)fX2(x− t)dt,

=λa1λa2

Γ(a1)Γ(a2)

∫R1t>01x−t>0t

a1−1(x− t)a2−1e−λte−λ(x−t)dt,

=λa1+a2

Γ(a1)Γ(a2)1x>0e

−λxxa1+a2−2

∫ x

0

(t

x

)a1−1(1− t

x

)a2−1

dt,

=λa1+a2

Γ(a1)Γ(a2)1x>0e

−λxxa1+a2−2

∫ 1

0

ua1−1 (1− u)a2−1

xdu,

= c1x>0e−λxxa1+a2−1,

où c est la constante suivante :

c =λa1+a2

Γ(a1)Γ(a2)

∫ 1

0

ua1−1 (1− u)a2−1

du.

Ainsi, à constante près, on reconnait pour fX1+X2 la densité d’une loi γ(a1 +a2, λ). On en déduit quec’est la loi de X1 +X2 et aussi, au passage, que

λa1+a2

Γ(a1)Γ(a2)

∫ 1

0

ua1−1 (1− u)a2−1

du =λa1+a2

Γ(a1 + a2),

c’est-à-dire

B(a1, a2) :=

∫ 1

0

ua1−1 (1− u)a2−1

du =Γ(a1)Γ(a2)

Γ(a1 + a2).

On peut donc simuler une variable X de loi γ(k, λ), avec k entier naturel non nul en simulant kvariables indépendantes X1, . . . , Xk de loi E(λ) et en posant X =

∑kl=1Xl.

Exercice 10.1. La variable Nt est à valeurs dans N. Vu la définition de Nt, pour tout n ≥ 0,

P(Nt = n) = P(Sn ≤ t < Sn+1) = E[1{Sn≤t<Sn+Xn+1}

],

= E[E[1{Sn≤t<Sn+Xn+1}|Sn

]],

= E[1{Sn≤t}E

[1{t−Sn≤Xn+1}|Sn

]]car 1{Sn≤t} est Sn −mesurable,

= E

[1{Sn≤t}

∫R+

1{t−Sn≤x}λe−λxdx

]car Xn+1 est indépendant de Sn,

= E[1{Sn≤t}e

−λ(t−Sn)],

13

Page 14: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

Or, Sn ∼ γ(n, λ) (somme de n variables indépendantes de loi E(λ). Donc,

P(Nt = n) =

∫R1{x≤t}e

−λ(t−x) λn

(n− 1)!xn−1e−λxdx,

=

∫R1{x≤t}e

−λ(t−x) λn

(n− 1)!xn−1e−λxdx,

=λn

(n− 1)!e−λt

∫ t

0

xn−1dx =(λt)n

n!e−λt,

et Nt ∼ P(λt).2. Si X = inf{n ≥ 0,

∏n+1i=1 Ui < exp(−λ)}, alors

X = inf

{n ≥ 0,

n+1∑i=1

− ln(Ui)

λ> 1

},

loi= inf

{n ≥ 0,

n+1∑i=1

Xi > 1

},

où les Xi sont indépendantes, de même loi E(λ) (voir Exercice 2). Donc, X a même loi que N1,c’est-à-dire X ∼ P(1).

Exercice 11.1. Soit ϕ une fonction (test) borélienne bornée sur R. D’une part, E[ϕ(V/U)] =

∫R ϕ(x)fV/U (x)dx,

pour fV/U une densité de V/U , et d’autre part,

E[ϕ

(V

U

)]=

1

π

∫R2

ϕ( vu

)1{u2+v2≤1}dudv.

On passe en coordonnées polaires : v = r sin(θ), u = r cos(θ). On a dudv = rdrdθ, et on passe d’uneintégrale sur R2 à une intégrale sur R+ × [0; 2π] :

E[ϕ

(V

U

)]=

1

π

∫R+×[0;2π]

ϕ(tan(θ))1{r≤1}rdrdθ,

=1

∫ 2π

0

ϕ(tan(θ))dθ,

= 2× 1

∫ π/2

−π/2ϕ(tan(θ))dθ.

En posant le changement de variables x = tan(θ), on obtient donc

E[ϕ

(V

U

)]=

1

π

∫ ∞0

ϕ(x)dx

1 + x2.

On en déduit, fV/U (x) = (π(1 + x2))−1, et V/U ∼ C(1).2. Pour simuler une variable suivant la loi de Cauchy C(1), on peut donc simuler deux variables deloi uniforme UD sur le disque unité. Pour simuler deux telles variables, on peut appliquer la méthodede rejet pour les lois uniformes (voir p.4 de l’énoncé) en utilisant D ⊂ [−1; 1]2 : de tels couples devariables sont simulés à l’Exercice 12· ci-dessous, question 2. (b).

Exercice 12.1. (a) On cherche une densité f(X,Y ) du couple (X,Y ) = (

√W cos(Θ),

√W sin(Θ)). Soit ϕ une

fonction (test) borélienne bornée sur R2. D’une part,

E [ϕ(X,Y )] =

∫R2

ϕ(x, y)f(X,Y )(x, y)dxdy.

14

Page 15: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

D’autre part,

E [ϕ(X,Y )] = E[ϕ(√

W cos(Θ),√W sin(Θ)

)]=

∫R2

ϕ(√w cos(θ),

√w sin(θ))f(W,Θ)(w, θ)dwdθ,

où f(W,Θ) est une densité du couple (W,Θ). Par indépendance de W et Θ, une densité du couple(W,Θ) est f(W,Θ)(w, θ) = exp(−w/2)/21w>0 × 1]0,2π[(θ)/(2π). On a donc,

E [ϕ(X,Y )] =

∫ ∫D

ϕ(√w cos(θ),

√w sin(θ))

1

4πexp

(−w

2

)dwdθ,

avec D = R∗+×]0; 2π[= {(w, θ) ∈ R2, w > 0, 0 < θ < 2π}. On pose le changement de variables{x =√w cos(θ),

y =√w sin(θ).

Si on veut exprimer (w, θ) en fonction de (x, y), il faut être prudent. On a bien w = x2 + y2, mais onne peut pas tout le temps écrire θ = arctan(y/x) : en effet, cela signifierait que θ ∈]−π/2;π/2[. Pouravoir θ dans ]0; 2π[, comme dans l’intégrale de départ, il faut choisir :

θ =

arctan(yx

)si x > 0 et y > 0;

arctan(yx

)+ 2π si x > 0 et y < 0;

arctan(yx

)+ π si x < 0.

(1)

L’application ψ : (x, y) 7→ (θ, w) est un C1-difféomorphisme de ψ−1(D) = R2\R∗+ × {0} dans D,de jacobien en un point (x, y)

Jψ(x, y) =

∣∣∣∣∣ ∂θ∂x

∂θ∂y

∂w∂x

∂w∂y

∣∣∣∣∣ =

∣∣∣∣∣∣−y

x2 + y2

x

x2 + y2

2x 2y

∣∣∣∣∣∣ =−2y2

x2 + y2− 2x2

x2 + y2= −2.

On remarque que les différents cas pour θ (cf. (1)) ne changent pas la valeur du jacobien. Quel quesoit (x, y), on a |Jψ(x, y)| = 2 aussi. De plus, les différentes expressions n’interviennent pas non plusdans l’intégrale. Ainsi,

E [ϕ(X,Y )] =

∫ ∫ψ−1(D)

ϕ(x, y) exp

(−x

2 + y2

2

)1

2πdxdy =

∫ ∫R2

ϕ(x, y) exp

(−x

2 + y2

2

)1

2πdxdy.

Finalement,

f(X,Y )(x, y) = exp

(−x

2 + y2

2

)1

2π,

ce qui prouve que les variables X et Y sont indépendantes de même loi N (0; 1).Remarque : l’expression de θ n’était utile ici que pour le calcul du jacobien. On peut sinon calculerle jacobien de ψ−1 : (w, θ) 7→ (x, y) :

Jψ−1(w, θ) =

∣∣∣∣ ∂x∂θ

∂y∂θ

∂x∂w

∂y∂w

∣∣∣∣ =

∣∣∣∣∣∣−√w sin(θ)

√w cos(θ)

cos(θ)

2√w

sin(θ)

2√w

∣∣∣∣∣∣ = −1/2,

et utiliser Jψ(x, y) = 1/(J−1ψ(w, θ)) = 1/(−1/2) = −2.1. (b) La fonction suivante permet d’obtenir un n−échantillon avec n pair ou impair de loi N (0; 1) :− si n est pair, on doit simuler n/2 couples de variables (W,Θ) pour obtenir n gaussiennes,− si n est impair, on simule (n+ 1)/2 couples de variables (W,Θ), on obtient n+ 1 gaussiennes,

et on garde les n premières.

function X=TP3Ex12SimulLoiNormale_BoxMuller(n)//Simulation d’un n-échantillon de loi N(0,1) par méthode de Box-Muller//Attention au nombre de variables simulées!

15

Page 16: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

m=2*((n/2)-floor(n/2)); // si n=2k, m=0, si n=2k+1, m=1U=rand((n+m)/2,2);W=-2*log(U(:,1));X=[sqrt(W).*cos(2*%pi*U(:,2));sqrt(W).*sin(2*%pi*U(:,2))]X=X(1:(length(X)-m))

endfunction

2. (a) Si (U, V ) = (R cos(Θ), R sin(Θ)), alors

(R,Θ) =

√U2 + V 2,

arctan

(VU

)si U > 0 et V > 0

arctan(VU

)+ 2π si U > 0 et V < 0

arctan(VU

)+ π si U < 0

.

On utilise ensuite la même méthode qu’à la question 1. (a). Soit ϕ une fonction (test) boréliennebornée sur R2. On a

E [ϕ(R,Θ)] =

∫u>0,v>0

ϕ(√

u2 + v2, arctan(uv

)) 1

π1{u2+v2<1}dudv,

+

∫u>0,v<0

ϕ(√

u2 + v2, arctan(uv

+ 2π)) 1

π1{u2+v2<1}dudv,

+

∫u<0,v∈R

ϕ(√

u2 + v2, arctan(uv

)+ π

) 1

π1{u2+v2<1}dudv.

En passant en coordonnées polaires et en regroupant les intégrales obtenues, on obtient

E [ϕ(R,Θ)] =

∫R2

1{0≤r<1}1

π1{0≤θ≤2π}rdrdθ.

Ainsi, les variables R et Θ sont indépendantes de densités respectives fR et fθ données par

fR(r) = 2r1{0≤r<1}, fθ =1

2π1{0≤θ≤2π}, (r, θ) ∈ R2,

ce qui donne le résultat cherché.Pour obtenir ensuite la loi de −4 ln(R), on calcule ensuite, pour ϕ une fonction borélienne bornée surR,

E [−4 ln(R)] =

∫ 1

0

ϕ(−4 ln(r))2rdr =

∫ ∞0

ϕ(t)e−t/2dt

2.

On en déduit donc bien que −4 ln(R) suit la loi E(1/2). Comme −4 ln(R) est aussi indépendante de Θ,on obtient en utilisant de résultat de 1. (a) que (X,Y ) est bien un couple de variables indépendantesde loi N (0; 1).2. (b) La méthode pour obtenir un nombre n pair ou impair de variables gaussiennes est la mêmequ’à la question 1. (a). On simule les couples de variables de loi UD par méthode de rejet : commeD ⊂ [−1; 1]2, on simule des variables (U, V ) de loi U[−1;1]2 , tant que (U, V ) n’appartient pas à D.

function X=TP3Ex12SimulLoiNormale_PolaireRejet(n)//Simulation d’un n-échantillon de loi N(0,1) par méthode de Box-Muller//Attention au nombre de variables simulées!m=2*((n/2)-floor(n/2)); // si n=2k, m=0, si n=2k+1, m=1

//Simulation par rejet de (n+m)/2 variables de loi U_DUnif_D=[]while (size(Unif_D,1)<((n+m)/2))

k=((n+m)/2)-size(Unif_D,1); //nb variables restantes à simuler//simulation des U_{[-1;1]^2}U=2*rand(k,1)-1;

16

Page 17: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

V=2*rand(k,1)-1;//on conserve celles qui vérifient la condition "appartenance à D"I=find((U.^2+V.^2)<1);Unif_D=[Unif_D;[U(I),V(I)]];

end//Méthode polaireR=sqrt(Unif_D(:,1).^2+Unif_D(:,2).^2);cosTheta=Unif_D(:,1)./R;sinTheta=Unif_D(:,2)./R;X=[2*sqrt(-log(R)).*cosTheta;2*sqrt(-log(R)).*sinTheta];X=X(1:(length(X)-m));

endfunction

3. Si N ∼ N (0, 1), alors σN + µ ∼ N (µ, σ2).

Simulation de lois mélange

Exercice 13.La fonction suivante renvoie un échantillon de loi pN (m1, s1) + (1− p)N (m2, s2).

function X=TP3Ex13SimulMelangeGaussien(n,m1,s1,m2,s2,p)U=rand(n,1);X=(U<p).*grand(n,1,"nor",m1,s1)+(U>=p).*grand(n,1,"nor",m2,s2);

endfunction

Le script suivant, après avoir chargé la fonction, permet de la tester. Le graphique renvoyé est à laFigure 6.

n=10000;m1=-2;m2=2;s1=1;s2=s1;p=0.5;

//simulationX=TP3Ex13SimulMelangeGaussien(n,m1,s1,m2,s2,p)

//calcul de la densite théoriquevectx=linspace(min(X),max(X),100);densite1=exp(-(vectx-m1).^2/(2*s1))/(sqrt(2*%pi)*s1);densite2=exp(-(vectx-m2).^2/(2*s2))/(sqrt(2*%pi)*s2);densite_theo=p*densite1+(1-p)*densite2;

//calcul de la FDR théoriqueXX=gsort(X,’g’,’i’)FDR1=cdfnor(’PQ’,XX,m1*ones(XX),s1*ones(XX));FDR2=cdfnor(’PQ’,XX,m2*ones(XX),s2*ones(XX));FDR_theo=p*FDR1+(1-p)*FDR2;

scf(1)clfsubplot(211)histplot(100,X)xset("thickness",2)plot2d(vectx,densite_theo,style=5)

17

Page 18: TP 3 - Simulation de variables aléatoires - Corrigé ...lmrs.math.cnrs.fr/Persopage/Chagny/AgregTP3ScilabCorrection2016… · UniversitédeRouen–AgrégationexternedeMathématiques–Préparationàl’épreuvedemodélisation

Université de Rouen – Agrégation externe de Mathématiques – Préparation à l’épreuve de modélisation 2016-2017

xtitle(’Histogramme et densité théorique’)subplot(212)xset("line style",2)xset("thickness",2)plot2d(XX,FDR_theo,style=5)plot2d2(XX,(1:n)/n)xtitle("FDR theorique et empirique" )

0.5N (−2, 1) + 0.5N (2, 1) 0.5N (−2, 0.5) + 0.5N (2, 2)

Figure 6 – Exercice 13. Exemples d’illustration de la qualité d’un échantillon de mélange de deuxgaussiennes.

18