fbpx
Wikipedia

Haversine formula

The haversine formula determines the great-circle distance between two points on a sphere given their longitudes and latitudes. Important in navigation, it is a special case of a more general formula in spherical trigonometry, the law of haversines, that relates the sides and angles of spherical triangles.

The first table of haversines in English was published by James Andrew in 1805,[1] but Florian Cajori credits an earlier use by José de Mendoza y Ríos in 1801.[2][3] The term haversine was coined in 1835 by James Inman.[4][5]

These names follow from the fact that they are customarily written in terms of the haversine function, given by hav(θ) = sin2(θ/2). The formulas could equally be written in terms of any multiple of the haversine, such as the older versine function (twice the haversine). Prior to the advent of computers, the elimination of division and multiplication by factors of two proved convenient enough that tables of haversine values and logarithms were included in 19th- and early 20th-century navigation and trigonometric texts.[6][7][8] These days, the haversine form is also convenient in that it has no coefficient in front of the sin2 function.

A diagram illustrating great-circle distance (drawn in red) between two points on a sphere, P and Q. Two antipodal points, u and v are also shown.

Formulation edit

Let the central angle θ between any two points on a sphere be:

 

where:

The haversine formula allows the haversine of θ (that is, hav(θ)) to be computed directly from the latitude (represented by φ) and longitude (represented by λ) of the two points:

 

where

  • φ1, φ2 are the latitude of point 1 and latitude of point 2,
  • λ1, λ2 are the longitude of point 1 and longitude of point 2.

Finally, the haversine function hav(θ), applied above to both the central angle θ and the differences in latitude and longitude, is

 

The haversine function computes half a versine of the angle θ, or the squares of half chord of the angle on a unit circle (sphere).

To solve for the distance d, apply the archaversine (inverse haversine) to h = hav(θ) or use the arcsine (inverse sine) function:

 

or more explicitly:

 [9]

When using these formulae, one must ensure that h does not exceed 1 due to a floating point error (d is only real for 0 ≤ h ≤ 1). h only approaches 1 for antipodal points (on opposite sides of the sphere)—in this region, relatively large numerical errors tend to arise in the formula when finite precision is used. Because d is then large (approaching πR, half the circumference) a small error is often not a major concern in this unusual case (although there are other great-circle distance formulas that avoid this problem). (The formula above is sometimes written in terms of the arctangent function, but this suffers from similar numerical problems near h = 1.)

As described below, a similar formula can be written using cosines (sometimes called the spherical law of cosines, not to be confused with the law of cosines for plane geometry) instead of haversines, but if the two points are close together (e.g. a kilometer apart, on the Earth) one might end up with cos(d/R) = 0.99999999, leading to an inaccurate answer. Since the haversine formula uses sines, it avoids that problem.

Either formula is only an approximation when applied to the Earth, which is not a perfect sphere: the "Earth radius" R varies from 6356.752 km at the poles to 6378.137 km at the equator. More importantly, the radius of curvature of a north-south line on the earth's surface is 1% greater at the poles (≈6399.594 km) than at the equator (≈6335.439 km)—so the haversine formula and law of cosines cannot be guaranteed correct to better than 0.5%.[citation needed] More accurate methods that consider the Earth's ellipticity are given by Vincenty's formulae and the other formulas in the geographical distance article.

The law of haversines edit

 
Spherical triangle solved by the law of haversines

Given a unit sphere, a "triangle" on the surface of the sphere is defined by the great circles connecting three points u, v, and w on the sphere. If the lengths of these three sides are a (from u to v), b (from u to w), and c (from v to w), and the angle of the corner opposite c is C, then the law of haversines states:[10]

 

Since this is a unit sphere, the lengths a, b, and c are simply equal to the angles (in radians) subtended by those sides from the center of the sphere (for a non-unit sphere, each of these arc lengths is equal to its central angle multiplied by the radius R of the sphere).

