arctan2

Aus testwiki
Zur Navigation springen Zur Suche springen

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 360 (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 Vorlage:Nowrap die beiden kartesischen Koordinaten (x,y) als Argumente gegeben werden, erhält man den Polarwinkel φ, der sich im richtigen Quadranten befindet, d. h. der die Beziehungen

x=rcosφ und
y=rsinφ  mit
r:=x2+y2

erfüllt.

Ein mathematisch nützlicher Zusatzeffekt ist, dass Winkel, bei denen der Tangens eine Polstelle hat, nämlich die Winkel ±90=±π/2, durch ganz normale reelle Koordinaten spezifiziert werden können, nämlich durch ±π/2=arctan2(0,±1) anstatt arctan(±).

Das kommt von der Definitionsmenge E:=2{(0,0)} der Funktion arctan2, 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 r .

Lösung: Zwei Argumente

Zwei vom Ursprung 𝖮(0,0) verschiedene Punkte 𝖯𝟣(x1,y1) und 𝖯𝟤(x2,y2) spezifizieren denselben Polarwinkel, wenn sie auf demselben Strahl durch 𝖮 liegen. Dann sind sie bezüglich der durchVorlage:Anker

x10y10:
(x1,y1)(x2,y2) :λ>0:x2=λx1y2=λy1

definierten Relation äquivalent.[1] Dagegen ist der Tangenswert von Polarwinkeln auch dann derselbe, wenn der Strahl um ±180 oder Vorlage:Nowrap also genau in den Gegenstrahl, weitergedreht ist. Informationstheoretisch betrachtet lässt der Tangens die Vorzeicheninformation von λ (rot in den Formeln) unter den Tisch fallen:

x10x20:
tan(y1x1)=tan(y2x2)   λ0:x2=λx1y2=λy1,

man nehme nur Vorlage:Nowrap

Abb. 1: Graph der Arkustangensfunktion φ=arctan(t) über t(,+)= mit gestrichelten Asymptoten. In blauen römischen Ziffern die zu t=yx passenden Quadranten in der Vorlage:Nowrap.

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 ]π/2,π/2[ (s. Abb. 1). Das hat zur Folge, dass die Umkehrfunktion Arkustangens kein größeres Bild als ]π/2,π/2[ haben kann. Dabei ist die ganze reelle Achse als Definitionsbereich des Arkustangens zulässig, weil das Bild des Tangens unter ]π/2,π/2[ 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 2π (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.[2] Heute ist die Funktion auch in anderen Programmiersprachen vorhanden.

Die Funktion hat häufig den Namen Vorlage:Nowrap so bei den Programmiersprachen Vorlage:Nowrap C, C++, Java, Python, Matlab, R, Vorlage:Nowrap Vorlage:Nowrap Maxima. In vielen dieser Programmiersprachen (nicht bspw. bei LibreOffice Calc) ist die Reihenfolge der Argumente umgekehrt, also die Vorlage:Nowrap das erste Argument – und das, obwohl es hier auf die Polarachse, die üblicherweise mit der Vorlage:Nowrap identifiziert wird, in ganz besonderem Maße ankommt. Denn es hat arctan2(x,y) gleich null zu sein für genau die Punkte (x|y) auf dieser Achse. Deshalb sollte es, wenn es um die übliche Vorlage:Nowrap geht, bei der Erstnennung der Vorlage:Nowrap bleiben; die Vorlage:Nowrap ergänzt dabei nur noch die Richtung, in welche der Polarwinkel zunimmt. In Common Lisp, wo optionale Argumente existieren, erlaubt die Vorlage:Nowrap die Vorlage:Nowrap als optionales zweites Argument zu übergeben,[3] wobei die Standardannahme x=1 ist.

Ein weiterer vorkommender Name ist arctan2(x,y), so bei den Tabellenkalkulationen Excel[4] und OpenOffice Calc.

In Mathematica ist eine Funktion ArcTan(x,y) definiert, bei der das erste Argument x weggelassen werden kann.

Seit der Einführung des FPU-Befehlssatzes x87 von Intel im Jahr 1980 kennen die x87-Prozessoren einen Befehl FPATAN mit im Prinzip derselben Reihenfolge der Operanden und demselben Ergebnis.[5]

Zur Beachtung
In diesem Artikel wird die Reihenfolge (x,y) und der Name arctan2(x,y) verwendet.

Formel

Die sechs Fälle der Funktionsdefinition

arctan2:   E   ]π,+π]   oder   [π,+π[ (KP2)
(x,y)[6] { Vorlage:Ankerarctan(yx) für x>0 (Quadranten I und IV)
arctan(yx)+π   für x<0, y>0 (Quadrant II)
Vorlage:Anker±π für x<0, y=0 (oberer[7]unterer Rand der Bildmenge)
arctan(yx)π für x<0, y<0 (Quadrant III)
+π2 für x=0, y>0
π2 für x=0, y<0
Abb. 2: 5 Punkte ● (Halbgeraden, Strahlen) in der Vorlage:Nowrap und ihr arctan2-Hauptwert

mit E:=2{(0,0)} als der „gelochten“ Ebene lassen sich zur Formel

arctan2(x,y):=arctan(yx)sgn(x)2+1sgn(x)2(sgn(y)2+sgn(y)±1)π

vereinigen. Die Funktion ist bis auf den Fall x<0, y=0(x,y)(1,0) (die Sprungstelle, s. u.) punktsymmetrisch am Ursprung, in Formeln:

arctan2(x,y)=arctan2(x,y).

Dem Argument (x,y)=(0,0) wird manchmal der Funktionswert 0 zugeordnet, wie auch andere Sonderfälle, bspw. Not a Number, unterschiedlich behandelt werden.

Der Genauigkeitsverlust der Division yx wegen lässt sich für 0<|x||y| bspw. durch die Umformung

arctan(yx)=arctan(xy)+sgn(y)π2

verringern (s. jedoch auch den Abschnitt Vorlage:Nowrap

Sprungstelle und kontinuierliche Drehung des Polarwinkels

Abb. 3: Graph von φ=arctan2(x,y)=atan2(y,x) über x1y=y/x für |x|14|y| mit gestrichelten Asymptoten. In blauen römischen Ziffern die entsprechenden Quadranten der Vorlage:Nowrap.

Bei zunehmendem Polarwinkel φ, das heißt bei einer Drehung im mathematischen Sinn (und entgegen dem Uhrzeigersinn), so bei der Wanderung vom Quadranten III (entspricht φ[π,π/2]) über die Quadranten IV[8] (entspricht φ[π/2,0]) und I (entspricht φ[0,+π/2]) zum Quadranten II (entspricht φ[+π/2,+π]), beginnt eine Periode in der Abb. 3 unten am (Strahl durch 𝖮 und den) Punkt[9]

φ x y yx
π 1 0 0 III ,

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 0 infinitesimal unterhalb und +0 infinitesimal oberhalb bedeuten. Die Drehung führt weiter in den Quadranten III über den (auf der 1. Winkelhalbierenden liegenden und in der Abb. 3 durch eine kleine rote Kreisfläche markierten) Punkt

3π4 1 1 1 III ,

zum Punkt

x y yx φ x𝗈 y𝗈 y𝗈x𝗈
IV +0 1 π2 0 1 + III ,

der einer der Polstellen π2 des Tangens entspricht und deshalb für den Arkustangens arctan ein unendlich ferner Punkt ist. Der Vorlage:Nowrap wechselt (auf der waagrechten und strich-punktierten Asymptote) von + nach Vorlage:Nowrap ein Sachverhalt, den auch der rote Kringel rechts im Quadranten III als Vorlage:Nowrap und der rote Knubbel links im Quadranten IV als Vorlage:Nowrap ausdrücken soll. Aus Sicht der Funktion arctan2(x,y) geschieht aber nichts weiter, als dass der Vorlage:Nowrap sich von 0 zu +0 ändert.

Die weitere Drehung führt durch den Quadranten IV über den markierten Punkt

IV +1 1 1 π4

zum Punkt

IV +1 0 0 0 +1 +0 0 I ,

der im Koordinatenursprung 𝖮 liegt, und von dort durch den Quadranten I über den markierten Punkt

π4 +1 +1 1 I ,

zum Punkt

II 0 +1 π2 +0 +1 + I .

Dieser Punkt entspricht der anderen Polstelle +π2 des Tangens. Bei ihm findet dasselbe Zusammenfallen der Senke im Quadranten I mit der Quelle im Quadranten II statt wie oben beim Argument Vorlage:Nowrap Die weitere Drehung durch den Quadranten II führt über den markierten Punkt

II 1 +1 1 3π4

schließlich zur Sprungstelle

II 1 +0 0 π .

Dieser Fall kann durch leichte Abwandlung der Bedingungen in der Formel (KP2) 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 Vorlage:Nowrap oder eben umgekehrt Vorlage:Nowrap

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 2{(0|0)} liegt;
  • auch bei einer Drehung über die Periodenlänge 2π 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:

arctan23(x,y):= arctan(xy)3π2       =arctan2(x,y)2π für y>0 (Quadranten I und II)
arctan22(x,y):= arctan(yx)π       arctan2(x,y) mod 2π für x<0 (Quadranten II und III)
arctan21(x,y):= arctan(xy)π2 }=arctan2(x,y){ für y<0 (Quadranten III und IV)
arctan20(x,y):= arctan(yx) für x>0 (Quadranten IV und I)
arctan2+1(x,y):= arctan(xy)+π2 für y>0 (Quadranten I und II)
arctan2+2(x,y)= arctan(yx)+π       arctan2(x,y) mod 2π für x<0 (Quadranten II und III)
arctan2+3(x,y):= arctan(xy)+3π2       =arctan2(x,y)+2π für y<0 (Quadranten III und IV)

Die 7 Zeilen sind so angeordnet, dass die Werte zweier über einander stehender Funktionen im gemeinsamen Definitionsgebiet übereinstimmen. Wegen der Sprungstelle von arctan2(x,y) beim Strahl (1|0) ist Gleichheit mit einer der stetigen Funktionen arctan22(x,y) 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 E:=2{(0,0)} von arctan2 kann man (in Analogie zur Definition der Addition in den rationalen Zahlen) die Verknüpfung

(x,y)+~(x,y):=(xxyy,xy+yx)

definieren.[10] Sie bleibt wohldefiniert unter der obigen Äquivalenzrelation Vorlage:Nowrap und die Faktormenge

F:=E/

erweist sich als kommutative Gruppe mit dem neutralen Element (1,0) und der Inversenbildung

~(x,y):=(x,y).[11]

Genauso wohldefiniert ist die induzierte Abbildung

arctan2:F]π,+π](x,y)arctan2(x,y)

weil äquivalente Repräsentanten denselben Vorlage:Nowrap liefern. Aus der Summenformel des Arkustangens folgt

arctan2((x,y)+~(x,y))arctan2(xxyy,xy+yx)arctan2(x,y)+arctan2(x,y)mod2π.

Wendet man auf die Funktion arctan2 die Funktion

mod2π:]π,+π]/(2π)φφ+2π

