atan2

Z testwiki
Skočit na navigaci Skočit na vyhledávání
Funkce Šablona:Math vrací úhel Šablona:Mvar svíraný polohovým vektorem (průvodičem) bodu Šablona:Math 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)=arctgyx

Účel

Funkce atan2 řeší dva problémy, ke kterým by došlo při použití výrazu arctgyx:

  • 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 +π2 nebo π2.
  • Při převodu na polární souřadnice potřebujeme úhel v rozsahu celého kruhu, tj. 2π nebo 360°, zatímco funkce arctg vrací hodnoty v intervalu (π2,π2), 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

atan2(y,x) je funkce ×0;2π) definovaná přepisem:

atan2(y,x)={arctg(yx),      je-li (x>0)(y>=0),arctg(yx)+π, je-li (x<0),             arctg(yx)+2π,je-li (x>0)(y<0),π2,je-li (x=0)(y>0),32π,je-li (x=0)(y<0),

kde arctg(x) je arkus tangens.

Striktně matematicky není hodnota 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 θ(x):

atan2(y,x)=arctg(yx)+πθ(x)+2πθ(x)θ(y).

V programovacích jazycích je funkce atan2 definována tak, že vrací hodnoty v intervalu (π;π.

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,θ) takto:

x=rcosφ
y=rsinφ

odtud

r=x2+y2
φ=atan2(y,x).

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. 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

Externí odkazy

Šablona:Autoritní data

Šablona:Portály