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é 1 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\) s’il-vous-plaît!

\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] {1} -- (C) node[right,midway,scale=2] {1} -- (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

Afin d’avoir une estimation de la distance moyenne que l’on peut espérer obtenir, 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

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

print(f / 1000)

J’obtiens “0.5213943752132129” la première fois, “0.5208317781716778” une deuxième fois et “0.5213418328109504” une troisième fois. Je vais m’arrêter là car je vois que les trois valeurs ne sont pas éloignées du tout.

Je peux donc raisonnablement conclure qu’en moyenne, les deux points sont à une distance d’à peu près 0,521 d’un de l’autre.

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

Evariste_Galois1973

Laissez votre message