TD : Générateur de nombres aléatoires 1. Génération

January 16, 2018 | Author: Anonymous | Category: Mathématiques, Statistiques et probabilités
Share Embed Donate


Short Description

Download TD : Générateur de nombres aléatoires 1. Génération...

Description

TD : Générateur de nombres aléatoires Dorat Rémi

1. Génération de nombres aléatoires et calcul de distribution

p2

2. Test du générateur aléatoire

p2

3. Conception et test d'un autre générateur

p4

4. Test d'un autre générateur

p5

5- Construire des bruits non uniformes

p6

1

1. Génération de nombres aléatoires et calcul de distribution

Le but de ce TD est de tester le générateur aléatoire d'Excel, de spécifier d'autres générateurs de nombres aléatoires et de les tester également. La dernière étape consiste à tester un générateur de nombres aléatoires gaussiens. Tester un générateur aléatoire, ie s'assurer d'avoir un générateur non biaisé, c'est s'assurer des résultats des études que l'on fera en l'utilisant. Par exemple, les simulations Monte-Carlo, qui sont utilisées en finance, reposent sur la possibilité de générer des valeurs aléatoires non biaisées.



Remplir la colonne A de nombre entiers tirés au hasard dans [0;9] en utilisant la fonction de tirage aléatoires de nombres entiers fournie par Excel.



Calculer la distribution sur chacune des valeurs : combien de 1 dans la colonne A, combien de 2, etc... Dire si cette distribution paraît ou non uniforme, ie si il n'y a pas un biais des tirages en faveur de l'une ou l'autre des valeurs. Tracer cette distribution avec des histogrammes.



[A passer en première approche] Quelle procédure pourrait on envisager pour tester de manière plus formelle l'hypothèse suivante : la distribution est uniforme ? Implémenter une telle procédure.

2. Test du générateur aléatoire

Le fait qu'un générateur aléatoire permette de reproduire convenablement la distribution d'une distribution uniforme est un bon premier test (on parle de test d'homogénéité). Néanmoins, il convient de lui adjoindre d'autres tests. En effet, soit la séquence de tirages : 123456789123456789123... Cette séquence passe le test d'homogénéité et pourtant elle n'est pas admissible au titre d'un tirage aléatoire. Diverses méthodologies pourraient être envisagées, on pourrait tester si la probabilité que deux valeurs particulières se suivent est significativement différente de 0.01. On propose ici un test classique ou "test du poker". Il consiste à reorganiser la série des tirages en des groupes de 4 valeurs. On peut alors tester la fréquence d'un groupe où les 4 valeurs sont différentes, la fréquence d'un groupe où deux valeurs sont identiques etc... Comme on peut calculer les probabilités théoriques de ces valeurs, on peut ensuite comparer les fréquences obtenues sur la série des tirages aux probabilités théoriques. Le nom de "test du poker" est un peu abusif puisqu'ici les tests peuvent se faire avec répétition. En revanche, le fait de tirer des nombres avec répétition facilite le dénombrement pour celui qui veut obtenir

2

les probabiltés théoriques . L'obtention des valeurs théoriques est expliquée dans ce qui suit, le lecteur pourra sauter cette étape pour directement consulter le tableau qui résume ces valeurs théoriques : ●

La probabilité d'avoir 4 chiffres différents est 10 (choix du premier chiffre) * 9 (choix du second chiffre parmi ceux qui restent) * 8 (choix du troisième chiffre parmi ceux qui restent) * 7 (choix du dernier 4

chiffre parmi ceux qui restent), soit 10*9*8*7 qui est à rapporter au nombre total de cas possibles 10 . Soit une probabilité de 0.504 que les 4 chiffres soient différents ●

La probabilité d'avoir 4 chiffres identiques est 10 rapporté à 10000 : il existe en effet 10 groupes de 4 chiffres identiques.



La probabilité d'avoir 3 chiffres identiques est 10 (choix de la hauteur des 3 chiffres identiques)*9 (choix de la hauteur du chiffre à 1 occurrence )*4 (4 manières de placer le chiffre isolé dans la 4

séquence) que l'on rapporte à 10 ●

La probabilité d'avoir 2 paires de chiffres est 10 (choix de la première paire)*9 (choix de la seconde 4

paire) * 3 (nombres des séquences possibles) que l'on rapporte à 10 ●

La probabilité d'une paire se déduit des probabilités précédentes, comme 1 diminué de la somme de ces probabilités.

On obtient les probabilités théoriques suivantes pour un groupe de 4 valeurs :

Fréquence théorique Les chiffres sont tous différents

0.504

La liste comporte une paire

0.432

La liste comporte deux paires

0.027

La liste comporte trois chiffres identiques

0.036

