Quelle est l'erreur approximative du théorème de Pythagore par rapport à la formule de Haversine dans la mesure des distances sur la sphère à différentes échelles?

31

Beaucoup de gens, lorsqu'ils essaient pour la première fois de calculer les distances entre deux paires longitude / latitude, se demandent si le théorème de Pythagore fonctionne comme une fonction de distance appropriée.

Le plus souvent, les gens répondent «non, le théorème de Pythagore ne fonctionne que sur un plan euclidien 2D». Cependant, les gens mentionnent rarement l'effet de l'échelle et de l'emplacement sur la sphère sur l'inexactitude du théorème de Pythagore.

L'idée de base étant à très petite échelle, la surface d'une sphère ressemble beaucoup à un avion. À de très grandes échelles, ses distances le long de la surface sont plus incurvées et donc la différence entre le théorème de Pythagore incorrect et la formule de Haversine correcte est plus grande.

Quelqu'un connaît-il une formule ou une règle empirique qui vous indique la différence entre les deux mesures de distance en fonction de l'échelle de la distance que vous essayez de mesurer?

Je pense que l'avoir explicitement aiderait à:

  1. expliquer pourquoi le théorème de Pythagore n'est pas parfait; et
  2. en faisant savoir aux personnes qui recherchent des distances plus "approximatives" quand Pythagore servira réellement leurs objectifs.
Amos Budde
la source

Réponses:

35

Utiliser la formule de Pythagore sur des positions données en latitude et longitude n'a pas autant de sens que, par exemple, calculer l'aire d'un cercle en utilisant la formule d'un carré: bien qu'il produise un nombre, il n'y a aucune raison de supposer que cela devrait fonctionner.

Bien qu'à petite échelle, toute surface lisse ressemble à un plan, la précision de la formule de Pythagore dépend des coordonnées utilisées. Lorsque ces coordonnées sont la latitude et la longitude sur une sphère (ou ellipsoïde), nous pouvons nous attendre à ce que

  1. Les distances le long des lignes de longitude seront raisonnablement précises.

  2. Les distances le long de l'équateur seront raisonnablement précises.

  3. Toutes les autres distances seront erronées, en proportion approximative des différences de latitude et de longitude.

L'erreur dépend du point de départ et d'arrivée des calculs de distance. Cependant, parce que la sphère et l'ellipsoïde ont une symétrie circulaire autour de l'axe, l'erreur ne dépend que de la différence des longitudes, donc pour étudier cette erreur, nous pourrions aussi bien prendre le point d'origine pour être au premier méridien. Parce que la sphère et l'ellipsoïde sont symétriques sous une réflexion nord-sud, nous n'avons qu'à étudier les points d'origine dans l'hémisphère sud. Pour un tel point, nous pouvons dessiner une carte de contour de l'erreur relative, égale à [Calcul de Pythagore] / [Distance vraie].

La formule de Pythagore, utilisant le rayon moyen de la terre, est

Pythagorean distance =  6371000. * Sqrt[dx^2 + dy^2]] * pi / 180 meters

dx est la différence de longitudes et dy est la différence de latitudes, toutes deux en degrés. (La différence dans les valeurs de longitude est réduite modulo 360 pour donner la valeur correcte de dx lors du franchissement de l'antiméridien; ne pas le faire introduirait des erreurs artificiellement importantes qui ne nous disent rien sur la formule de Pythagore elle-même.)

Les graphiques suivants montrent l'erreur relative par rapport à la distance correcte sur l'ellipsoïde WGS 84 pour des latitudes de -70 à 0 par incréments de 10 degrés. La coordonnée horizontale est la différence de longitudes et la coordonnée verticale est la latitude de la destination. Les régions claires ont une erreur relativement petite: les lignes de contour sont à 1, 1,01, 1,02, 1,05, 1,1, 1,2, 1,5, 2, etc. (Les zones d'un blanc pur dans les coins sont des endroits où l'erreur dépasse la plage de ces contours .) Les points rouges indiquent le point d'origine.

Parcelles

Les bandes blanches verticales témoignent de l'exactitude des attentes (1): les distances pythagoriciennes sont précises lorsqu'il y a une petite différence de longitudes. Les bandes blanches horizontales aux basses latitudes confirment l'attente (2): près de l'équateur, les distances horizontales sont raisonnablement précises. Sinon, comme en témoignent les vastes régions plus sombres, à toutes les autres distances, la formule de Pythagore est mauvaise.


Nous pouvons faire des estimations quantitatives du maximumerreur atteinte pour des paires de points voisins (à, disons, à quelques centaines de kilomètres les uns des autres). L'échelle - en utilisant une valeur appropriée pour le rayon - est vraie le long du méridien mais le long d'un cercle de latitude, elle se trompe approximativement de la sécante de la latitude. Par exemple, à une latitude de 40 degrés, la sécante est de 1,31, ce qui implique que la formule de Pythagore donnera des distances d'environ 31% trop grandes dans la direction est-ouest. (Cela est évident dans le tracé de contour supérieur droit, pour un point d'origine à -40 degrés de latitude, où la région immédiatement est-ouest du point rouge se situe entre les contours 1,2 et 1,5.) De courtes distances dans toutes les autres directions seront trop grand dans une certaine mesure entre 0% et 31%; des distances plus longues peuvent encore plus errer (comme le montrent les courbes de niveau).

whuber
la source
1
Il faut vraiment une fonctionnalité de «réponse préférée» pour des réponses comme celles-ci.
Devdatta Tengshe
2
@DevdattaTengshe: il exige explicitement qu'elle soit saine d'esprit: "où dx est la différence de longitudes (exprimée entre -180 et 180) et dy est la différence de latitudes, toutes deux en degrés."
lynxlynxlynx
1
C'est 2, puisque 2 * 179 est supérieur à 180?
lynxlynxlynx
1
@whuber: Je le sais et vous le savez, mais la plupart des gens qui essaient aveuglément d'utiliser la géométrie pythagoricienne / euclidienne, n'y pensent même pas ou ne le savent pas. Il serait utile que ce fait (vous devez utiliser le Mod 360) soit présent dans votre réponse.
Devdatta Tengshe
1
@ToolmakerSteve C'est bien - j'utilise souvent cette correction - mais j'espère que son utilisateur comprend qu'il s'agit d'une approximation et que pour de grandes distances et dans quelques autres circonstances, cela peut être loin de la réalité.
whuber
8

J'ai interprété "la distance de Pythagone" comme "la distance euclidienne". Ensuite, la réponse est la même que "quelle est la différence entre la longueur d'un accord d'un cercle et le périmètre sous-tendu?" Soit le rayon R, l'angle sous-tendu est A (radians).

perimeter = L = A*R
chord = C = 2*sin(A/2)*R
diff = D = L - C
     = (A-2*sin(A/2))*R
     = A^3/24 * R  (for A small)
     = L^3/(24*R^2) (eliminating A)
relative error = D/L
               = (L/R)^2/24

Pour la terre, remplacez R = 6400 km. Soit dit en passant, appelez-la «distance du grand cercle» (ce qu'elle est) et non «distance haversine» (comment elle est calculée). (Ceci est similaire à la distinction entre la distance de Pythagore et la distance euclidienne.)

cffk
la source
Suivant votre raisonnement, vous pouvez remplacer L et faire l'estimation seulement A.
lynxlynxlynx
Pouvez-vous élaborer l'expression que vous obtenez? Comment ce A ^ 3/24 * R est-il sorti?
curieux
Développez sin (A / 2) pour A small, en utilisant sin (x) = x - x ^ 3/6, et vous obtenez ce résultat.
cffk
5

Pour une réponse complète et rigoureuse, regardez la réponse de whuber ci-dessus. Je vais répondre de manière plus visuelle et basique.

La raison pour laquelle les calculs planaires / pythagoriciens sont inappropriés est que les calculs reposent sur le fait que le déplacement d'un pas dans n'importe quelle direction est un changement constant d'amplitude, peu importe où vous vous trouvez sur le graphique.

graphique simple

La longitude n'est pas conforme à cette exigence. Les lignes de longitude convergent aux pôles.

globe montrant la convergence

C'est pourquoi lorsque nous aplatissons la Terre pour refléter les règles d'un graphe planaire, nous obtenons une distorsion.

Carte de projection Mercator

Si vous regardez cette carte, il semble que le Groenland ait à peu près la taille de l'Afrique et que l'Antarctique ait à peu près la taille de l'Eurasie. Bien sûr, ce n'est pas vrai. Le Groenland et l'Antarctique sont tous deux extrêmement déformés car proches des pôles où converge la longitude.

vue du globe de l'hémisphère nord

Comme vous pouvez le voir, le Groenland a à peu près la taille du Mexique.

vue des gants de l'hémisphère sud

Et l'Antarctique a à peu près la taille de l'Afrique australe (pas de l'Afrique du Sud).

Comme vous pouvez le voir, les erreurs que vous obtiendrez en appliquant des formules pythagoriciennes dépendent davantage de l'emplacement des points que de la distance entre les points. Avec la mise en garde importante que des distances plus longues grossiront toutes les erreurs. C'est pourquoi les solutions planaires, bien que tentantes, sont un mauvais choix. Les distorsions vous mordront et ce n'est pas aussi simple qu'un décalage. Les erreurs sont le résultat d'une déformation de la terre pour s'adapter à des règles inappropriées.

Erik
la source
En fait, ce que vous montrez est un type d'erreur différent. Utilisé correctement, le théorème de Pythagore calcule la distance de longitude en fonction de la longueur le long de la ligne de latitude où vous vous trouvez, donc multiplié parcos(lat) . Utilisé de cette façon, les erreurs sont petites pour de petites distances, n'importe où sur une sphère (sauf si vous passez le pôle N ou S). Ce que vous montrez est une distorsion d'une projection de la terre entière, où inévitablement certaines régions sont extrêmement déformées. "les erreurs que vous obtiendrez ... dépendent plus de l'endroit ... que de la distance" n'est pas vrai si vous l'utilisez * cos(lat).
ToolmakerSteve