In order to obtain the haversine formula of the previous section from this law, one simply considers the special case where u is the north pole, while v and w are the two points whose separation d is to be determined. In that case, a and b are π/2φ1,2 (that is, the, co-latitudes), C is the longitude separation λ2λ1, and c is the desired d/R. Noting that sin(π/2φ) = cos(φ), the haversine formula immediately follows.

To derive the law of haversines, one starts with the spherical law of cosines:

 

As mentioned above, this formula is an ill-conditioned way of solving for c when c is small. Instead, we substitute the identity that cos(θ) = 1 − 2 hav(θ), and also employ the addition identity cos(ab) = cos(a) cos(b) + sin(a) sin(b), to obtain the law of haversines, above.

Proof edit

One can prove the formula:

 

by transforming the points given by their latitude and longitude into cartesian coordinates, then taking their dot product.

Consider two points   on the unit sphere, given by their latitude   and longitude  :

 

These representations are very similar to spherical coordinates, however latitude is measured as angle from the equator and not the north pole. These points have the following representations in cartesian coordinates:

 

From here we could directly attempt to calculate the dot product and proceed, however the formulas become significantly simpler when we consider the following fact: the distance between the two points will not change if we rotate the sphere along the z-axis. This will in effect add a constant to  . Note that similar considerations do not apply to transforming the latitudes - adding a constant to the latitudes may change the distance between the points. By choosing our constant to be  , and setting  , our new points become:

 

With   denoting the angle between   and  , we now have that:

 

See also edit

References edit

  1. ^ van Brummelen, Glen Robert (2013). Heavenly Mathematics: The Forgotten Art of Spherical Trigonometry. Princeton University Press. ISBN 9780691148922. 0691148929. Retrieved 2015-11-10.
  2. ^ de Mendoza y Ríos, Joseph (1795). Memoria sobre algunos métodos nuevos de calcular la longitud por las distancias lunares: y aplicacion de su teórica á la solucion de otros problemas de navegacion (in Spanish). Madrid, Spain: Imprenta Real.
  3. ^ Cajori, Florian (1952) [1929]. A History of Mathematical Notations. Vol. 2 (2 (3rd corrected printing of 1929 issue) ed.). Chicago: Open court publishing company. p. 172. ISBN 978-1-60206-714-1. 1602067147. Retrieved 2015-11-11. The haversine first appears in the tables of logarithmic versines of José de Mendoza y Rios (Madrid, 1801, also 1805, 1809), and later in a treatise on navigation of James Inman (1821). (NB. ISBN and link for reprint of second edition by Cosimo, Inc., New York, 2013.)
  4. ^ Inman, James (1835) [1821]. Navigation and Nautical Astronomy: For the Use of British Seamen (3 ed.). London, UK: W. Woodward, C. & J. Rivington. Retrieved 2015-11-09. (Fourth edition: [1].)
  5. ^ "haversine". Oxford English Dictionary (2nd ed.). Oxford University Press. 1989.
  6. ^ H. B. Goodwin, The haversine in nautical astronomy, Naval Institute Proceedings, vol. 36, no. 3 (1910), pp. 735–746: Evidently if a Table of Haversines is employed we shall be saved in the first instance the trouble of dividing the sum of the logarithms by two, and in the second place of multiplying the angle taken from the tables by the same number. This is the special advantage of the form of table first introduced by Professor Inman, of the Portsmouth Royal Navy College, nearly a century ago.
  7. ^ W. W. Sheppard and C. C. Soule, Practical navigation (World Technical Institute: Jersey City, 1922).
  8. ^ E. R. Hedrick, Logarithmic and Trigonometric Tables (Macmillan, New York, 1913).
  9. ^ Gade, Kenneth (2010). "A Non-singular Horizontal Position Representation". Journal of Navigation. 63 (3): 395–417. Bibcode:2010JNav...63..395G. doi:10.1017/S0373463309990415. ISSN 0373-4633.
  10. ^ Korn, Grandino Arthur; Korn, Theresa M. (2000) [1922]. "Appendix B: B9. Plane and Spherical Trigonometry: Formulas Expressed in Terms of the Haversine Function". Mathematical handbook for scientists and engineers: Definitions, theorems, and formulas for reference and review (3rd ed.). Mineola, New York: Dover Publications. pp. 892–893. ISBN 978-0-486-41147-7.

