miniatura| Corba de depenent de . En trigonometria, la funció atan2 de dos arguments és una variant de la funció arctangent. Per a tots els arguments reals diferents de zero i , és l'angle en radians entre la part positiva de l'eix x d'un pla i el punt d'aquest pla amb coordenades . Aquest angle és positiu per als angles en sentit antihorari, també anomenat direcció trigonomètrica (semiplà superior, ) i negatiu en l'altre (semiplà inferior, ).
La funció atan2 es va introduir per primera vegada en llenguatges de programació informàtica, però ara també s'utilitza habitualment en altres àrees de la ciència i l'enginyeria. És com a mínim tan antic com el llenguatge de programació Fortran i ara es troba a la majoria d'altres llenguatges.
En termes matemàtics, atan2 retorna la determinació principal de la funció argumental aplicada al nombre complex. . O bé . El resultat podria variar en sense cap impacte en l'angle, però per garantir la seva unicitat, utilitzem el valor principal en l' interval , és a dir, .
La funció atan2 s'utilitza en moltes aplicacions que impliquen vectors en l'espai euclidià, com ara trobar la direcció d'un punt a un altre en la navegació o realitzar una transformació de coordenades en astronomia. Un dels principals usos és la conversió de matrius de rotació en angles d'Euler, per rotar representacions gràfiques per ordinador.
En alguns llenguatges informàtics, l'ordre dels paràmetres s'inverteix o la funció rep un nom diferent. En les calculadores científiques, el resultat de la funció sovint es deriva de la conversió de coordenades rectangulars en coordenades polars.
Motivació La funció arctangent amb un sol argument no diferencia entre direccions diametralment oposades. Per exemple, l'angle en sentit antihorari des de l'eix fins al vector (1,1), calculat de la manera habitual com a arctan(1/1), dóna (radians), o 45°. De la mateixa manera, l'angle entre l'eix i el vector (-1,-1), utilitzant el mateix mètode arctan (-1/-1), encara dóna , mentre que la resposta clarament esperada seria més aviat , o −135°.
La funció atan2 té en compte el signe d'ambdós components del vector i situa l'angle al quadrant correcte. Així doncs, I .
A més, el mètode habitual no funciona en el cas d'un angle de (radians) o ± 90°. Per exemple, un intent de trobar l'angle entre l'eix i el vector (0,1) requereix avaluar arctan (1/0), que falla a causa de la divisió per zero, mentre que atan2(1, 0) dóna la resposta correcta .
Quan els càlculs es fan a mà, les correccions de quadrants i el maneig d'excepcions necessàries es poden fer mitjançant l'observació, però en un programa informàtic és extremadament útil tenir una sola funció que sempre ofereixi un resultat correcte i inequívoc.
Definició Per :
on és l'angle contingut a tal que i és la funció del signe .
Notes:
La següent expressió, derivada de la fórmula de la tangent de mig arc, també es pot utilitzar per definir atan2:
.
Tanmateix, aquesta expressió hauria de ser més adequada per a un ús simbòlic que la definició anterior, i no obstant això és totalment inadequada per al seu ús en coma flotant; la divisió provoca un desbordament a prop de la part negativa de l'eix x, i dóna un NaN o un error per a atan2(0,0).
Això dóna resultats dins de , que es poden traduir a afegint als valors negatius. Tradicionalment, atan2(0,0) no està definit. La funció C, i la majoria d'altres implementacions informàtiques, estan dissenyades per a esforços de transformar coordenades cartesianes en polars, i per tant sempre defineixen atan2(0,0). En implementacions sense zeros amb signe, o quan es donen arguments zero positius, el resultat normalment s'estableix a 0. El valor retornat sempre estarà dins de en comptes de sortir amb un error o retornar NaN (Not a Number, és a dir, No és un número). Els sistemes que gestionen matemàtiques simbòliques normalment haurien de retornar un valor indefinit per a atan2(0,0) o informar que s'ha produït una anomalia. Per a sistemes com el de coma flotant IEEE 754 que poden gestionar zeros amb signe, infinits o NaN, és comú implementar extensions capaces d'estendre els possibles resultats per incloure -π i -0. Aquests també podrien retornar NaN o generar una excepció quan un dels arguments rebuts és un NaN.
La biblioteca matemàtica gratuïta FDLIBM disponible a netlib mostra al seu codi font com implementar atan2 amb el maneig de valors especials de l'IEEE.
Per a sistemes sense multiplicador de maquinari, la funció atan2 es pot implementar numèricament de manera fiable mitjançant el mètode CORDIC . En aquest cas, segurament serà preferible calcular atan(y) mitjançant atan2(y,1) .
Derivades Com que la funció atan2 és una funció de 2 variables, té dues derivades parcials. En els punts on existeixen aquestes derivades, atan2 és, fins a una constant, igual a arctan(y/x).
Per a o ,
Il·lustracions El diagrama següent mostra els valors presos per atan2 en punts notables del cercle unitari. Els valors, en radians, estan escrits en blau dins del cercle. Els quatre punts (1,0), (0,1), (-1,0) i (0,-1) s'anoten fora del cercle. Tingueu en compte que l'ordre dels arguments x i y s'inverteix; la funció atan2( y, x ) dóna l'angle corresponent al punt ( x, y ).
miniatura|300x300px| Representació de la funció atan2 sobre el cercle unitari. El diagrama següent mostra els valors presos per atan2 per als punts del cercle unitari. A l'eix , tenim els arguments dels punts. Comencen des de 0 (punt (1, 0)) i avancen en direcció trigonomètrica, passant pels punts:
(0, 1) que té com a argument en radians, (-1, 0) que té com a argument, (0, –1) que té com a argument ,
fins a (1, 0) que té com a argument 0 = mòdul .
Aquest diagrama mostra clarament la discontinuïtat de la funció atan2. Quan un punt creua la part negativa de l'eix real —per exemple, va de (0, 1) a (0, –1) passant per (–1, 0)— el seu argument hauria d'anar de a passant per . Però el valor de la funció atan2 (valor principal de l'argument) va de a , després salta a (discontinuïtat), per anar a . center|300x300px A continuació es mostra una vista 3D que mostra la diferència entre atan2(y, x) i arctan(y / x).300x300px 300x300px
Referències
Categoria:Trigonometria Categoria:Angles