an, dann ergibt sich ein Homomorphismus μ:=mod2πarctan2 mit

μ:F/(2π)𝕊(x,y)+~(x,y)μ(x,y)+μ(x,y)

auf die Kreisgruppe Vorlage:Nowrap dessen Kern das neutrale Element (1,0) mit μ(1,0)=2π ist. Sind F und /(2π) 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 (KP2) lässt sich das Konvergenzverhalten der Taylorreihe (des Arkustangens) kontrollieren und ggf. verbessern.

Der Winkel von 45 zeichnet sich dadurch aus, dass er ein ganzzahliger Bruchteil, nämlich ein Achtel, des vollen Winkels von 360 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[12] kommen noch die Winkelhalbierenden als Begrenzungen hinzu. Die Feststellung, zu welchem der acht Oktanten ein Punkt (x,y)E 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 mod  ist. Und bei den Vergleichsoperatoren <~>~ wird der Strahl stets mit dem ihm mod 2π am nächsten liegenden Winkel verglichen.
Um Verwechslungen mit Koordinaten (x,y) zu vermeiden, wird in den Dezimaldarstellungen statt des Kommas der Dezimalpunkt verwendet.

Im Folgenden wird versucht, einen beliebigen Strahl (x,y) resp. Winkel φ mit einfachen und umkehrbaren Drehungen in das an der Polarachse symmetrische Winkelintervall 22,5φ222,5 zu drehen. Dann ist nämlich der Absolutbetrag des Arguments y2x2 in der Taylorreihe des Arkustangens Vorlage:Nowrap

