arctan2
Die mathematische Funktion arctan2, auch atan2, ist eine Erweiterung der inversen Winkelfunktion Arkustangens und wie diese eine Umkehrfunktion der Winkelfunktion Tangens.
Sie nimmt zwei reelle Zahlen als Argumente, im Gegensatz zum normalen Arkustangens, welcher nur eine reelle Zahl zum Argument hat. Damit hat sie genügend Information, um den Funktionswert in einem Wertebereich von (also allen vier Quadranten) ausgeben zu können, und muss sich nicht (wie der normale Arkustangens) auf zwei Quadranten beschränken.
Der volle Wertebereich wird häufig benötigt, beispielsweise bei der Umrechnung ebener kartesischer Koordinaten in Polarkoordinaten: wenn der Funktion [1] die beiden kartesischen Koordinaten als Argumente gegeben werden, erhält man den Polarwinkel , der sich im richtigen Quadranten befindet, d. h. der die Beziehungen
- und
- mit
erfüllt.
Ein mathematisch nützlicher Zusatzeffekt ist, dass Winkel, bei denen der Tangens eine Polstelle hat, nämlich die Winkel durch ganz normale reelle Koordinaten spezifiziert werden können, nämlich durch anstatt
Das kommt von der Definitionsmenge der Funktion der „gelochten“ Ebene, welche mit einer Gruppenstruktur versehen werden kann, die isomorph ist zur multiplikativen Gruppe der komplexen Zahlen ohne die Null. Diese Gruppen sind direktes Produkt der Kreisgruppe der Drehungen und der Gruppe der Streckungen um einen Faktor größer Null, der multiplikativen Gruppe Erstere Gruppe lässt sich durch den Polarwinkel parametrisieren, zweitere durch den (positiven) Betrag
Lösung: Zwei Argumente
Zwei vom Ursprung verschiedene Punkte und spezifizieren denselben Polarwinkel, wenn sie auf demselben Strahl durch liegen. Dann sind sie bezüglich der durch
definierten Relation äquivalent.[2] Dagegen ist der Tangenswert von Polarwinkeln auch dann derselbe, wenn der Strahl um oder , also genau in den Gegenstrahl, weitergedreht ist. Informationstheoretisch betrachtet lässt der Tangens die Vorzeicheninformation von (rot in den Formeln) unter den Tisch fallen:
man nehme nur .
Da der Tangens mit periodisch ist und der Funktionsbegriff Rechtseindeutigkeit verlangt, muss für seine Umkehrung (Spiegelung an der 1. Winkelhalbierenden) sein Definitionsbereich mindestens auf die Periodenlänge eingeschränkt werden – in diesem Artikel auf das Intervall (s. Abb. 1). Das hat zur Folge, dass die Umkehrfunktion Arkustangens kein größeres Bild als haben kann. Dabei ist die ganze reelle Achse als Definitionsbereich des Arkustangens zulässig, weil das Bild des Tangens unter gerade ist.
Um zu einem vollwertigen Polarwinkel zu kommen, gibt es in vielen Programmiersprachen und Tabellenkalkulationen eine erweiterte Funktion, die mit den beiden kartesischen Koordinaten beschickt wird und damit genügend Information hat, um den Polarwinkel modulo (bspw. im Intervall wie der Abb. 3) und in allen vier Quadranten zurückgeben zu können.
Implementierungen
Die erste Implementierung war nicht später als im Jahr 1966 in der Programmiersprache Fortran.[3] Heute ist die Funktion auch in anderen Programmiersprachen vorhanden.
Die Funktion hat häufig den Namen , so bei den Programmiersprachen Fortran 77[4], C, C++, Java, Python, Matlab, R, iWork Numbers[5], LibreOffice Calc[6]. In vielen dieser Programmiersprachen (nicht bspw. bei LibreOffice Calc) ist die Reihenfolge der Argumente umgekehrt, also die -Koordinate das erste Argument – und das, obwohl es hier auf die Polarachse, die üblicherweise mit der -Achse identifiziert wird, in ganz besonderem Maße ankommt. Denn es hat gleich Null zu sein für genau die Punkte auf dieser Achse. Deshalb sollte es, wenn es um die übliche -Ebene geht, bei der Erstnennung der -Achse bleiben; die -Achse ergänzt dabei nur noch die Richtung, in welche der Polarwinkel zunimmt. In Common Lisp, wo optionale Argumente existieren, erlaubt die -Funktion, die -Koordinate als optionales zweites Argument zu übergeben,[7] wobei die Standardannahme ist.
Ein weiterer vorkommender Name ist , so bei den Tabellenkalkulationen Excel[8] und OpenOffice Calc.
In Mathematica ist eine Funktion definiert, bei der das erste Argument weggelassen werden kann.
Seit der Einführung des FPU-Befehlssatzes x87 von Intel im Jahr 1980 kennen die x87-Prozessoren einen Befehl mit im Prinzip derselben Reihenfolge der Operanden und demselben Ergebnis.[9]
- Zur Beachtung
- In diesem Artikel wird die Reihenfolge und der Name verwendet.
Formel
Die sechs Fälle der Funktionsdefinition
oder | ||||||
[1] | für | (Quadranten und ) | ||||
für | (Quadrant ) | |||||
für | (oberer[10]⁄unterer Rand der Bildmenge) | |||||
für | (Quadrant ) | |||||
für | ||||||
für |
mit als der „gelochten“ Ebene lassen sich zur Formel
vereinigen. Die Funktion ist bis auf den Fall (die Sprungstelle, s. u.) punktsymmetrisch am Ursprung, in Formeln:
- .
Dem Argument wird manchmal der Funktionswert zugeordnet, wie auch andere Sonderfälle, bspw. Not a Number, unterschiedlich behandelt werden.
Der Genauigkeitsverlust der Division wegen lässt sich für bspw. durch die Umformung
verringern (s. jedoch auch den Abschnitt #Genauigkeitskontrolle).
Sprungstelle und kontinuierliche Drehung des Polarwinkels
Bei zunehmendem Polarwinkel , das heißt bei einer Drehung im mathematischen Sinn (und entgegen dem Uhrzeigersinn), so bei der Wanderung vom Quadranten (entspricht ) über die Quadranten [11] (entspricht ) und (entspricht ) zum Quadranten (entspricht ), beginnt eine Periode in der Abb. 3 unten am (Strahl durch und den) Punkt[12]
, |
von wo es auf dem roten Graphen von links unten nach rechts oben (immer in „ONO-Richtung“) weitergeht. Wie üblich soll in der Nähe der Null infinitesimal unterhalb und infinitesimal oberhalb bedeuten. Die Drehung führt weiter in den Quadranten über den (auf der 1. Winkelhalbierenden liegenden und in der Abb. 3 durch eine kleine rote Kreisfläche markierten) Punkt
, |
zum Punkt
, | |||||||||
der einer der Polstellen des Tangens entspricht und deshalb für den Arkustangens ein unendlich ferner Punkt ist. Der -Wert wechselt (auf der waagrechten und strich-punktierten Asymptote) von nach , ein Sachverhalt, den auch der rote Kringel rechts im Quadranten als -Senke und der rote Knubbel links im Quadranten als -Quelle ausdrücken soll. Aus Sicht der Funktion geschieht aber nichts weiter, als dass der -Wert sich von zu ändert.
Die weitere Drehung führt durch den Quadranten über den markierten Punkt
zum Punkt
, | |||||||||
der im Koordinatenursprung liegt, und von dort durch den Quadranten über den markierten Punkt
, |
zum Punkt
. | |||||||||
Dieser Punkt entspricht der anderen Polstelle des Tangens. Bei ihm findet dasselbe Zusammenfallen der Senke im Quadranten mit der Quelle im Quadranten statt wie oben beim Argument . Die weitere Drehung durch den Quadranten führt über den markierten Punkt
schließlich zur Sprungstelle
. |
Dieser Fall kann durch leichte Abwandlung der Bedingungen in der Formel entweder dem Fall in der Zeile darüber oder dem darunter zugeschlagen werden, wonach das Intervall der Bildmenge an seinem oberen Ende abgeschlossen und am unteren Ende offen ist, also , oder eben umgekehrt .
Hat die Berechnung des Polarwinkels eine kontinuierliche Drehung zu begleiten, dann kann die Funktion so angepasst oder erweitert werden, dass
- die Sprungstelle an einem beliebigen Punkt (einem beliebigen Strahl) des Definitionsbereichs liegt;
- auch bei einer Drehung über die Periodenlänge hinaus der Polarwinkel kontinuierlich zu- bzw. abnimmt. Hier kommt die Umlaufzahl ins Spiel.
Beispielsweise können in Anwendungen, bei denen es auf die Stetigkeit innerhalb einer Halbebene ankommt, folgende Formeln nützlich sein:
für | (Quadranten und ) | |||
für | (Quadranten und ) | |||
für | (Quadranten und ) | |||
für | (Quadranten und ) | |||
für | (Quadranten und ) | |||
für | (Quadranten und ) | |||
für | (Quadranten und ) |
Die 7 Zeilen sind so angeordnet, dass die Werte zweier über einander stehender Funktionen im gemeinsamen Definitionsgebiet übereinstimmen. Wegen der Sprungstelle von beim Strahl ist Gleichheit mit einer der stetigen Funktionen nicht möglich.
Isomorphie zur Kreisgruppe
Die präzise mathematische Darstellung der folgenden wohlbekannten Abbildung bedarf sowohl auf der Urbild- wie auf der Bild-Seite zusätzlicher Hilfsabbildungen.
Auf der Definitionsmenge von kann man (in Analogie zur Definition der Addition in den rationalen Zahlen) die Verknüpfung
definieren.[13] Sie bleibt wohldefiniert unter der obigen Äquivalenzrelation , und die Faktormenge
erweist sich als kommutative Gruppe mit dem neutralen Element und der Inversenbildung
- .[14]
Genauso wohldefiniert ist die induzierte Abbildung
weil äquivalente Repräsentanten denselben -Wert liefern. Aus der Summenformel des Arkustangens folgt
Wendet man auf die Funktion die Funktion
an, dann ergibt sich ein Homomorphismus mit
auf die Kreisgruppe , dessen Kern das neutrale Element mit ist. Sind und mit der natürlichen Topologie ausgestattet, dann ist in beiden Richtungen stetig, mithin ein Homöomorphismus.
Genauigkeitskontrolle
Mit einer kleinen Vorbereitung und mit nur einem Vergleich mehr als in den Fallunterscheidungen der Formel lässt sich das Konvergenzverhalten der Taylorreihe (des Arkustangens) kontrollieren und ggf. verbessern.
Der Winkel von zeichnet sich dadurch aus, dass er ein ganzzahliger Bruchteil, nämlich ein Achtel, des vollen Winkels von ist und gleichzeitig sein Strahl durch ganzzahlige Koordinaten geht. Quadranten lassen sich in der Koordinatenebene so ausrichten, dass ihre Begrenzungen (die definitionsgemäß stets Strahlen sind) parallel zu den Koordinatenachsen zu liegen kommen. Bei Oktanten[15] kommen noch die Winkelhalbierenden als Begrenzungen hinzu. Die Feststellung, zu welchem der acht Oktanten ein Punkt gehört, ist bei einer derartigen Ausrichtung besonders einfach.
- Schreibweise
- In diesem § werden in den Beziehungen zwischen Strahlen und Winkeln die gewohnten Operatoren mit der darübergeschriebenen Tilde verwendet, um auszudrücken, dass ein Strahl eine Äquivalenzklasse ist. Und bei den Vergleichsoperatoren wird der Strahl stets mit dem ihm am nächsten liegenden Winkel verglichen.
- Um Verwechslungen mit Koordinaten zu vermeiden, wird in den Dezimaldarstellungen statt des Kommas der Dezimalpunkt verwendet.
Im Folgenden wird versucht, einen beliebigen Strahl resp. Winkel mit einfachen und umkehrbaren Drehungen in das an der Polarachse symmetrische Winkelintervall zu drehen. Dann ist nämlich der Absolutbetrag des Arguments in der Taylorreihe des Arkustangens .
In einer ersten Drehung wird der Strahl um gedreht, d. h. der Strahl
gebildet. Der Oktant, in den dieser Strahl fällt, sei der -te, und die Nummerierung der Oktanten sei so gewählt, dass der erste das Winkelintervall abdeckt:
Nummer des Oktanten seine untere und obere Begrenzung | ||||||||||||
die obere als Strahl | ||||||||||||
die obere als Polarwinkel |
Vom derart bestimmten Oktanten wird der obere begrenzende Strahl genommen, der durch einen Punkt aus der in der Tabelle gezeigten Menge von Strahlen charakterisiert werden kann. (Alle diese Punkte haben ganzzahlige Koordinaten, und beim ersten Oktanten ist bspw. .) Dann ist oder
- .
Es folgt eine Drehung von , die zweite, jetzt um , so dass
im gewünschten Winkelintervall ist. Um diese zweite Drehung von mit ganzzahligem muss das Ergebnis, wenn der Arkustangens berechnet ist, korrigiert werden.
Die erste Drehung muss nur ungefähr betragen. Wenn sie davon etwas abweicht, etwa oder auch beträgt, dann wird der Strahl möglicherweise nicht so gut in das an der Polarachse symmetrische Winkelintervall eingepasst. Das Konvergenzverhalten verschlechtert sich aber wegen nur geringfügig auf .
Nach der zweiten Drehung kann die Taylorreihe (an der Entwicklungsstelle )
entwickelt und die abschließende Korrektur
vorgenommen werden.
- Beispiele
- Der Ausgangsstrahl sei , was einem Winkel von ca. entspricht. Durch die -Addition von kommen wir auf , also in den -ten Oktanten. Dessen obere Begrenzung liegt bei . Wir bilden die Differenz und berechnen mit und korrigieren mit zum Endergebnis .
- Der Ausgangsstrahl sei , was einem Winkel von ca. entspricht. Durch die -Addition von kommen wir auf , also in den -ten Oktanten. Das obere Ende des Oktanten liegt bei . Da dieser Oktant die Sprungstelle enthält, setzen wir bei diesem -ten Oktanten im Fall den Korrekturwinkel auf . Wir bilden die Differenz und berechnen mit und korrigieren mit .
Verbindung zum komplexen Logarithmus
Man kann die Funktion für auch über den Hauptwert des komplexen Logarithmus definieren als
mit der Argument-Funktion . Diese Funktion wird zum Beispiel in der inversen Kinematik benutzt, um Gelenkeinstellungen korrekt zu beschreiben. Dies ist allerdings nur eine andere formale Darstellung, denn zur Berechnung muss man mit bestimmen und dazu die gegebene kartesische Darstellung von in die Polarform überführen, wobei man im Endeffekt wieder auf die oben definierte -Funktion mit reellen Argumenten zurückgreift.
Ableitungen
Die Funktion hängt von zwei Variablen ab und ist (außer im Ursprung) stetig differenzierbar, hat also zwei partielle Ableitungen. Für die Bedingung des ersten Falls (Quadranten und ) und dessen Zuordnung ergibt sich
Die Einschränkung auf den ersten Fall kann nachträglich fallen gelassen werden, so dass die Gleichungen für alle gelten.[16]
Damit ist
der Gradient der Funktion , und seine Richtung ist an jedem Punkt senkrecht zum Radiusvektor in mathematisch positiver Drehrichtung. Das passt zu der Tatsache, dass der Funktionswert von , der Polarwinkel, in dieser Richtung zunimmt.
Des Weiteren folgt für das totale Differential
Eine Integration dieses Differentials entlang eines Weges ergibt die Änderung des (Polar)winkels über den Weg. Ist der Weg geschlossen, so erhält man die Umlaufzahl (in Bezug auf den Ursprung ).
Weblinks
- Math. Java 1.6 SE JavaDoc
- C++ Programmer’s Reference
- MATLAB Function Reference
- Mathematica Function Reference
- atan2 auf Everything2
Einzelnachweise und Anmerkungen
- In diesem Artikel wurde die Argumentreihenfolge gewählt, weil allermeistens von der -Ebene und praktisch nie von der -Ebene gesprochen wird. Mehr zu Funktionsname und Argumentreihenfolge findet sich im § Implementierungen.
- Die Begriffsbildung gestattet u. a. eine einfachere und präzisere Spezifikation der Werte und die der auf zwei Tangens-Perioden aufgeteilten Polstelle des Tangens entsprechen.
- Elliott I. Organick: A FORTRAN IV Primer. Addison-Wesley, 1966, S. 42 (englisch): “Some processors also offer the library function called ATAN2, a function of two arguments (opposite and adjacent).”
- Fortran Wiki atan2. GNU Free Documentation License (GFDL), abgerufen am 4. April 2023 (englisch).
- Numbers’ Trigonometric Function List. Apple (englisch).
- LibreOffice Calc ATAN2. Libreoffice.org (englisch).
- CLHS: Function ASIN, ACOS, ATAN. LispWorks (englisch).
- Microsoft Excel Atan2 Method. Microsoft (englisch).
- AMD64 Architecture Programmer’s Manual Volume 5: 64-Bit Media and x87 Floating-Point Instructions. (PDF) AMD, November 2021, S. 280, abgerufen am 12. November 2022 (englisch).
- Der -Hauptwert von ist .
- Die Platzierung der Quadranten und ist in der Abb. 3 wegen “vertauscht” gegenüber der Abb. im Artikel Quadrant.
- Entsprechend den 2 Argumenten der -Funktion werden zwei Koordinaten als unabhängige Variable und nicht nur der Quotient aufgeführt.
- Diese Definition stimmt überein mit den Regeln der komplexen Multiplikation, welche auch dem Additionstheorem des Tangens zugrunde liegen.
In diesem Artikel kommt es besonders auf ihre Eignung für ganzzahlige Koordinaten an. - Von den komplexen Zahlen her weiß man, dass das -Inverse von auf ganz (und nicht nur auf )
- Gemeint ist der Halbquadrant, der dem nautischen Gerät Oktant und der Windrose mit den vier Nebenhimmelsrichtungen entspricht, und nicht der dreidimensionale Oktant (Geometrie).
- Die Ableitungen sind gebrochen rationale Funktionen und enthalten keine transzendente Funktion. Dieses Phänomen ist aber schon vom Arkustangens her bekannt.