distance moyenne entre deux points

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

  • Dernière modification de la publication :30 juin 2022
  • Temps de lecture :5 min de lecture
  • Commentaires de la publication :5 commentaires

Loading

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

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
5 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
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

Laurent Fernandez

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…

Laurent Fernandez

Avec une division par 10 certainement.