Atan2

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

polohový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)!

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top