In einer ersten Drehung wird der Strahl (x,y)E um 22,5 gedreht, d. h. der Strahl

(x0,y0):=(x,y)~(1,21)=(x,y)~22,5

gebildet. Der Oktant, in den dieser Strahl fällt, sei der Vorlage:Nowrap und die Nummerierung der Oktanten sei so gewählt, dass der erste das Winkelintervall ]0,45] abdeckt:

Nummer k des Oktanten
seine untere und obere Begrenzung
=
 
180 1335 920  415 00  415 920 1335 1840
die obere als Strahl (x1,y1)=[x1y1] { [11] ,[01] ,[+11] ,[+10] ,[+1+1] ,[0+1] ,[1+1] ,[10] }
die obere als Polarwinkel φ1 = 3π4 π2 π4 0 π4 π2 3π4 ±π

Vom derart bestimmten Oktanten wird der obere begrenzende Strahl genommen, der durch einen Punkt (x1,y1)E aus der in der Tabelle gezeigten Menge von Strahlen charakterisiert werden kann. (Alle diese Punkte haben ganzzahlige Koordinaten, und beim ersten Oktanten ist bspw. Vorlage:Nowrap Dann ist (x1,y1)~45~(x0,y0)~(x1,y1) oder

(x1,y1)~22,5~(x0,y0)+~22,5=(x,y)~(x1,y1)+~22,5.

Es folgt eine Drehung von Vorlage:Nowrap die zweite, jetzt um Vorlage:Nowrap so dass

22,5~(x2,y2):=(x,y)~(x1,y1)~+22,5

im gewünschten Winkelintervall ist. Um diese zweite Drehung von φ1:=arctan2(x1,y1) =k45=kπ4 mit ganzzahligem k muss das Ergebnis, wenn der Arkustangens berechnet ist, korrigiert werden.

Die erste Drehung muss nur ungefähr 22,5 betragen. Wenn sie davon etwas abweicht, etwa (5,2)=~21,8 oder auch (70,29)=~22,5035 beträgt, dann wird der Strahl (x2,y2) möglicherweise nicht so gut in das an der Polarachse symmetrische Winkelintervall eingepasst. Das Konvergenzverhalten verschlechtert sich aber wegen (1,1)+~(5,2)=~(7,3) nur geringfügig auf Vorlage:Nowrap

Nach der zweiten Drehung kann die Taylorreihe (an der Entwicklungsstelle 0)

φ2:=arctan2(x2,y2)=arctan(y2x2)

entwickelt und die abschließende Korrektur

φ:=φ2+φ1=arctan2(x,y)

vorgenommen werden.

Beispiele
  1. Der Ausgangsstrahl sei Vorlage:Nowrap was einem Winkel von ca. 100 entspricht. Durch die Vorlage:Nowrap von (5,2) kommen wir auf Vorlage:Nowrap also in den Vorlage:Nowrap Oktanten. Dessen obere Begrenzung liegt bei Vorlage:Nowrap Wir bilden die Differenz (x2,y2):=(x,y)~(x1,y1)=(5,27)~(0,1)=(27,5) und berechnen φ2=arctan2(27,5)=arctan(527)10 mit 5270,185 und korrigieren mit φ1=+π2 zum Endergebnis Vorlage:Nowrap
  2. Der Ausgangsstrahl sei Vorlage:Nowrap was einem Winkel von ca. 168 entspricht. Durch die Vorlage:Nowrap von (5,2) kommen wir auf Vorlage:Nowrap also in den Vorlage:Nowrap Oktanten. Das obere Ende des Oktanten liegt bei Vorlage:Nowrap Da dieser Oktant die Sprungstelle (1,0) enthält, setzen wir bei diesem Vorlage:Nowrap Oktanten im Fall y<0 den Korrekturwinkel auf Vorlage:Nowrap Wir bilden die Differenz (19,4)~(1,0)=(19,4) und berechnen arctan2(19,4)=arctan(419) mit 4190,211 und korrigieren mit Vorlage:Nowrap

Verbindung zum komplexen Logarithmus

Man kann die Funktion arctan2(x,y) für (x,y)E× auch über den Hauptwert ln des komplexen Logarithmus definieren als

arctan2(x,y):=arg(x+iy)=Imln(x+iy)=1ilnx+iyx2+y2

mit der Argument-Funktion arg. 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 lnz mit |z|=1 bestimmen und dazu die gegebene kartesische Darstellung von z=:x+iy in die Polarform überführen, wobei man im Endeffekt wieder auf die oben definierte Vorlage:Nowrap mit reellen Argumenten zurückgreift.

Ableitungen

Die Funktion arctan2 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 I und IV) und dessen Zuordnung ergibt sich

