Pour obtenir une pseudo-instanciation d'un point situé dans le rectangle
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.
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
par point généré est
pour
un disque et
pour une boule. On obtient l'algorithme 35.
Une exécution de 100 lots de 100 exécutions de cet algorithme conduit
à
,
,
avec une variance par lots de
et
(les valeurs théoriques étant
et
).
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
, on obtient l'histogramme de la
figure 2.13(b). Comme il se doit, on constate
que les pseudo-instanciations de
se répartissent uniformément,
avec
et
.
|
[Instanciations des points.]
[Instanciations de
|
Pour engendrer des points uniformément répartis sur une circonférence,
une première idée est de partir de points
uniformément répartis dans le disque unité et de les "ramener
vers le bord" par
.
Cette technique ne prend pas en compte les incertitudes entachant
les coordonnées du point
, et donc la valeur
de
. On peut se débarasser du problème en rejetant les points
tels que
, ce qui ne se
produit qu'une fois sur 4. Une autre technique consiste à générer
des nombres
dans l'intervalle
,
puis à calculer
.
Le choix entre les deux méthodes dépend de la vitesse de calcul des fonctions trigonométriques sur l'ordinateur considéré.
Lorsque des points sont uniformément répartis sur une sphère de rayon
, chaque coordonnée constitue une variable aléatoire uniformément
répartie dans
. Partons en effet de
.
Pour une sphère d'épaisseur infinitésimale on a
et de là :
,
montrant que
et
sont deux variables indépendantes,
chacune uniformément répartie dans son intervalle de variation. On
a par ailleurs les évidences
et
.
Soit donc
une pseudo-instanciation de la
variable "point uniformément dans le disque unité" (cf algorithme
35). La quantité
est
uniformément répartie dans
et donc
est uniformément répartie dans
. De plus l'angle
défini par
est uniformément réparti dans
et est indépendant
de
. Il reste donc à transformer
en
par l'homothétie nécessaire pour que
.
On aboutit à l'algorithme 36.