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 :

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

Télécharger

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

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

Télécharger

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$.

Milieu

Si deux points $A$ et $B$ sont gaussiens et indépendants, de même écart-type $\sigma$, leur milieu est gaussien d’écart-type $\frac{\sigma\sqrt{2}}{2}$.

Si deux points $A$ et $B$ sont uniformes, leur milieu ne l’est pas.

Sur une figure CaRMetal comprenant A et B, et leur milieu $M$, le script suivant illustre ceci par un nuage de points :

  1. for(i=0;i<1000;i++){
  2.         x=-2+Math.random();
  3.         y=-1+Math.random();
  4.         Move("A",x,y);
  5.         x=2+Math.random();
  6.         y=1+Math.random();
  7.         Move("B",x,y);
  8.         p=Point(X("M"),Y("M"));
  9.         SetPointType(p,"point");
  10. }

Télécharger

Ici $A$ est uniforme sur $\left[-2 ;-1\right]\times\left[-1 ;0\right]$ et $B$ est uniforme sur $\left[2 ;3\right]\times\left[1 ;2]$ et le milieu $M$ évolue bien dans le carré unité $\left[0 ;1]^2$ mais pas uniformément comme le montre la figure produite :

La densité de $M$ sur le carré unité est donnée par $\varphi(x,y)=max\left(\frac{1}{2}-\left|x-\frac{1}{2}\right|,0\right)\times max\left(\frac{1}{2}-\left|y-\frac{1}{2}\right|,0\right)$ dont les lignes de niveau ressemblent à des carrés arrondis :

La représentation graphique de la densité du milieu en 3D est formée de 4 morceaux de paraboloïde hyperbolique, et ressemble un peu à un tipi, avec 4 crêtes que l’on voit assez bien sur le nuage de points. Voici la représentation graphique telle qu’elle est créée par Euler Math Toolbox :

Vecteur

Si deux points $A$ et $B$ sont gaussiens et indépendants, de même écart-type $\sigma$, le vecteur $\overrightarrrow{AB}$ est gaussien d’écart-type $\sigma\sqrt{2}$.

Mais là encore, si $A$ et $B$ sont uniformes, le vecteur $\overrightarrow{AB}$ n’est pas uniforme :

Sur une figure CaRMetal comprenant A et B, et le point $M$ tel que $\overrightarrow{OM}=\overrightarrow{AB}$, le script suivant illustre ceci par un nuage de points :

  1. for(i=0;i<1000;i++){
  2.         x=-2+Math.random();
  3.         y=-1+Math.random();
  4.         Move("A",x,y);
  5.         x=2+Math.random();
  6.         y=1+Math.random();
  7.         Move("B",x,y);
  8.         p=Point(X("M"),Y("M"));
  9.         SetPointType(p,"point");
  10. }

Télécharger

L’extrémité $M$ du vecteur remplit le carré $\left[3 ;5\right]\times\left[1 ;3\right]$ mais pas uniformément :

La densité de $M$ est analogue à celle du milieu de l’onglet précédent.


Commentaires