distance moyenne entre deux points

Distance moyenne entre deux points aléatoires d’un carré

Distance moyenne entre deux points aléatoires d’un carré: considérons un carré de côté 10 et plaçons en son intérieur deux points de manière aléatoire, et intéressons-nous à la distance moyenne entre les deux points.

D’abord, une figure… en \(\LaTeX\) pour visualiser la distance moyenne entre deux points aléatoires d’un carré

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\clip (-.2,-1) rectangle (11,10.1);
\coordinate (A) at (0,0);
\coordinate (B) at (10,0);
\coordinate (C) at (10,10);
\coordinate (D) at (0,10);
\draw (A) -- (B) node[below,midway,scale=2] {10} -- (C) node[right,midway,scale=2] {10} -- (D) -- cycle;
\pgfmathparse{10*random()}\let\x\pgfmathresult
\pgfmathparse{10*random()}\let\y\pgfmathresult
\fill (\x,\y) circle (1mm);
%
\pgfmathparse{10*random()}\let\xx\pgfmathresult
\pgfmathparse{10*random()}\let\yy\pgfmathresult
\fill (\xx,\yy) circle (1mm);
%
\pgfmathparse{sqrt((\x-\xx)*(\x-\xx) + (\y-\yy)*(\y-\yy))}\let\d\pgfmathresult
\draw[line width=1mm] (\x,\y) -- (\xx,\yy) node[midway,fill=white,scale=1.33] {\d};
\end{tikzpicture}
\end{document}

Simulation en Python pour la distance moyenne entre deux points aléatoires d’un carré

Distance moyenne entre deux points aléatoires

Afin d’avoir une estimation de la distance moyenne que l’on peut espérer obtenir, je vais maintenant simplifier les choses et prendre un carré de côté 1. Ensuite, j’utilise le programme suivant:

from random import random

def dist(): 
    # choisit 2 points au hasard et retourne la distance entre eux
    x1 = random()
    x2 = random()
    y1 = random()
    y2 = random()

    return ( (x1 - x2) ** 2 + (y1 - y2) ** 2 ) ** 0.5

def simul():
    f = 0
    N = 10000
    for k in range(1000):
        m = 0
        for k in range(N):
            m += dist()
        f += m/N

    return f / 1000
>>> for _ in range(5):
       print( simul() )

0.5212892093208212
0.5214659571727084
0.52142262283233
0.5214123153216067
0.5214725134207495

On peut raisonnablement conjecturer que la distance moyenne est d’environ 0,521.

Approche mathématique

Attention, ça va décoller… !

Notons \(A(x_1;y_1)\) et \(B(x_2;y_2)\) les deux points pris de manière aléatoire. La distance AB est donc égale, d’après l’ami Pyth. à :$$\sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}$$et en conséquence, la distance moyenne entre A et B est:$$\int_0^1\int_0^1\int_0^1\int_0^1 \sqrt{(x_2-x_1)^2 + (y_2-y_1)^2} \text{d}x_1\text{d}x_2\text{d}y_1\text{d}y_2.$$

Bon, c’est pas trop fun d’avoir à calculer cette intégrale, alors on va vite trouver un moyen de la simplifier… On va alors noter \(x = |x_1-x_2|\) et \(y=|y_1-y_2|\). L’ami Pyth. nous dit alors que \(AB = \sqrt{x^2+y^2}\). De plus, \(x_1,\ x_2,\ y_1,\ y_2\) suivent la loi uniforme sur [0;1] (la fonction de distribution est 1) donc x et y suivent une loi dite triangulaire (cf. ici) [si w=|u-v| et si u et v suivent une loi uniforme alors w suit une loi triangulaire et sa fonction de répartition est 2(1-w)]. On peut donc exprimer la distance moyenne par:$$4\int_0^1\int_0^1\sqrt{x^2+y^2}(1-x)(1-y)\text{d}x\text{d}y.$$

Maintenant, posons:$$\begin{cases}x = r\cos\theta\\y=r\sin\theta\end{cases}$$avec \(0 \leq\theta\leq\frac{\pi}{4}\) et \(0 \leq r \leq \frac{1}{\cos\theta}\). La distance moyenne devient alors:$$4\int_0^{\pi/4}2\int_0^{1/\cos\theta}\sqrt{r^2\cos^2\theta+r^2\sin^2\theta}(1-r\cos\theta)(1-r\sin\theta)r\text{d}r\text{d}\theta$$soit:$$8 \int_0^{\pi/4}\int_0^{1/\cos\theta} r^2-r^3\cos\theta-r^3\sin\theta+r^4\cos\theta\sin\theta\text{d}r\text{d}\theta.$$L’intégrale intérieure (de variable d’intégration r) peut être facilement calculée:$$8\int_0^{\pi/4}\frac{1}{12\cos^3\theta}-\frac{\tan\theta}{20\cos^3\theta}\text{d}\theta.$$Une primitive de \(\displaystyle \frac{\tan\theta}{\cos^3\theta}\) est \(\displaystyle\frac{1}{3\cos^3\theta}\) mais une primitive de \(\displaystyle \frac{1}{\cos^3\theta}\) est plus corsée à trouver. On arrive tout de même à en trouver une: \(\displaystyle\frac{1}{2}\left( \frac{\tan\theta}{\cos\theta} + \ln\left| \frac{1}{\cos\theta}+\tan\theta \right| \right)\).

À l’aide de ces primitives, on trouve alors que la distance moyenne est exactement égale à:$$\frac{2+\sqrt2+5\ln\big(\sqrt2+1\big)}{15}\approx0,521.$$

Cet article a 5 commentaires

  1. Michel

    Dans le développement de (1−rcosθ)(1−rsinθ) il manque le terme −rsinθ mais heureusement le calcul de l’intégrale intérieure semble avoir tenu compte de ce terme malgré son absence en la ligne précédente

    1. En effet, il n’avait pas été écrit lors de la transcription, chose rectifiée. Merci beaucoup !

  2. Bonjour,
    il faudrait aussi modifier la distance affichée sur le dessin, en tenant compte de l’échelle.
    Car une distance d’environ 4 dans un carré de côté 1…

  3. Avec une division par 10 certainement.

    1. Cela fait des années que je vois ce dessin et je n’avais jamais fait attention ! C’est vrai qu’en dessinant, j’avais pris un carré de côté 10.
      Du coup, j’ai changé le début de l’article afin qu’il soit en cohésion avec mes propos. Merci !

Laisser un commentaire