La liste comporte quatre chiffres

0.001

identiques ●

Tirer des groupes de 4 entiers aléatoires entre 0 et 9 ou 1 et 10. On pourra par exemple tirer un valeur en A1, une valeur en A2, une en A3 et une en A4. On obtient ainsi le tirage d'un premier groupe sur la ligne A. On procède de même sur la ligne B.



Calculer les fréquences observées de paire, des cas de 4 chiffres identiques... et comparer les aux fréquences théoriques : que constate t'on ?

3

En proposant des groupes de taille supérieure, on améliore encore la qualité de l'approximation (le dénombrement devenant cependant significativement plus difficile pour établir les probabilités théoriques). On donne les probabilités théoriques dans ce cas :

Fréquence théorique Les chiffres sont tous différents

0.3024

La liste comporte une paire

0.5040

La liste comporte deux paires

0.1080

La liste comporte trois chiffres identiques

0.072

La liste comporte quatre chiffres

0.0045

identiques La liste comporte trois chiffres identiques

0.0090

et une paire La liste comporte cinq chiffres identiques



0.0001

[A passer en première approche] On propose de prévoir une implémentation pour des mains de 5 chiffres au lieu de 4. A partir de cette main, on peut tester la série des nombres générés par Excel.



[A passer en première approche] Jusqu'à maintenant, on a utilisé des mains de 4-5 chiffres avec répétition : le nom de test du poker ne semble donc pas très justifié. Pourrait on envisager une solution pour implémenter des tirages de main de poker ?

3. Conception et test d'un autre générateur

On introduit un nouveau générateur ou k-générateur pour générer des quadruplets de valeurs entières dans [0:9]. Par exemple, pour k=83, ce générateur fonctionne ainsi : ●

Tirer un nombre aléatoire quelconque dans [0:1] (par exemple 0.6754)



On multiplie ce nombre par k. 83*0.6754=56.0582



On a généré 4 nombres aléatoires qui sont les décimales du nouveau nombre : 0 5 8 2



On utilise la décimale de 56.0582 : 83*0.0582=4.8306



On a généré 4 nombres aléatoires qui sont les décimales du nouveau nombre : 8 3 0 6



etc

4



Tester si pour 83 on passe le "test du poker". Si on le passe, chercher au moins une autre valeur qui le passe et une autre valeur qui ne le passe pas.

4. Conception et test d'un autre générateur

On propose d'étudier un générateur classique en lui faisant passer les mêmes tests qu'aux autres générateurs. Il s'agit du générateur à Congruence Linéaire introduit par Lehmer en 1949. Soit la suite

 X n

, on a

a ∈ℕ , m∈ℕ , c ∈ℕ



 X 0 ∈ 〚 0 ; m 〚



X n1= a∗X nc mod m

La suite

 X n



peut prendre

m

m

est appelé le module et

valeurs, les entiers entre

X0

0

la graine.

et

m

, soit un nombre fini de valeurs : elle est

donc nécessairement périodique. Il s'agit surtout de trouver des paramètres produisant des séries à période longue. Dans un premier temps, on propose de tester des séries de données.



Donner plusieurs manières de déterminer si il y a une période dans la série des nombres générés.



Tester manuellement différentes séries de paramètres (différentes valeurs de m et c ) et noter celles pour lesquelles vous constatez un cycle.

Un théorème donne une condition sur les paramètres qui garantit de trouver une série longue. Si note t la période du générateur à congruence linéaire :

m est premier avec c  pas de facteurs commun tout nombre premier qui divise m divise aussi a−1 si 4 divise m alors 4 divise a−1



ssi

GCL est de période maximale t=m

Est ce qu'un tel générateur est un bon générateur au vu des tests précédents ?

5

5- Construire des bruits non uniformes

Dans un certain nombres de cas et notament pour le cas des simulations Monte Carlo, on peut vouloir utiliser des bruits qui ne sont pas des tirages uniformes comme ceux qui ont été utilisés dans les parties précédentes, mais des bruits normaux par exemple. Pour ce faire, on utilise la méthode de Box-Muller (voir l'article wikipedia sur le sujet pour plus de précision). Soit

U [0 ;1]

X1

. Alors, les deux VAR

e

Z1

X2 et

deux VAR (variables aléatoires réelles) suivant une loi uniforme

Z2

suivent une loi normale centrée réduite :

Z 1= −2∗ln  X 1 ∗cos 2∗∗X 2  Z 2 =−2∗ln X 1 ∗sin 2∗∗X 2 



Etablir une forme de distribution de probabilité cumulée pour une série de valeurs normales centrée réduites générées avec cette méhode.



Tracer cette distribution en meme temps que la distribution théorique disponible via les fonctions Excels.

6

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF