# Formule de haversine

La formule de haversine permet de déterminer la distance du grand cercle entre deux points d'une sphère, à partir de leurs longitudes et latitudes. Largement utilisée dans la navigation, c'est un cas particulier d'une formule plus générale de la trigonométrie sphérique, la loi des haversines, qui associe les côtés et les angles des triangles sphériques.
La table de haversines remonte au début du XIXe siècle, avec une publication par James Andrew en 1805, même si Florian Cajori cite son utilisation par José Mendoza y Ríos en 1801$^,$. Le terme haversine a été inventé en 1835 par James Inman$^,$.
Le nom haversine renvoie à la fonction haversine, dérivée du sinus verse donnée par haversin(θ) = sin$^2$(θ/2). Avant l'avènement des ordinateurs, l'élimination du facteur 2 rendait plus utile les tables de haversine que de sinus verse. Des tables de logarithmes rendaient utilisables pour la navigation ces formules au XIXe siècle et au début du XXe siècle$^,$$^,$. De nos jours, le haversine est encore utilisé en raison de l'absence d'un coefficient 2 devant la fonction sin$^2$

## La formule de haversine

En prenant deux points sur une sphère, le haversine de l'angle au centre est donné par
    $\operatorname {hav} \left({\frac {d}{r}}\right)=\operatorname {hav} (\varphi _{2}-\varphi _{1})+\cos(\varphi _{1})\cos(\varphi _{2})\operatorname {hav} (\lambda _{2}-\lambda _{1})$
où on a :
* hav est la fonction haversine :
* d est la distance du grand cercle entre les deux points
* r est le rayon de la sphère,
* φ$_1$, φ$_2$: latitude du point 1 et latitude du point 2, en radians
* λ$_1$, λ$_2$: longitude du point 1 et longitude du point 2, en radians
Sur le membre de gauche, d/r est l'angle au centre, en supposant que les angles sont mesurés en radians (on convertit φ et λ des radians aux degrés par un rapport 180/π).
On cherche à obtenir d, on applique donc la fonction haversine inverse, ou utiliser l'arcsinus si on ne dispose pas de tables de calcul ou d'outil informatique
    $d=r\operatorname {hav} ^{-1}(h)=2r\arcsin \left({\sqrt {h}}\right)$
où h vaut hav(d/r), ou plus explicitement:
    $d=2r\arcsin \left({\sqrt {\operatorname {hav} (\varphi _{2}-\varphi _{1})+\cos(\varphi _{1})\cos(\varphi _{2})\operatorname {hav} (\lambda _{2}-\lambda _{1})}}\right)$
    $=2r\arcsin \left({\sqrt {\sin ^{2}\left({\frac {\varphi _{2}-\varphi _{1}}{2}}\right)+\cos(\varphi _{1})\cos(\varphi _{2})\sin ^{2}\left({\frac {\lambda _{2}-\lambda _{1}}{2}}\right)}}\right)$
Lors de l'utilisation de ces formules, on doit s'assurer que la valeur de h ne dépasse pas 1 en raison d'une erreur de virgule flottante (d est un nombre réel pour des valeurs de h entre 0 et 1). h se rapproche de 1 uniquement pour des points aux antipodes de la sphère, où les erreurs numériques commencent à être fort importantes. Étant données les dimensions de d, proches de πR, soit la moitié de la circonférence de la sphère, une petite erreur est souvent négligeable.

## La loi des haversines

Donné une sphère unité, un « triangle » sur la surface de la sphère est défini par l'intersection de grands cercles en trois points u, v, et w sur la sphère. Si les longueurs des trois côtés a (de u à v), b (à partir de u à w), et c (de v à w), et si on pose que l'angle en face du côté c est C, alors la loi des haversines donne :
    $\operatorname {hav} (c)=\operatorname {hav} (a-b)+\sin(a)\sin(b)\,\operatorname {hav} (C).$
Puisque c'est une sphère unité, les longueurs a, b, et c sont égales aux angles (en radians) délimités par ces côtés à partir du centre de la sphère (si la sphère n'est pas une sphère unité, ces longueurs d'arcs sont égales à leur angle au centre multiplié par le rayon de la sphère).
Afin d'obtenir la formule de haversine de la section précédente, on considère le cas où u est le pôle nord, et où on cherche à déterminer la distance d entre les deux points v et w. Dans ce cas, a et b sont π/2 − φ$_{1,2}$ (c'est-à-dire à 90° de latitude), C est la longitude de la séparation Δλ, et c est le d/R recherché. En remarquant que sin(π/2 − φ) = cos(φ), la formule de haversine suit.
Pour dériver la loi des haversines, on commence par la loi sphérique des cosinus :
    $\cos(c)=\cos(a)\cos(b)+\sin(a)\sin(b)\cos(C).\,$
Comme mentionné au-dessus, cette formule permet de trouver c avec approximation lorsque c est petit. À la place, on substitue le cosinus cos(θ) = 1 − 2 hav(θ), et on utilise l'identité trigonométrique : cos(a − b) = cos(a)cos(b) + sin(a)sin(b), pour obtenir la loi de haversines au-dessus.