Wikipedia · einfach zusammengefasst · Stand
Arctan2
Die mathematische Funktion arctan2, auch atan2, ist eine Erweiterung der inversen Winkelfunktion Arkustangens und wie diese eine Umkehrfunktion der …
Inhalt6 Abschnitte
Was ist arctan2?
Die mathematische Funktion arctan2 (auch atan2) ist eine Erweiterung des Arkustangens (umgekehrte Tangensfunktion). Sie nimmt zwei reelle Zahlen als Argumente statt einer. Dadurch hat sie genügend Information, um den Winkel im vollen Wertebereich von 360° (allen vier Quadranten) auszugeben, während der normale Arkustangens auf zwei Quadranten (Wertebereich ]−π/2, π/2[) beschränkt ist, weil der Tangens mit π periodisch ist und eine Umkehrfunktion rechtseindeutig sein muss., Typische Anwendung: Umrechnung kartesischer Koordinaten (x, y) in Polarkoordinaten. arctan2(x, y) liefert den Polarwinkel θ, der die Beziehungen x = r·cos θ und y = r·sin θ mit r = √(x² + y²) erfüllt und im richtigen Quadranten liegt., Zusatzeffekt: Winkel mit einer Polstelle des Tangens (±90° = ±π/2) können durch ganz normale Koordinaten angegeben werden, nämlich arctan2(0, ±1), statt arctan(±∞)., Der Definitionsbereich ist E = ℝ² ∖ {(0,0)} (die „gelochte“ Ebene, der Ursprung ist ausgeschlossen). Für das Argument (0,0) wird manchmal der Wert 0 zugeordnet; andere Sonderfälle wie Not a Number werden unterschiedlich behandelt., Beachte: In vielen Programmiersprachen lautet die Argumentreihenfolge atan2(y, x) – die y-Koordinate zuerst. In diesem Artikel wird die Reihenfolge arctan2(x, y) verwendet.
Warum zwei Argumente nötig sind
Zwei vom Ursprung verschiedene Punkte P1(x1, y1) und P2(x2, y2) spezifizieren denselben Polarwinkel, wenn sie auf demselben Strahl durch O liegen; das entspricht der Äquivalenzrelation: (x1, y1) ∼ (x2, y2) ⟺ es gibt ein λ > 0 mit x2 = λ·x1 und y2 = λ·y1., Dagegen liefert der Tangens denselben Wert sogar dann, wenn der Strahl um ±180° (±π) in den Gegenstrahl weitergedreht ist – dort gilt die Beziehung mit λ > 0 oder λ < 0. Der Tangens „wirft die Vorzeicheninformation von λ unter den Tisch“. Er kann also nicht den vollen Polarwinkel rekonstruieren., Deshalb geben viele Programmiersprachen und Tabellenkalkulationen eine erweiterte Funktion an, die mit beiden kartesischen Koordinaten beschickt wird und den Polarwinkel modulo 2πℤ zurückgeben kann, z. B. im Intervall ]−π, +π], in allen vier Quadranten.
Formel und Fallunterscheidung
arctan2 ist definiert auf E = ℝ² ∖ {(0,0)} mit Werten in ]−π, +π] oder [−π, +π[, nach sechs Fällen:, • arctan(y/x) für x > 0 (Quadranten I und IV), • arctan(y/x) + π für x < 0, y > 0 (Quadrant II), • ±π für x < 0, y = 0 (oberer/unterer Rand der Bildmenge), • arctan(y/x) − π für x < 0, y < 0 (Quadrant III), • +π/2 für x = 0, y > 0, • −π/2 für x = 0, y < 0., Diese sechs Fälle lassen sich zu einer Formel mit der Vorzeichenfunktion sgn zusammenfassen: arctan2(x, y) := arctan(y/x)·sgn(x)² + ((1 − sgn(x))/2)·(∓sgn(y)² + sgn(y) ± 1)·π., Die Funktion ist bis auf die Sprungstelle x < 0, y = 0 punktsymmetrisch am Ursprung: arctan2(x, −y) = −arctan2(x, y)., Wegen Genauigkeitsverlusts der Division y/x bei 0 < |x| ≪ |y| kann man umformen: arctan(y/x) = −arctan(x/y) + sgn(y)·π/2.
Sprungstelle und kontinuierliche Drehung
Bei einer Drehung entgegen dem Uhrzeigersinn durchläuft der Polarwinkel die Quadranten III (θ ∈ [−π, −π/2]), IV ([−π/2, 0]), I ([0, +π/2]) und II ([+π/2, +π]). An den Polstellen ±π/2 des Tangens springt der Quotient y/x von +∞ nach −∞, während für arctan2 nur das Vorzeichen von x wechselt (−0 zu +0) – der Winkel läuft stetig weiter., Die Sprungstelle liegt beim Strahl durch (−1, 0) (Winkel ±π). Je nach Konvention kann dieser Fall dem Intervall ]−π, +π] oder [−π, +π[ zugeschlagen werden., Soll die Berechnung eine kontinuierliche Drehung begleiten, kann die Funktion angepasst werden: Die Sprungstelle kann an einen beliebigen Strahl verschoben werden, und über eine Periodenlänge 2π hinaus kann der Polarwinkel mit Hilfe der Umlaufzahl kontinuierlich zu- oder abnehmen., Für Stetigkeit innerhalb einer Halbebene gibt es Varianten wie arctan2₋₃(x,y) = arctan(x/y) − 3π/2 (= arctan2(x,y) − 2π) für y > 0 oder arctan2₊₁(x,y) = −arctan(x/y) + π/2 für y > 0 usw. Die zugehörigen sieben Funktionen stimmen auf den gemeinsamen Definitionsgebieten überein; mit den stetigen arctan2∓₂-Varianten ist wegen der Sprungstelle bei (−1|0) keine Gleichheit möglich.
Implementierungen
Die erste Implementierung gab es spätestens 1966 in Fortran; heute existiert die Funktion in vielen Sprachen., Namen und Argumentreihenfolge: atan2(y, x) in Fortran 77, C, C++, Java, Python, Matlab, R, iWork Numbers, LibreOffice Calc, Maxima – meist mit umgekehrter Reihenfolge (y zuerst). In Common Lisp erlaubt atan(y, x) das x als optionales zweites Argument mit Standardwert 1. arctan2(x, y) verwenden Excel und OpenOffice Calc. In Mathematica heißt die Funktion ArcTan(x, y), wobei x weglassbar ist., Seit dem x87-Befehlssatz von Intel (1980) kennen x87-Prozessoren den FPU-Befehl FPATAN mit gleicher Operandenreihenfolge und gleichem Ergebnis., Wichtig zu verstehen: arctan2(x, y) soll genau dann null sein, wenn der Punkt (x|y) auf der Polarachse (üblicherweise die x-Achse) liegt; die y-Achse bestimmt nur die Richtung, in der der Winkel zunimmt.
Ableitungen
arctan2 hängt von zwei Variablen ab und ist außer im Ursprung stetig differenzierbar. Die partiellen Ableitungen (hergeleitet am Fall x > 0, aber für alle (x, y) ∈ E gültig) sind:, ∂/∂x arctan2(x, y) = −y/(x² + y²), ∂/∂y arctan2(x, y) = x/(x² + y²)., Der Gradient ist also (−y/(x²+y²), x/(x²+y²)); seine Richtung ist an jedem Punkt senkrecht zum Radiusvektor, in mathematisch positiver Drehrichtung – dort nimmt der Polarwinkel zu., Das totale Differential ist d arctan2 = (−y/(x²+y²)) dx + (x/(x²+y²)) dy. Integriert man es entlang eines Weges, erhält man die Änderung des Polarwinkels; bei geschlossenem Weg ergibt sich die Umlaufzahl bezüglich des Ursprungs.