Atan2
Author
Albert Florespolohovým vektorem (průvodičem) bodu a kladnou poloosou osy x upravený do intervalu (-π, π⟩ Určení kvadrantu pro funkci atan2(y, x) argumentu y/x atan2 (někde arctg2) je funkce dostupná v mnoha programovacích jazycích, numerických knihovnách a nástrojích pro výpočty, kterou lze použít místo funkce arkus tangens a která významně usnadňuje převod z pravoúhlých souřadnic na polární a podobné úlohy. Funkce je definovaná pro všechny reálné hodnoty dvou parametrů, a v případech, kdy je výraz na pravé straně definován, platí
:atan2(y, x) = \operatorname{arctg}\frac{y}{x}
Účel
Funkce atan2 řeší dva problémy, ke kterým by došlo při použití výrazu \operatorname{arctg}\frac{y}{x}:
* Pokud je x nulové nebo velmi malé, při výpočtu y/x může dojít k chybě dělení nulou nebo přetečení; hodnota funkce atan2 je však +\frac{\pi}{2} nebo -\frac{\pi}{2}. * Při převodu na polární souřadnice potřebujeme úhel v rozsahu celého kruhu, tj. +more 2\pi nebo 360°, zatímco funkce arctg vrací hodnoty v intervalu \left( -\frac{\pi}{2}, \frac{\pi}{2}\right), neboli (-90°, 90°) - informace o znaménkách obou souřadnic se při použití jednoho parametru ztratí; proto je nutné po použití funkce arctg určovat správnou polorovinu případně kvadrant.
Definice
\operatorname{atan2}(y,x) je funkce \mathbb R\times \mathbb R \rarr \langle 0;2\pi) definovaná přepisem:
:\operatorname{atan2}(y,x) = \left\{\begin{matrix} \operatorname{arctg}\left(\frac{y}{x}\right),\ \ \ \ \ \ & \mbox{je-li } (x>0) \land (y>=0), \\ \operatorname{arctg}\left(\frac{y}{x}\right) + \pi,\ & \mbox{je-li } (x0) \land (y0), \\ \frac{3}{2}\pi, & \mbox{je-li } (x=0) \land (y
kde arctg(x) je arkus tangens.
Striktně matematicky není hodnota \operatorname{atan2}(0,0) definována (nulový vektor nemá definovanou orientaci); pro programování může být libovolná; obvykle se používá 0.
Jiná definice pomocí distribucí, konkrétně Heavisideovy skokové funkce \theta(x):
:\operatorname{atan2}(y,x) = \operatorname{arctg}\left(\frac{y}{x}\right) +\pi\theta(-x)+2\pi\theta(x)\theta(-y).
V programovacích jazycích je funkce atan2 definována tak, že vrací hodnoty v intervalu (-\pi;\pi\rangle .
Užití
Pomocí takto definované funkce můžeme snadno zapsat např. přechod od kartézských souřadnic k polárním; bod o kartézských souřadnicích (x, y) lze vyjádřit pomocí polárních souřadnic (r, \theta) takto:
:x = r \cos{\varphi}\,
:y = r \sin{\varphi}\,
odtud
:r = \sqrt{x^2 + y^2}
:\varphi = \operatorname{atan2}\left(y,x\right).
Funkci atan2(y,x) lze použít také pro přechod mezi kartézskou soustavou souřadnic a sférickou soustavou souřadnic, resp. válcovou soustavou souřadnic.
Obdobně, atan2(y,x) nám dává argument komplexního čísla x + iy.
Praktická poznámka
V programovacích jazycích (C, PHP, Java, JavaScript, . ) se vždy píše jako první parametr souřadnice y a jako druhý souřadnice x tj. +more tvar atan2(y, x).
Ale v tabulkových kalkulátorech (Microsoft Excel, LibreOffice Calc, apod.) bývá použit obrácený tvar tj. atan2(x, y)!
Odkazy
Související články
Arkus tangens * Ortogonální souřadnice * Kartézská soustava souřadnic * Polární soustava souřadnic * Sférická soustava souřadnic * Cyklometrická funkce