Points et vecteurs aléatoires

samedi 5 décembre 2009
par  Alain BUSSER


Point

On appelle gaussien un point du plan dont les coordonnées sont normales de même écart-type $\sigma$.

Pour simuler un point gaussien, on utilise la méthode de Box-Muller qui est basée sur le fait que si $M$ est un point gaussien centré sur l’origine $O$, alors le carré de la distance $OM$ suit une loi de Rayleigh de paramètre $\frac{\sigma^2}{2}$, et l’angle avec l’axe des abscisses suit une loi uniforme sur $\left[0 ;2\pi \right]$. Voici l’illustration sous CaRMetal : Après avoir créé un point $M$ (de préférence de forme ponctuelle et avec la trace activée), le script suivant le transforme en un point normal d’espérance $(3 ;2)$ et d’écart-type 1 :

var r,theta;
for(i=0;i<1000;i++){
	r=Math.sqrt(-2*Math.log(Math.random()));
	theta=2*Math.PI*Math.random();
	x=3+r*Math.cos(theta);
	y=2+r*Math.sin(theta);
	Move("M",x,y);
}

Note : Le remplacement de la ligne pour $r$ par r=Math.sqrt(Math.random()) donne un point uniforme sur un disque de rayon 1.

Un point est dit uniforme si ses deux coordonnées sont uniformes. Dans ce cas il décrit un rectangle, qui le plus souvent sera un carré de côté 1. Pour simuler un point uniforme, il suffit de faire

for(i=0;i<1000;i++){
	x=3+Math.random();
	y=2+Math.random();
	Move("M",x,y);
}

Dans ce cas, le carré occupé uniformément par $M$ a pour centre $\left(\frac{7}{2} ;\frac{5}{2}\right)$.

Une application des points uniformes dans un carré de côté 1 est la célèbre méthode de Monte-Carlo pour calculer $\pi$.


Commentaires