xarctan2(x,y)[6] =xarctan(yx)=yx2+y2,
yarctan2(x,y)[6] =yarctan(yx)=xx2+y2

Die Einschränkung auf den ersten Fall kann nachträglich fallen gelassen werden, so dass die Gleichungen für alle (x,y)E gelten.[13]

Damit ist

gradarctan2(x,y)=arctan2(x,y)=(yx2+y2,xx2+y2)

der Gradient der Funktion Vorlage:Nowrap und seine Richtung ist an jedem Punkt (x,y) senkrecht zum Radiusvektor in mathematisch positiver Drehrichtung. Das passt zu der Tatsache, dass der Funktionswert von Vorlage:Nowrap der Polarwinkel, in dieser Richtung zunimmt.

Des Weiteren folgt für das totale Differential

darctan2=arctan2xdx+arctan2ydy=yx2+y2dx+xx2+y2dy.

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 Vorlage:Nowrap

Siehe auch

Vorlage:Commonscat

Einzelnachweise und Anmerkungen

  1. Die Begriffsbildung gestattet u. a. eine einfachere und präzisere Spezifikation der Werte +:(0,+1) und :(0,1), die der auf zwei Tangens-Perioden aufgeteilten Polstelle des Tangens entsprechen.
  2. Vorlage:Cite book
  3. Vorlage:Cite web
  4. Vorlage:Cite web
  5. Vorlage:Internetquelle
  6. 6,0 6,1 6,2 Referenzfehler: Es ist ein ungültiger <ref>-Tag vorhanden: Für die Referenz namens xy wurde kein Text angegeben.
  7. Der arctan2-Hauptwert von (1|0) ist π.
  8. Die Platzierung der Quadranten III und IV ist in der Abb. 3 wegen y<0 „vertauscht“ gegenüber der Abb. im Artikel Quadrant.
  9. Entsprechend den 2 Argumenten der Vorlage:Nowrap werden zwei Koordinaten x,y als unabhängige Variable und nicht nur der Quotient y/x aufgeführt.
  10. 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.
  11. Von den komplexen Zahlen her weiß man, dass das Vorlage:Nowrap von (x,y) auf ganz E (und nicht nur auf F)
    (xx2+y2,yx2+y2)
    ist und dass (E,+~)(×,) eine abelsche Gruppe ist, was aber im Text so nicht gebraucht wird.
  12. Gemeint ist der Halbquadrant, der dem nautischen Gerät Oktant und der Windrose mit den vier Nebenhimmelsrichtungen entspricht, und nicht der dreidimensionale Oktant (Geometrie).
  13. Die Ableitungen sind gebrochen rationale Funktionen und enthalten keine transzendente Funktion. Dieses Phänomen ist aber schon vom Arkustangens her bekannt.

Vorlage:Navigationsleiste Trigonometrische Funktionen