previous up next contents index
Previous: 2.5 Générateurs pour les Up: 2. Générateurs non uniformes Next: 2.7 Générateurs arithmétiques   Contents   Index

Subsections

2.6 Générateurs géométriques

2.6.1 Points dans un rectangle

Pour obtenir une pseudo-instanciation d'un point situé dans le rectangle maths il est clair qu'il suffit d'utiliser l'algorithme 34, algorithme qui se généralise aisément à un pavé de dimension quelconque. La question de la qualité des points obtenus a déjà été discutée, et se ramène à la mesure de l'autocorrélation entre les valeurs successives fournies par rand(). Il est clair que cette qualité se dégrade lorsque la dimension du pavé augmente.


maths


2.6.2 Points dans un disque ou une boule

Pour obtenir des points uniformément répartis dans un disque ou une boule, il suffit de considérer un carré circonscrit au disque (ou un cube circonscrit à la boule) et de rejetter les points situés à l'extérieur. Le facteur de tir, c'est à dire le nombre moyen d'appels de maths par point généré est maths pour un disque et maths pour une boule. On obtient l'algorithme 35.


maths

Une exécution de 100 lots de 100 exécutions de cet algorithme conduit à maths, maths, avec une variance par lots de maths et maths (les valeurs théoriques étant maths et maths). En reportant ces 10000 points dans un repère cartésien, on obtient la figure 2.13(a). Si l'on considère les valeurs obtenues pour maths, on obtient l'histogramme de la figure 2.13(b). Comme il se doit, on constate que les pseudo-instanciations de maths se répartissent uniformément, avec maths et maths.

Figure 2.13: Points 'equir'epartis dans le disque unit'e (maths instanciations).
[Instanciations des points.]maths[Instanciations de maths.]maths

2.6.3 Points équirépartis sur une circonférence

Pour engendrer des points uniformément répartis sur une circonférence, une première idée est de partir de points maths uniformément répartis dans le disque unité et de les "ramener vers le bord" par maths. Cette technique ne prend pas en compte les incertitudes entachant les coordonnées du point maths , et donc la valeur de maths. On peut se débarasser du problème en rejetant les points maths tels que maths, ce qui ne se produit qu'une fois sur 4. Une autre technique consiste à générer des nombres maths dans l'intervalle maths, puis à calculer maths.

Le choix entre les deux méthodes dépend de la vitesse de calcul des fonctions trigonométriques sur l'ordinateur considéré.

2.6.4 Points équirépartis sur une sphère

Lorsque des points sont uniformément répartis sur une sphère de rayon maths, chaque coordonnée constitue une variable aléatoire uniformément répartie dans maths. Partons en effet de maths. Pour une sphère d'épaisseur infinitésimale on a maths et de là : maths, montrant que maths et maths sont deux variables indépendantes, chacune uniformément répartie dans son intervalle de variation. On a par ailleurs les évidences maths et maths .

Soit donc maths une pseudo-instanciation de la variable "point uniformément dans le disque unité" (cf algorithme 35). La quantité maths est uniformément répartie dans maths et donc maths est uniformément répartie dans maths. De plus l'angle maths défini par maths est uniformément réparti dans maths et est indépendant de maths. Il reste donc à transformer maths en maths par l'homothétie nécessaire pour que maths. On aboutit à l'algorithme 36.


maths


previous up next contents index
Previous: 2.5 Générateurs pour les Up: 2. Générateurs non uniformes Next: 2.7 Générateurs arithmétiques   Contents   Index


douillet@ensait.fr
2005-01-04