Haversine-Formel
From Wikipedia, the free encyclopedia
Die Haversine-Formel (seltener auch deutsch Semiversus-Formel) ist eine Gleichung aus der sphärischen Trigonometrie, mit der sich die Großkreisentfernung zwischen zwei Punkten auf einer Kugeloberfläche aus deren Längen- und Breitengraden berechnen lässt. Sie ist in der Navigation von großer Bedeutung und stellt einen Spezialfall des allgemeineren Gesetzes der Haversine dar, das die Seiten und Winkel sphärischer Dreiecke in Beziehung setzt.
| Haversine-Formel | |
|---|---|
| |
| Verwendete Symbole |
Geschichte
Frühe Entwicklung
Die Haversine-Funktion wurde erstmals 1801 in Navigationstabellen des spanischen Astronomen José de Mendoza y Ríos verwendet, wie der Mathematikhistoriker Florian Cajori dokumentierte.[1] Mendoza y Ríos publizierte verschiedene Tabellen, die die Haversine-Methode (seiner Erfindung) verwendeten, um die Berechnungen der nautischen Astronomie und Navigation zu vereinfachen.[2] Seine Tabellen halfen bei der Berechnung der Längengrade durch Monddistanzen – eine der wichtigsten Navigationsmethoden des 18. und frühen 19. Jahrhunderts.
Die erste bekannte englische Tabelle mit Haversinen wurde 1805 von James Andrew unter dem Namen "Squares of Natural Semi-Chords" veröffentlicht.[3] Diese Bezeichnung verweist auf die geometrische Bedeutung der Funktion als Quadrat der halben Sehnenlänge.
Namensgebung und Verbreitung
Der Begriff "Haversine" wurde 1835 von James Inman in der dritten Ausgabe seines Werkes "Navigation and Nautical Astronomy: For the Use of British Seamen" geprägt.[4] Er führte diese neue Tabelle ein, um die Berechnung von Entfernungen zwischen zwei Punkten auf der Erdoberfläche mittels sphärischer Trigonometrie zu vereinfachen. Der Name setzt sich aus "ha" (für "half", englisch für "halb") und "versine" zusammen und bedeutet somit "halber Sinus versus".
James Inman (1776–1859) war ein englischer Mathematiker und Astronom, Professor für Mathematik am Royal Naval College in Portsmouth und Autor der "Inman's Nautical Tables".[5] Seine Einführung der Haversine-Funktion vereinfachte die Formeln der sphärischen Trigonometrie erheblich und seine Tabellen wurden von allen Navigatoren ausgiebig genutzt.
Historische Bedeutung
Vor dem Aufkommen von Computern erwies sich die Eliminierung von Divisionen und Multiplikationen mit dem Faktor zwei als so praktisch, dass Tabellen mit Haversine-Werten und Logarithmen in Navigations- und Trigonometrie-Lehrbüchern des 19. und frühen 20. Jahrhunderts enthalten waren.[6] Roger Sinnott beschrieb 1984 im Magazin Sky & Telescope ("Virtues of the Haversine"), wie die Haversine-Formel selbst auf einem einfachen TRS-80 Computer in BASIC programmiert werden konnte, um die Winkeldistanz zwischen Sternen genau zu berechnen.[7]
Mathematische Grundlagen
Die Haversine-Funktion
Die Haversine-Funktion ist definiert als:
Die Haversine-Funktion berechnet die halbe Versine des Winkels θ oder das Quadrat der halben Sehnenlänge des Winkels auf einem Einheitskreis (Kugel).[8] Sie ist verwandt mit der älteren Versine-Funktion:
Die Haversine-Formel
Für zwei Punkte auf einer Kugel mit den Koordinaten (φ₁, λ₁) und (φ₂, λ₂) – wobei φ den Breitengrad und λ den Längengrad bezeichnet – lautet die Haversine-Formel:[9]
Dabei ist:
- d die gesuchte Entfernung
- r der Radius der Kugel (für die Erde etwa 6371 km)
- Δφ = φ₂ - φ₁ (Differenz der Breitengrade)
- Δλ = λ₂ - λ₁ (Differenz der Längengrade)
Das Gesetz der Haversine
Für ein "Dreieck" auf der Oberfläche einer Einheitskugel, das durch Großkreise definiert wird, die drei Punkte u, v und w verbinden, besagt das Gesetz der Haversine:[10]
Dabei sind a, b und c die Seitenlängen des sphärischen Dreiecks und C ist der Winkel gegenüber der Seite c.
Numerische Eigenschaften
Numerische Stabilität
Ein wesentlicher Vorteil der Haversine-Formel ist ihre numerische Stabilität, besonders für kleine Distanzen.[11] Da die Haversine-Formel Sinusfunktionen verwendet, vermeidet sie das Problem der Auslöschung, das bei der Verwendung des sphärischen Kosinusgesetzes auftreten kann.
Beim sphärischen Kosinusgesetz kann es bei nahe beieinander liegenden Punkten (z. B. einen Kilometer voneinander entfernt auf der Erde) dazu kommen, dass cos(d/R) = 0,99999999 ergibt, was zu ungenauen Ergebnissen führt.[12] Die Haversine-Formel umgeht dieses Problem durch die Verwendung der Sinusfunktion, die für kleine Winkel numerisch stabiler ist.
Genauigkeitsgrenzen
Die Haversine-Formel ist nur eine Näherung, wenn sie auf die Erde angewandt wird, da diese keine perfekte Kugel ist.[13] Der "Erdradius" R variiert von 6356,752 km an den Polen bis 6378,137 km am Äquator. Noch entscheidender ist, dass der Krümmungsradius einer Nord-Süd-Linie auf der Erdoberfläche an den Polen (≈6399,594 km) 1 % größer ist als am Äquator (≈6335,439 km), was zur Folge hat, dass die Haversine-Formel im Extremfall bis zu 0,5 % vom exakten Wert abweichen kann.[14]
Genauere Methoden, die die Elliptizität der Erde berücksichtigen, werden durch die Vincenty-Formel und andere Formeln für geographische Distanzen angegeben.
Vergleich mit anderen Methoden
Haversine vs. Vincenty
Die Haversine-Formel und die Vincenty-Formel sind die zwei am häufigsten verwendeten Methoden zur Distanzberechnung auf der Erdoberfläche:[15]
| Eigenschaft | Haversine-Formel | Vincenty-Formel |
|---|---|---|
| Erdmodell | Kugel | Ellipsoid |
| Genauigkeit | ±0,3 % | ±0,5 mm |
| Rechenaufwand | Einfach, wenig rechenintensiv | Komplex, iterativ |
| Numerische Stabilität | Sehr gut für alle Distanzen | Kann bei antipodalen Punkten versagen |
| Anwendungsbereich | Web- und Mobilanwendungen | Geodätische Berechnungen |
Beispiel: Die Distanz zwischen Pune (Indien) und Sydney (Australien) beträgt mit der Haversine-Formel 6236,243 Meilen und mit der Vincenty-Formel 6231,892 Meilen.[16]
Praktische Anwendung
Navigation und Verkehr
Die Haversine-Formel berechnet die kürzeste Distanz zwischen zwei Punkten auf einer Kugel unter Verwendung ihrer Breiten- und Längengrade entlang der Oberfläche und ist wichtig für die Navigation.[17] Sie findet Anwendung in:
- Luftfahrt: Berechnung von Flugrouten und -distanzen
- Seefahrt: Bestimmung von Schifffahrtsrouten
- GPS-Navigation: Routenberechnung in Navigationsgeräten
Geographische Informationssysteme
Die Haversine-Formel wird in verschiedenen Bereichen wie Astronomie, Geodäsie und Navigation verwendet.[18] Moderne Anwendungen umfassen:
- Kartenanwendungen und Geodatenanalyse
- Standortbasierte Dienste
- Distanzberechnungen in Datenbanken
Implementierung
Ein Beispiel für die Implementierung in PHP:[19]
<?php
function haversine($lat1, $lon1, $lat2, $lon2) {
// Radius der Erde in Kilometern
$earthRadius = 6371;
// Differenzen in Radiant umrechnen
$dLat = deg2rad($lat2 - $lat1);
$dLon = deg2rad($lon2 - $lon1);
// Breiten in Radiant umrechnen
$lat1 = deg2rad($lat1);
$lat2 = deg2rad($lat2);
// Haversine-Formel anwenden
$a = sin($dLat / 2) * sin($dLat / 2) +
sin($dLon / 2) * sin($dLon / 2) *
cos($lat1) * cos($lat2);
$c = 2 * asin(sqrt($a));
// Distanz berechnen
return $earthRadius * $c;
}
// Beispielverwendung
$lat1 = 38.898; // Washington D.C. (Weißes Haus)
$lon1 = -77.037;
$lat2 = 48.858; // Paris (Eiffelturm)
$lon2 = 2.294;
$distance = haversine($lat1, $lon1, $lat2, $lon2);
echo "Entfernung: " . round($distance, 2) . " km\n";
?>
Beispielberechnung
Die Haversine-Formel kann verwendet werden, um die ungefähre Entfernung zwischen dem Weißen Haus in Washington, D.C. (Breitengrad 38,898° N, Längengrad 77,037° W) und dem Eiffelturm in Paris (Breitengrad 48,858° N, Längengrad 2,294° E) zu berechnen.[20]
Schrittweise Berechnung:
- Umrechnung in Radiant
- Berechnung der Differenzen: Δφ = 0,1737 rad, Δλ = 1,3734 rad
- Anwendung der Haversine-Formel
- Ergebnis: d ≈ 6.166 km
Verwandte Funktionen
Siehe auch
Literatur
- James Inman: Navigation and Nautical Astronomy: For the Use of British Seamen. 3. Auflage. W. Woodward, C. & J. Rivington, London 1835.
- José de Mendoza y Ríos: Memoria sobre algunos métodos nuevos de calcular la longitud por las distancias lunares. Imprenta Real, Madrid 1801.
- Florian Cajori: A History of Mathematical Notations. Band 2, 3. Auflage. Open Court Publishing Company, Chicago 1952, S. 172.
- Glen Robert van Brummelen: Heavenly Mathematics: The Forgotten Art of Spherical Trigonometry. Princeton University Press, 2013, ISBN 978-0-691-14892-2.
- R. W. Sinnott: Virtues of the Haversine. In: Sky and Telescope. Band 68, Nr. 2, 1984, S. 159.
Weblinks
- Calculate distance and bearing between two Latitude/Longitude points – Interaktive Implementierung der Haversine-Formel
- Haversine formula – Implementierungen in verschiedenen Programmiersprachen