Further reading edit

  • U. S. Census Bureau Geographic Information Systems FAQ, (content has been moved to What is the best way to calculate the distance between 2 points?)
  • R. W. Sinnott, "Virtues of the Haversine", Sky and Telescope 68 (2), 159 (1984).
  • Deriving the haversine formula, Ask Dr. Math (Apr. 20–21, 1999).[dead link] 20 January 2020 at the Wayback Machine
  • Romuald Ireneus 'Scibor-Marchocki, , Elementary-Geometry Trigonometry web page (1997).
  • W. Gellert, S. Gottwald, M. Hellwich, H. Kästner, and H. Küstner, The VNR Concise Encyclopedia of Mathematics, 2nd ed., ch. 12 (Van Nostrand Reinhold: New York, 1989).

External links edit

  • Implementations of the haversine formula in 91 languages at rosettacode.org and in 17 languages on codecodex.com 2018-08-14 at the Wayback Machine
  • Other implementations in C++, C (MacOS), Pascal 2019-01-16 at the Wayback Machine, Python, Ruby, JavaScript, PHP 2018-08-12 at the Wayback Machine,Matlab 2020-05-13 at the Wayback Machine, MySQL

haversine, formula, haversine, formula, determines, great, circle, distance, between, points, sphere, given, their, longitudes, latitudes, important, navigation, special, case, more, general, formula, spherical, trigonometry, haversines, that, relates, sides, . The haversine formula determines the great circle distance between two points on a sphere given their longitudes and latitudes Important in navigation it is a special case of a more general formula in spherical trigonometry the law of haversines that relates the sides and angles of spherical triangles The first table of haversines in English was published by James Andrew in 1805 1 but Florian Cajori credits an earlier use by Jose de Mendoza y Rios in 1801 2 3 The term haversine was coined in 1835 by James Inman 4 5 These names follow from the fact that they are customarily written in terms of the haversine function given by hav 8 sin2 8 2 The formulas could equally be written in terms of any multiple of the haversine such as the older versine function twice the haversine Prior to the advent of computers the elimination of division and multiplication by factors of two proved convenient enough that tables of haversine values and logarithms were included in 19th and early 20th century navigation and trigonometric texts 6 7 8 These days the haversine form is also convenient in that it has no coefficient in front of the sin2 function A diagram illustrating great circle distance drawn in red between two points on a sphere P and Q Two antipodal points u and v are also shown Contents 1 Formulation 2 The law of haversines 3 Proof 4 See also 5 References 6 Further reading 7 External linksFormulation editLet the central angle 8 between any two points on a sphere be 8 d r displaystyle theta frac d r nbsp where d is the distance between the two points along a great circle of the sphere see spherical distance r is the radius of the sphere The haversine formula allows the haversine of 8 that is hav 8 to be computed directly from the latitude represented by f and longitude represented by l of the two points hav 8 hav f 2 f 1 cos f 1 cos f 2 hav l 2 l 1 displaystyle operatorname hav left theta right operatorname hav left varphi 2 varphi 1 right cos left varphi 1 right cos left varphi 2 right operatorname hav left lambda 2 lambda 1 right nbsp where f1 f2 are the latitude of point 1 and latitude of point 2 l1 l2 are the longitude of point 1 and longitude of point 2 Finally the haversine function hav 8 applied above to both the central angle 8 and the differences in latitude and longitude is hav 8 sin 2 8 2 1 cos 8 2 displaystyle operatorname hav theta sin 2 left frac theta 2 right frac 1 cos theta 2 nbsp The haversine function computes half a versine of the angle 8 or the squares of half chord of the angle on a unit circle sphere To solve for the distance d apply the archaversine inverse haversine to h hav 8 or use the arcsine inverse sine function d r archav h 2 r arcsin h displaystyle d r operatorname archav h 2r arcsin left sqrt h right nbsp or more explicitly d 2 r arcsin hav f 2 f 1 1 hav f 1 f 2 hav f 1 f 2 hav l 2 l 1 2 r arcsin sin 2 f 2 f 1 2 1 sin 2 f 2 f 1 2 sin 2 f 2 f 1 2 sin 2 l 2 l 1 2 2 r arcsin sin 2 f 2 f 1 2 cos 2 l 2 l 1 2 cos 2 f 2 f 1 2 sin 2 l 2 l 1 2 2 r arcsin sin 2 f 2 f 1 2 cos f 1 cos f 2 sin 2 l 2 l 1 2 displaystyle begin aligned d amp 2r arcsin left sqrt operatorname hav varphi 2 varphi 1 1 operatorname hav varphi 1 varphi 2 operatorname hav varphi 1 varphi 2 cdot operatorname hav lambda 2 lambda 1 right amp 2r arcsin left sqrt sin 2 left frac varphi 2 varphi 1 2 right left 1 sin 2 left frac varphi 2 varphi 1 2 right sin 2 left frac varphi 2 varphi 1 2 right right cdot sin 2 left frac lambda 2 lambda 1 2 right right amp 2r arcsin left sqrt sin 2 left frac varphi 2 varphi 1 2 right cdot cos 2 left frac lambda 2 lambda 1 2 right cos 2 left frac varphi 2 varphi 1 2 right cdot sin 2 left frac lambda 2 lambda 1 2 right right amp 2r arcsin left sqrt sin 2 left frac varphi 2 varphi 1 2 right cos varphi 1 cdot cos varphi 2 cdot sin 2 left frac lambda 2 lambda 1 2 right right end aligned nbsp 9 When using these formulae one must ensure that h does not exceed 1 due to a floating point error d is only real for 0 h 1 h only approaches 1 for antipodal points on opposite sides of the sphere in this region relatively large numerical errors tend to arise in the formula when finite precision is used Because d is then large approaching pR half the circumference a small error is often not a major concern in this unusual case although there are other great circle distance formulas that avoid this problem The formula above is sometimes written in terms of the arctangent function but this suffers from similar numerical problems near h 1 As described below a similar formula can be written using cosines sometimes called the spherical law of cosines not to be confused with the law of cosines for plane geometry instead of haversines but if the two points are close together e g a kilometer apart on the Earth one might end up with cos d R 0 99999999 leading to an inaccurate answer Since the haversine formula uses sines it avoids that problem Either formula is only an approximation when applied to the Earth which is not a perfect sphere the Earth radius R varies from 6356 752 km at the poles to 6378 137 km at the equator More importantly the radius of curvature of a north south line on the earth s surface is 1 greater at the poles 6399 594 km than at the equator 6335 439 km so the haversine formula and law of cosines cannot be guaranteed correct to better than 0 5 citation needed More accurate methods that consider the Earth s ellipticity are given by Vincenty s formulae and the other formulas in the geographical distance article The law of haversines edit nbsp Spherical triangle solved by the law of haversinesGiven a unit sphere a triangle on the surface of the sphere is defined by the great circles connecting three points u v and w on the sphere If the lengths of these three sides are a from u to v b from u to w and c from v to w and the angle of the corner opposite c is C then the law of haversines states 10 hav c hav a b sin a sin b hav C displaystyle operatorname hav c operatorname hav a b sin a sin b operatorname hav C nbsp Since this is a unit sphere the lengths a b and c are simply equal to the angles in radians subtended by those sides from the center of the sphere for a non unit sphere each of these arc lengths is equal to its central angle multiplied by the radius R of the sphere In order to obtain the haversine formula of the previous section from this law one simply considers the special case where u is the north pole while v and w are the two points whose separation d is to be determined In that case a and b are p 2 f1 2 that is the co latitudes C is the longitude separation l2 l1 and c is the desired d R Noting that sin p 2 f cos f the haversine formula immediately follows To derive the law of haversines one starts with the spherical law of cosines cos c cos a cos b sin a sin b cos C displaystyle cos c cos a cos b sin a sin b cos C nbsp As mentioned above this formula is an ill conditioned way of solving for c when c is small Instead we substitute the identity that cos 8 1 2 hav 8 and also employ the addition identity cos a b cos a cos b sin a sin b to obtain the law of haversines above Proof editOne can prove the formula hav 8 hav f 2 f 1 cos f 1 cos f 2 hav l 2 l 1 displaystyle operatorname hav left theta right operatorname hav left varphi 2 varphi 1 right cos left varphi 1 right cos left varphi 2 right operatorname hav left lambda 2 lambda 1 right nbsp by transforming the points given by their latitude and longitude into cartesian coordinates then taking their dot product Consider two points p 1 p 2 displaystyle bf p 1 p 2 nbsp on the unit sphere given by their latitude f displaystyle varphi nbsp and longitude l displaystyle lambda nbsp p 2 l 2 f 2 p 1 l 1 f 1 displaystyle begin aligned bf p 2 amp lambda 2 varphi 2 bf p 1 amp lambda 1 varphi 1 end aligned nbsp These representations are very similar to spherical coordinates however latitude is measured as angle from the equator and not the north pole These points have the following representations in cartesian coordinates p 2 cos l 2 cos f 2 sin l 2 cos f 2 sin f 2 p 1 cos l 1 cos f 1 sin l 1 cos f 1 sin f 1 displaystyle begin aligned bf p 2 amp cos lambda 2 cos varphi 2 sin lambda 2 cos varphi 2 sin varphi 2 bf p 1 amp cos lambda 1 cos varphi 1 sin lambda 1 cos varphi 1 sin varphi 1 end aligned nbsp From here we could directly attempt to calculate the dot product and proceed however the formulas become significantly simpler when we consider the following fact the distance between the two points will not change if we rotate the sphere along the z axis This will in effect add a constant to l 1 l 2 displaystyle lambda 1 lambda 2 nbsp Note that similar considerations do not apply to transforming the latitudes adding a constant to the latitudes may change the distance between the points By choosing our constant to be l 1 displaystyle lambda 1 nbsp and setting l l 2 l 1 displaystyle lambda lambda 2 lambda 1 nbsp our new points become p 2 cos l cos f 2 sin l cos f 2 sin f 2 p 1 cos 0 cos f 1 sin 0 cos f 1 sin f 1 cos f 1 0 sin f 1 displaystyle begin aligned bf p 2 amp cos lambda cos varphi 2 sin lambda cos varphi 2 sin varphi 2 bf p 1 amp cos 0 cos varphi 1 sin 0 cos varphi 1 sin varphi 1 amp cos varphi 1 0 sin varphi 1 end aligned nbsp With 8 displaystyle theta nbsp denoting the angle between p 1 displaystyle bf p 1 nbsp and p 2 displaystyle bf p 2 nbsp we now have that cos 8 p 1 p 2 p 1 p 2 cos l cos f 1 cos f 2 sin f 1 sin f 2 sin f 2 sin f 1 cos f 2 cos f 1 cos f 2 cos f 1 cos l cos f 2 cos f 1 cos f 2 f 1 cos f 2 cos f 1 1 cos l hav 8 hav f 2 f 1 cos f 2 cos f 1 hav l 2 l 1 displaystyle begin aligned cos theta amp langle bf p 1 bf p 2 rangle langle bf p 1 bf p 2 rangle cos lambda cos varphi 1 cos varphi 2 sin varphi 1 sin varphi 2 amp sin varphi 2 sin varphi 1 cos varphi 2 cos varphi 1 cos varphi 2 cos varphi 1 cos lambda cos varphi 2 cos varphi 1 amp cos varphi 2 varphi 1 cos varphi 2 cos varphi 1 1 cos lambda Rightarrow operatorname hav left theta right amp operatorname hav left varphi 2 varphi 1 right cos varphi 2 cos varphi 1 operatorname hav left lambda 2 lambda 1 right end aligned nbsp See also editSight reduction Vincenty s formulaeReferences edit van Brummelen Glen Robert 2013 Heavenly Mathematics The Forgotten Art of Spherical Trigonometry Princeton University Press ISBN 9780691148922 0691148929 Retrieved 2015 11 10 de Mendoza y Rios Joseph 1795 Memoria sobre algunos metodos nuevos de calcular la longitud por las distancias lunares y aplicacion de su teorica a la solucion de otros problemas de navegacion in Spanish Madrid Spain Imprenta Real Cajori Florian 1952 1929 A History of Mathematical Notations Vol 2 2 3rd corrected printing of 1929 issue ed Chicago Open court publishing company p 172 ISBN 978 1 60206 714 1 1602067147 Retrieved 2015 11 11 The haversine first appears in the tables of logarithmic versines of Jose de Mendoza y Rios Madrid 1801 also 1805 1809 and later in a treatise on navigation of James Inman 1821 NB ISBN and link for reprint of second edition by Cosimo Inc New York 2013 Inman James 1835 1821 Navigation and Nautical Astronomy For the Use of British Seamen 3 ed London UK W Woodward C amp J Rivington Retrieved 2015 11 09 Fourth edition 1 haversine Oxford English Dictionary 2nd ed Oxford University Press 1989 H B Goodwin The haversine in nautical astronomy Naval Institute Proceedings vol 36 no 3 1910 pp 735 746 Evidently if a Table of Haversines is employed we shall be saved in the first instance the trouble of dividing the sum of the logarithms by two and in the second place of multiplying the angle taken from the tables by the same number This is the special advantage of the form of table first introduced by Professor Inman of the Portsmouth Royal Navy College nearly a century ago W W Sheppard and C C Soule Practical navigation World Technical Institute Jersey City 1922 E R Hedrick Logarithmic and Trigonometric Tables Macmillan New York 1913 Gade Kenneth 2010 A Non singular Horizontal Position Representation Journal of Navigation 63 3 395 417 Bibcode 2010JNav 63 395G doi 10 1017 S0373463309990415 ISSN 0373 4633 Korn Grandino Arthur Korn Theresa M 2000 1922 Appendix B B9 Plane and Spherical Trigonometry Formulas Expressed in Terms of the Haversine Function Mathematical handbook for scientists and engineers Definitions theorems and formulas for reference and review 3rd ed Mineola New York Dover Publications pp 892 893 ISBN 978 0 486 41147 7 Further reading editU S Census Bureau Geographic Information Systems FAQ content has been moved to What is the best way to calculate the distance between 2 points R W Sinnott Virtues of the Haversine Sky and Telescope 68 2 159 1984 Deriving the haversine formula Ask Dr Math Apr 20 21 1999 dead link Archived 20 January 2020 at the Wayback Machine Romuald Ireneus Scibor Marchocki Spherical trigonometry Elementary Geometry Trigonometry web page 1997 W Gellert S Gottwald M Hellwich H Kastner and H Kustner The VNR Concise Encyclopedia of Mathematics 2nd ed ch 12 Van Nostrand Reinhold New York 1989 External links editImplementations of the haversine formula in 91 languages at rosettacode org and in 17 languages on codecodex com Archived 2018 08 14 at the Wayback Machine Other implementations in C C MacOS Pascal Archived 2019 01 16 at the Wayback Machine Python Ruby JavaScript PHP Archived 2018 08 12 at the Wayback Machine Matlab Archived 2020 05 13 at the Wayback Machine MySQL Retrieved from https en wikipedia org w index php title Haversine formula amp oldid 1189679575, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.