Les commandes ci-dessous (à recopier telles quelles dans Mathematica)
permettent de calculer rapidement la distance (en kilomètres) entre deux
points quelconques sur la terre.
En première approximation, on suppose que la terre est une sphère
parfaite de rayon égal à 6366 km.
Un point quelconque de la terre est repéré par ses coordonnées
géographiques : sa latitude (nord ou sud) et sa longitude (est ou ouest)
mesurée par convention à partir du méridien de Greenwich. Les unités
habituellement utilisées sont les degrés, minutes et secondes (un degré =
60 minutes, une minute = 60 secondes).
Par exemple, les coordonnées géographiques approximatives de Montréal
sont :
45 degrés 31 minutes de latitude nord et 73 degrés 34 minutes de
longitude ouest
celles de Sydney sont :
33 degrés 53 minutes de latitude sud et 151 degrés 10 minutes de
longitude est.
Un point de la terre peut être décrit par la fonction vectorielle :
x[u_,v_]:= 6366 {Cos[Pi/180 u] Cos[Pi/180 v],Sin[Pi/180 u] Cos[Pi/180
v],Sin[Pi/180 v]}
Pour simplifier l'exposé, il est plus commode de faire les calculs pour
la sphère unité (de rayon égal à 1) et de multplier ensuite le résultat
par le rayon de la terre.
On travaillera donc avec la fonction :
y[u_,v_]:= {Cos[Pi/180 u] Cos[Pi/180 v],Sin[Pi/180 u] Cos[Pi/180
v],Sin[Pi/180 v]}
La commande
ParametricPlot3D[y[u,v]//Evaluate,{u,-180,180},{v,-90,90}]
produit un dessin de cette sphère. Ici, u joue le rôle de la
longitude, comptée négativement vers l'ouest, positivement vers l'est et
v joue le rôle de la latitude, comptée négativement vers le sud,
positivement vers le nord.
Ainsi, Montréal est donné par x[-73.57,45.52] et Sydney par
x[151.17,-33.88].
Sachant que la distance entre deux points est réalisée par un arc de grand cercle passant par ces points, on trouve que pour deux points quelconques x[u1,v1], x[u2,v2] sur la terre, la distance est donnée par:
dist[u1_,v1_,u2_,v2_]:= Module[{norme,y, arc},
norme[vecteur_]:= N[Sqrt[vecteur . vecteur]];
y[u_,v_]:= {Cos[Pi/180 u] Cos[Pi/180 v],Sin[Pi/180 u] Cos[Pi/180
v],Sin[Pi/180 v]};
arc = ArcCos[y[u1,v1] . y[u2,v2]/(norme[y[u1,v1]] norme[y[u2,v2]])];
6366 arc]
Une fois introduite dans Mathematica, cette commande nous donne
pour la distance entre Montréal et Sydney :
dist[-73.57,45.52,151.17,-33.88] ==> 16020.2 km.
Retour à ma page
personnelle