

En informática y matemáticas , la función atan2 es la arcotangente de 2 argumentos . Por definición,es la medida del ángulo (en radianes , con) entre el positivoeje y el rayo desde el origen hasta el puntoen el plano cartesiano . Equivalentemente,es el argumento (también llamado fase o ángulo ) del número complejo(No se deben confundir el argumento de una función con el argumento de un número complejo, mencionados anteriormente).
ElLa función apareció por primera vez en el lenguaje de programación Fortran en 1961. Originalmente, su propósito era devolver un valor correcto e inequívoco para el ángulo . al convertir de coordenadas cartesianas a coordenadas polares . Siy, entoncesy
Si , la medida del ángulo deseado esSin embargo, cuando x < 0 , el ánguloes diametralmente opuesto al ángulo deseado, y (media vuelta ) debe agregarse para colocar el punto en el cuadrante correcto . [ 1 ] Usando elEsta función elimina dicha corrección, simplificando el código y las fórmulas matemáticas.
Motivación
En las aplicaciones prácticas de la geometría es común convertir entre coordenadas rectangulares .y coordenadas polares Para representar puntos en el plano euclidiano , por ejemplo , para hallar el ángulo con signo que representa la orientación de un vector o para calcular el argumento de un número complejo . Las relaciones entre coordenadas rectangulares y polares se pueden resumir mediante las siguientes ecuaciones: donde,yson funciones trigonométricas y es la suma pitagórica de y , es decir, la hipotenusa de un triángulo rectángulo con catetos y.

Informáticaydey directamente a partir de estas fórmulas es sencillo. En la otra dirección, sin embargo, es útil proporcionar funciones especiales para implementar las conversiones. La fórmula para calcular dey puede provocar desbordamientos y subdesbordamientos numéricos, evitados por lahypotfunción de muchas bibliotecas estándar. El cálculo de dey es más complicado, por dos razones: (1) porque podría implicar una división por cero y (2) porque el cociente es igual a , y por lo tanto no distingue entre punto y el punto opuesto . La función arcotangente ordinaria de un solo argumentosolo devuelve medidas de ángulo en el intervalo , por lo que una implementación ingenua de una conversión de coordenadas rectangulares a polares, , dará resultados incorrectos siempre que .
Para determinar completamente el ángulo de dirección desde el origen dado un punto utilizando la función arcotangente, las fórmulas matemáticas o el código informático deben manejar múltiples casos; al menos uno para valores positivos dey uno para valores negativos de , y a veces casos adicionales cuandoes negativo o una coordenada es cero.
Para ahorrarles el trabajo a los programadores, los lenguajes de programación de computadoras introdujeron la función atan2 , al menos ya en el lenguaje Fortran IV de la década de 1960. [ 2 ] La cantidad es la medida del ángulo entre los eje y un rayo desde el origen hasta un punto en cualquier lugar del plano cartesiano. Los signos deySe utilizan para determinar el cuadrante del resultado y seleccionar la rama correcta de la función multivaluada ..
La función atan2 es útil en muchas aplicaciones que involucran vectores euclidianos , como encontrar la dirección de un punto a otro o convertir una matriz de rotación en ángulos de Euler .
La función atan2 ahora está incluida en muchos otros lenguajes de programación, y también se encuentra comúnmente en fórmulas matemáticas en toda la ciencia y la ingeniería.
Orden de los argumentos
En 1961, Fortran introdujo la función atan2 con orden de argumentos de modo que el argumento (ángulo de fase) de un número complejo seaEsto sigue el orden de izquierda a derecha de una fracción escrita.de modo quepara valores positivos deSin embargo, esto es lo opuesto al orden de componentes convencional para los números complejos,o como coordenadasConsulte la sección Definición y cálculo .
Algunos otros lenguajes de programación (véase § Implementaciones de la función en lenguajes informáticos comunes ) eligieron el orden opuesto. Por ejemplo, Microsoft Excel utilizaOpenOffice Calc utilizay Mathematica utilizaSe utilizará por defecto la función arcotangente de un argumento si se llama con un argumento.
Definición y cálculo
La función atan2 calcula el argumento principal del número complejo . , que también es la parte imaginaria del valor principal del logaritmo complejo . Es decir,
Sumar cualquier múltiplo entero de (correspondiente a vueltas completas alrededor del origen) da otro argumento del mismo número complejo, pero el argumento principal se define como el ángulo representativo único en el intervalo .
En términos de la función arcotangente estándar, cuya imagen es , atan2 se puede expresar por partes :

En los casos en que la función atan2 no esté disponible o sea inconveniente usarla, y donde sea importante reducir la cantidad de casos que deben considerarse (por ejemplo, para cálculos vectorizados en una GPU), puede ser útil calcular atan2 a través de una fórmula de tangente de medio ángulo : [ 3 ]
excepto en el caso de quey , cuando por convención atan2 es igual a .
Derivado
Como la función atan2 es una función de dos variables, tiene dos derivadas parciales . En los puntos donde existen estas derivadas, atan2 es, salvo una constante, igual a arctan( y / x ) . Por lo tanto, Estas dos derivadas parciales son las coordenadas del gradiente .
Representando informalmente la función atan2 como la función de ángulo θ ( x , y ) = atan2( y , x ) (que solo está definida salvo una constante) se obtiene la siguiente fórmula para el diferencial total :
Si bien la función atan2 es discontinua a lo largo del eje x negativo , lo que refleja que el ángulo no puede definirse de forma continua, esta derivada está definida de forma continua excepto en el origen, lo que refleja que los cambios infinitesimales (e incluso locales) en el ángulo pueden definirse en cualquier lugar excepto en el origen. Integrar esta derivada a lo largo de una trayectoria da el cambio total en el ángulo a lo largo de la trayectoria, e integrar sobre un bucle cerrado da el número de vueltas .
En el lenguaje de la geometría diferencial , esta derivada es una 1-forma , cerrada ( su derivada es cero) pero no exacta (no es la derivada de una 0-forma, es decir, una función), y de hecho genera la primera cohomología de De Rham del plano perforado . Este es el ejemplo más básico de dicha forma, y es fundamental en geometría diferencial.
Las derivadas parciales de atan2 no contienen funciones trigonométricas , lo que la hace particularmente útil en muchas aplicaciones (por ejemplo, sistemas embebidos) donde la evaluación de funciones trigonométricas puede resultar costosa.
Ilustraciones

Esta figura muestra los valores de atan2 a lo largo de rayos seleccionados desde el origen, etiquetados en el círculo unitario . Los valores, en radianes, se muestran dentro del círculo. El diagrama utiliza la convención matemática estándar de que los ángulos aumentan en sentido antihorario desde cero a lo largo del rayo hacia la derecha. Nótese que el orden de los argumentos está invertido; la función atan2( y , x ) calcula el ángulo correspondiente al punto ( x , y ) .

Esta figura muestra los valores dejunto conparaAmbas funciones son impares y periódicas con periodosy, respectivamente, y por lo tanto se puede complementar fácilmente a cualquier región de valores reales deSe pueden ver claramente los cortes de las ramas.-función eny de la-función en. [ 4 ]
Las dos figuras siguientes muestran vistas 3D de atan2( y, x) y arctan(y/x) sobre una región del plano , respectivamente . Nótese que , para atan2 ( y , x ) , los rayos en el plano x / y que parten del origen tienen valores constantes, mientras que para arctan( y / x ) , las líneas en el plano x / y que pasan por el origen también tienen valores constantes. Para x > 0 , ambos diagramas arrojan valores idénticos.
Vista 3D de atan2( y , x )
Vista 3D de arctan( y / x )
identidad de suma y diferencia de ángulos
La suma o diferencia de múltiples ángulos que se calculará mediante También se pueden calcular componiéndolos como números complejos . Dados dos pares de coordenadas y , sus ángulos desde el positivo Los ejes se compondrán (y sus longitudes se multiplicarán) si se tratan como números complejos y luego se multiplican entre sí . . El ángulo resultante se puede encontrar utilizando un solo operación , siempre que el ángulo resultante se encuentre en: y de igual manera para más de dos pares de coordenadas. Si el ángulo compuesto cruza el negativo -eje (es decir, excede el rango ) ), entonces se pueden contar los cruces y el múltiplo entero apropiado de Se añadió al resultado final para corregirlo.
Esta fórmula de diferencia se usa frecuentemente en la práctica para calcular el ángulo entre dos vectores planos , ya que el ángulo resultante siempre está en el rango .
Convenciones de sentido antihorario hacia el este, sentido horario hacia el norte y sentido horario hacia el sur, etc.
ElLa función fue diseñada originalmente para la convención en matemáticas puras que se puede denominar este en sentido antihorario . Sin embargo, en aplicaciones prácticas, las convenciones norte en sentido horario y sur en sentido horario suelen ser la norma. En ciencias atmosféricas, por ejemplo, la dirección del viento se puede calcular utilizando lafunción con las componentes este y norte del vector de viento como argumentos; [ 5 ] el ángulo de acimut solar se puede calcular de manera similar con las componentes este y norte del vector solar como argumentos. La dirección del viento se define normalmente en sentido horario norte, y el ángulo de acimut solar utiliza ampliamente las convenciones de sentido horario norte y sur. [ 6 ] Estas diferentes convenciones se pueden realizar intercambiando las posiciones y cambiando los signos de los argumentos x e y de la siguiente manera:
- (Convención de sentido antihorario hacia el este)
- (Convención en sentido horario hacia el norte)
- (Convención en sentido horario hacia el sur)
Como ejemplo, dejemosy, entonces el formato en sentido contrario a las agujas del reloj hacia el este da, el formato en sentido horario norte day el formato en sentido horario sur da.
Cambiar el signo de los argumentos x y/o y y /o intercambiar sus posiciones puede crear 8 posibles variaciones de lafunción y, curiosamente, corresponden a 8 posibles definiciones del ángulo, a saber, en sentido horario o antihorario partiendo de cada una de las 4 direcciones cardinales , norte, este, sur y oeste.
Implementaciones de la función en lenguajes de programación comunes
La implementación de esta función difiere de un lenguaje de programación a otro.
ElLa convención (invertida con respecto a la convención utilizada en la discusión anterior) es utilizada por:
- En Microsoft Excel , [ 7 ] OpenOffice.org Calc , LibreOffice Calc , [ 8 ] Google Spreadsheets , [ 9 ] e iWork Numbers , [ 10 ] la función arcotangente de 2 argumentos tiene los dos argumentos en la secuencia estándar..
- En Mathematica , se utiliza la forma donde la forma de un parámetro proporciona la arcotangente normal. Mathematica la clasifica como una expresión indeterminada.
ArcTan[x,y]ArcTan[0,0] - En la mayoría de las calculadoras gráficas TI (excluyendo la TI-85 y la TI-86 ), la función equivalente se llama R►Pθ y tiene los argumentos.
- En la TI-85 se llama a la función arg
angle(x,y)y aunque parece tomar dos argumentos, en realidad solo tiene un argumento complejo que se denota por un par de números: x + iy = ( x , y ) .
ElEsta convención es utilizada por:
- La función C
atan2, y la mayoría de las demás implementaciones informáticas, están diseñadas para reducir el esfuerzo de transformar coordenadas cartesianas a polares y, por lo tanto, siempre definenatan2(0, 0). En implementaciones sin cero con signo , o cuando se le dan argumentos cero positivos, normalmente se define como 0. Siempre devolverá un valor en el rango [ − π , π ] en lugar de generar un error o devolver un NaN (Not a Number). - En Common Lisp , donde existen argumentos opcionales, la
atanfunción permite proporcionar opcionalmente la coordenada x : . [ 11 ](atan y x) - En Julia , la situación es similar a la de Common Lisp: en lugar de
atan2, el lenguaje tiene una forma de un parámetro y otra de dos parámetros paraatan. [ 12 ] Sin embargo, tiene muchos más de dos métodos, para permitir una optimización agresiva en tiempo de compilación . [ 13 ] - Mathcad utiliza el orden de argumentos
atan2(x, y).atan2(0, 0)no está definido. [ 14 ] - Para sistemas que implementan cero con signo , infinitos o Not a Number (por ejemplo, punto flotante IEEE ), es común implementar extensiones razonables que pueden ampliar el rango de valores producidos para incluir −π y −0 cuando y = −0 . Estas también pueden devolver NaN o generar una excepción cuando se les proporciona un argumento NaN.
- En el código ensamblador de la arquitectura Intel x86 , se conoce como la instrucción (arcotangente parcial de punto flotante). [ 15 ] Puede manejar infinitos y los resultados se encuentran en el intervalo cerrado [ − π , π ] , por ejemplo = + π /2 para x finito . En particular, se define cuando ambos argumentos son cero:
atan2FPATANatan2(∞, x)FPATANEsta definición está relacionada con el concepto de cero con signo .atan2(+0, +0)= +0;atan2(+0, −0)= + π ;atan2(−0, +0)= −0;atan2(−0, −0)= − π .
- En escritos matemáticos distintos del código fuente , como en libros y artículos, se han utilizado las notaciones Arctan [ 16 ] y Tan −1 [ 17 ] ; estas son variantes en mayúscula de arctan y tan −1 regulares . Este uso es consistente con la notación de argumento complejo , de modo que Atan( y , x ) = Arg( x + iy ) .
- En las calculadoras HP , trate las coordenadas como un número complejo y luego tome el
ARG. O<< C->R ARG >> 'ATAN2' STO. - En las calculadoras científicas, la función a menudo se puede calcular como el ángulo dado cuando ( x , y ) se convierte de coordenadas rectangulares a coordenadas polares .
- Los sistemas que admiten matemáticas simbólicas normalmente devuelven un valor indefinido para atan2(0, 0) o señalan de otro modo que ha surgido una condición anormal.
- La biblioteca matemática gratuita FDLIBM (Freely Distributable LIBM), disponible en netlib, tiene código fuente que muestra cómo implementa
atan2, incluyendo el manejo de los diversos valores excepcionales de IEEE. - Para sistemas sin multiplicador de hardware, la función atan2 se puede implementar de manera numéricamente confiable mediante el método CORDIC . Por lo tanto, las implementaciones de atan( y ) probablemente optarán por calcular atan2( y , 1) .
Véase también
Referencias
- ↑ "El argumento de un número complejo" (PDF) . Instituto de Física de Partículas de Santa Cruz. Invierno de 2011.
- ↑ Organick, Elliott I. (1966). A FORTRAN IV Primer . Addison-Wesley. p. 42.
Algunos procesadores también ofrecen la función de biblioteca llamada ATAN2, una función de dos argumentos (opuesto y adyacente).
- ↑ Kusaka, Takashi; Tanaka, Takayuki (2022). "Métodos de aproximación rápidos y precisos para cálculos trigonométricos y de arcotangente para computadoras de bajo rendimiento". Electronics . 11 (15) 2285.
- ↑ "Wolf Jung: Mandel, software para dinámicas complejas" . www.mndynamics.com . Consultado el 20 de abril de 2018 .
- ↑ "Guía rápida de la dirección del viento" . Laboratorio de Observación de la Tierra NCAR UCAR.
- ↑ Zhang, Taiping; Stackhouse, Paul W.; MacPherson, Bradley; Mikovitz, J. Colleen (2021). "Una fórmula de acimut solar que hace innecesario el tratamiento circunstancial sin comprometer el rigor matemático: Configuración matemática, aplicación y extensión de una fórmula basada en el punto subsolar y la función atan2" . Energía renovable . 172 : 1333–1340 . Bibcode : 2021REne..172.1333Z . doi : 10.1016/j.renene.2021.03.047 . S2CID 233631040 .
- ↑ "Método Atan2 de Microsoft Excel" . Microsoft. 14 de junio de 2014.
- ↑ "LibreOffice Calc ATAN2" . Libreoffice.org.
- ↑ "Funciones y fórmulas – Ayuda para editores de documentos" . support.google.com .
- ↑ "Lista de funciones trigonométricas de Numbers" . Apple.
- ↑ "CLHS: Función ASIN, ACOS, ATAN" . LispWorks.
- ↑ "Matemáticas · El lenguaje Julia" . docs.julialang.org .
- ↑ "Preguntas frecuentes · El lenguaje Julia" . docs.julialang.org .
- ↑ "Ayuda de Mathcad - Ángulos polares" . PTC.
- ↑ Manual del desarrollador de software de la arquitectura Intel IA-32. Volumen 2A: Referencia del conjunto de instrucciones, AM, 2004.
- ↑ Burger, Wilhelm; Burge, Mark J. (7 de julio de 2010). Principios del procesamiento digital de imágenes: técnicas fundamentales . Springer Science & Business Media. ISBN 978-1-84800-191-6Consultado el 20 de abril de 2018 a través de Google Libros.
- ↑ Glisson, Tildon H. (18 de febrero de 2011). Introducción al análisis y diseño de circuitos . Springer Science & Business Media. ISBN 9789048194438Consultado el 20 de abril de 2018 a través de Google Libros.
Enlaces externos
- Calculadora en línea ATAN2
- Java 1.6 SE JavaDoc
- atan2 en Todo2
- Solución PicBasic Pro atan2 para un PIC18F
Otras implementaciones/código para atan2
- "Coordenadas entre dos puntos" . Archivado del original el 18 de noviembre de 2020. Consultado el 21 de febrero de 2022 .
- "Coordenadas arcaicas y polares" . Archivado del original el 18 de octubre de 2018. Consultado el 21 de febrero de 2022 .
- "¿Qué es 'Arccos'?" . Archivado del original el 6 de septiembre de 2017. Consultado el 21 de febrero de 2022 .
Notas
- Funciones trigonométricas inversas