Atan2

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
atan2(Sí., x) devuelve el ángulo Silencio entre el positivo x-eje y el rayo desde el origen hasta el punto ()x, Sí.), limitado a () -π, π].
Gráfico de sobre

En computación y matemáticas, la función atan2 es el arctante de 2 brazos. Por definición, es la medida del ángulo (en radianos, con ) entre el positivo - eje y el rayo del origen al punto en el avión cartesiano. Equivalentemente, es el argumento (también llamado fase o ángulo) del número complejo

El función apareció por primera vez en el lenguaje de programación Fortran en 1961. Originalmente estaba destinado a devolver un valor correcto e inequívoco para el ángulo Silencio en conversión de coordenadas cartesianas ()x, Sí.) a las coordenadas polares ()r, Silencio). Si y Entonces y

Si x ■ 0, la medida de ángulo deseada Sin embargo, cuando x 0, el ángulo es diametralmente opuesto al ángulo deseado, y ±π (un giro medio) debe añadirse para colocar el punto en el cuadrante correcto. Usando el funciona con esta corrección, simplificando código y fórmulas matemáticas.

Motivación

Gráfico de la función tangente de −π a +π con los signos correspondientes Sí./x. Las flechas verdes apuntan a los resultados de atan2(−1, −1) y atan2(1, 1).

La función arctangente de un solo brazo común sólo devuelve las medidas de ángulo en el intervalo y al invocarlo para encontrar la medida del ángulo entre x-eje y un vector arbitrario en el plano cartesiano, no hay manera sencilla de indicar una dirección en el medio plano izquierdo (es decir, un punto con ). Las medidas diametralmente opuestas tienen el mismo tangente porque Así que el tangente no es en sí mismo suficiente para especificar un ángulo única.

Determinar una medida de ángulo usando la función arctangente dada un punto o vector fórmulas matemáticas o código informático deben manejar múltiples casos; al menos uno para valores positivos de y uno para valores negativos y a veces casos adicionales cuando es negativo o una coordenadas es cero. Encontrar medidas de ángulo y convertir cartesiano a coordenadas polares son comunes en la computación científica, y este código es redundante y prono de error.

Para remediar esto, los lenguajes de programación de computadoras introdujeron la función atan2 , al menos tan pronto como el lenguaje Fortran IV de la década de 1960. La cantidad atan2 ( y , x ) es la medida de ángulo entre el estilo x -xis y un rayo desde el origen a un punto ( x , y ) en cualquier lugar del plano cartesiano. Los signos de x y y se usan para determinar el cuadrante del resultado y seleccionar la rama correcta de la función multivalizada arctan ( y / x ) .

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 se incluye en muchos otros lenguajes de programación, y también se encuentra comúnmente en fórmulas matemáticas en toda la ciencia e ingeniería.

Orden de argumento

En 1961, Fortran introdujo el atan2 función con orden de argumento por lo que el argumento (ángulo de fase) de un número complejo es Esto sigue la orden izquierda a derecha de una fracción escrita así para valores positivos Sin embargo, esto es lo opuesto al orden convencional de componentes para números complejos, o como coordenadas Ver sección Definición y cálculo.

Algunos otros lenguajes de programación (ver § Realizaciones de la función en los lenguajes comunes del ordenador) escogieron el orden contrario. Por ejemplo, Microsoft Excel utiliza OpenOffice Calc utiliza y usos de Mathematica por defecto a un arctangente de un solo compromiso si se llama con un argumento.

Definición y cálculo

La función atan2 calcula el valor principal de la función argumental aplicada al número complejo x + iSí.. Eso es, atan2(Sí., x) = Pr arg(x + iSí.) = Arg(x + iSí.). El argumento podría ser cambiado por un múltiple arbitrario (correspondiendo a una vuelta completa alrededor del origen) sin hacer ninguna diferencia al ángulo, pero para definir atan2 único utiliza el valor principal en el rango , es decir, π ■ atan2(Sí., xπ.

En términos de la función estándar arctan, cuyo rango es (−π/2, π/2), se puede expresar de la siguiente manera para definir una superficie que no tiene discontinuidades excepto a lo largo de la línea semiinfinita x<0 y=0:

Una expresión compacta con cuatro semiplanos superpuestos es

La notación entre corchetes de Iverson permite una expresión aún más compacta:

Fórmula sin aparente construcción condicional:

La siguiente expresión derivada de la fórmula de medio triángulo tangente también se puede utilizar para definir atan2: Esta expresión puede ser más adecuada para uso simbólico que la definición anterior. Sin embargo, no es adecuado para uso computacional de punto flotante general, como el efecto de los errores de redondeo en expandirse cerca de la región x 0, Sí. = 0 (esto puede incluso conducir a una división de Sí. por cero).

Una variante de la última fórmula que evita estos errores de redondeo inflados:

La derivación del valor principal del argumento se refiere a esta figura

Notas:

  • Esto produce resultados en el rango (π -, π).
  • Como se mencionó anteriormente, el valor principal del argumento atan2(Sí., x) puede estar relacionado con arctan(Sí./x) por trigonometría. La derivación es la siguiente:
    Si ()x, Sí.) =r # Silencio, r pecado Silencio)Entonces tan(Silencio/2) = Sí. /r + x). De ello se desprende que Note que x2 + Sí.2 + x ل 0 en el dominio en cuestión.

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, excepto por una constante, igual a arctan(y/x). Por lo tanto, para x > 0 o y ≠ 0,

Así, el gradiente de atan2 viene dado por

Representar informalmente la función atan2 como la función de ángulo θ(x, y) = atan2(y, x) (que solo se define hasta una constante) produce la siguiente fórmula para diferencial total:

Mientras que la función atan2 es discontinua a lo largo del eje negativo x , lo que refleja el hecho de que el ángulo no se puede definir continuamente, esta derivada se define continuamente excepto en el origen, lo que refleja el hecho de que los cambios infinitesimales (y de hecho locales) en el ángulo se pueden definir en todas partes excepto en el origen. La integración de esta derivada a lo largo de una trayectoria da el cambio total de ángulo a lo largo de la trayectoria, y la integración en un circuito cerrado da el número de devanado.

En el lenguaje de la geometría diferencial, esta derivada es una forma única y es cerrada (su derivada es cero) pero no exacta (no es la derivada de una forma 0, 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 tal forma y es fundamental en geometría diferencial.

Las derivadas parciales de atan2 no contienen funciones trigonométricas, lo que las hace particularmente útiles en muchas aplicaciones (por ejemplo, sistemas integrados) donde las funciones trigonométricas pueden ser costosas de evaluar.

Ilustraciones

atan2 para los rayos seleccionados

Esta figura muestra 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. Tenga en cuenta que el orden de los argumentos se invierte; la función atan2(y, x) calcula el ángulo correspondiente al punto ( x, y).

Comparación de funciones de arctan y atan2

Esta figura muestra los valores de junto con para . Ambas funciones son raras y periódicas con períodos y , respectivamente, y por lo tanto se puede complementar fácilmente a cualquier región de valores reales . Uno puede ver claramente los cortes de rama de los - Función en , y del - Función en .

Las dos figuras siguientes muestran vistas 3D de atan2(y, x) y arctan(y/x) sobre una región del plano. Tenga en cuenta que para atan2(y, x), rayos en el X /Y-plane que emana del origen tiene valores constantes, pero para arctan(y/x) líneas en el plano X/Y que pasa por el origen tiene valores constantes. Para x > 0, los dos diagramas dan valores idénticos.

Identidad de suma y diferencia de ángulos

La suma o diferencia de múltiples ángulos que deben ser computados por puede ser computado alternativamente componiéndolos como números complejos. Dado dos pares de coordenadas y , sus ángulos desde lo positivo axis se compone (y longitudes multiplicadas) si se tratan como números complejos y luego se multiplican juntos, . El ángulo resultante se puede encontrar utilizando un solo operación, siempre y cuando el ángulo resultante se encuentre en :

y también para más de dos pares de coordenadas. Si el ángulo compuesto cruza el negativo -eje (es decir, excede el rango ), entonces los cruces pueden ser contados y el número entero apropiado de añadido al resultado final para corregirlo.

Esta fórmula de diferencia se utiliza con frecuencia en la práctica para calcular el ángulo entre dos vectores plano, ya que el ángulo resultante siempre está en el rango .

Convenciones este-antihorario, norte y sur, etc.

El función fue diseñado originalmente para la convención en matemáticas puras que se puede denominar East-counterclockwise. Sin embargo, en aplicaciones prácticas al norte y sur-clockwise las convenciones son a menudo la norma. En ciencias atmosféricas, por ejemplo, la dirección eólica se puede calcular utilizando la función con los componentes este y norte del vector del viento como sus argumentos; el ángulo del azimut solar se puede calcular de forma similar con los componentes este y norte del vector solar como sus argumentos. La dirección del viento se define normalmente en el sentido nórdico, y el ángulo del acimut solar utiliza ampliamente las convenciones nórdicas y nórdicas. Estas diferentes convenciones se pueden realizar intercambiando las posiciones y cambiando los signos de las ramas x y y y como sigue:

  • (Convención del Consejo de Europa Oriental)
  • (Convención Normativa)
  • . (Convención Sur-Cerrado)

Como ejemplo, dejemos y , entonces el formato de venta al este da , el formato en sentido norte da , y el formato sur de la aguja da .

Cambiar el signo de los hilos x y/o y/o cambiar sus posiciones puede crear 8 posibles variaciones de los función y, interesantemente, corresponden a 8 posibles definiciones del ángulo, a saber, en sentido de reloj o en sentido contrario desde cada una de las 4 direcciones cardinales, norte, este, sur y oeste.

Realizaciones de la función en lenguajes informáticos comunes

La realización de la función difiere de un lenguaje informático a otro:

  • En Microsoft Excel, OpenOffice.org Calc, LibreOffice Calc, Google Spreadsheets, y iWork Numbers, la función arctangent de 2 brazos tiene los dos argumentos en la secuencia estándar (reversed relative to the convention used in the discussion above).
  • En Mathematica, la forma ArcTan[x, y] se utiliza donde la forma de un parámetro proporciona el arctangente normal. Mathematica clasifica ArcTan[0, 0] como expresión indeterminada.
  • En la mayoría de las calculadoras de gráficos TI (excluyendo el TI-85 y TI-86), la función equivalente se llama R►Pθ y tiene los argumentos .
  • En TI-85 el arg función se llama angle(x,y) y aunque parece tomar dos argumentos, sólo tiene un argumento complejo que se denota por un par de números: x + iSí. =x, Sí.).

El convención es utilizado por:

  • La función C atan2, y la mayoría de las demás implementaciones informáticas, están diseñados para reducir el esfuerzo de transformar cartesiano a coordenadas polares y así definir siempre atan2(0, 0). Sobre las implementaciones sin firma cero, o cuando se dan argumentos positivos cero, normalmente se define como 0. Siempre devolverá un valor en el rango [π−, π] en lugar de levantar un error o devolver un NaN (No un número).
  • En Common Lisp, donde existen argumentos opcionales, el atan función permite a uno a suministrar opcionalmente x coord: (atan y x).
  • En Julia, la situación es similar a Common Lisp: en lugar de atan2, el idioma tiene un parámetro y un formulario de dos parámetros para atan. Sin embargo, tiene muchos más de dos métodos, para permitir la optimización agresiva en el tiempo de compilación (ver la sección "¿Por qué no compilas Matlab/Python/R/... código a Julia?").
  • Para sistemas que implementan cero, infinitos o no un número (por ejemplo, el punto flotante de IEEE), es común implementar extensiones razonables que pueden extender la gama de valores producidos para incluir −π y −0 cuando Sí. = −0. Estos también pueden devolver NaN o plantear una excepción cuando se le da un argumento de NaN.
  • En el código de montaje Intel x86 Architecture, atan2 es conocido como FPATAN Instrucción (punto flotante parcial) Puede tratar con infinitos y los resultados se encuentran en el intervalo cerrado [π−, π], por ejemplo. atan2(∞, x) = +π/2 para finito x. Particularmente, FPATAN se define cuando ambos argumentos son cero:
    atan2(+0, +0) = +0;
    atan2(+0, −0) = +π;
    atan2(−0, +0) = 0 -
    atan2(−0, −0) = −π.
Esta definición está relacionada con el concepto de cero firmado.
  • En escritos matemáticos distintos del código fuente, como en libros y artículos, las notaciones Arctan y Tan−1 han sido utilizados; estas son variantes capitalizadas de la arctan regular y el tan−1. Este uso es consistente con la compleja notación de argumentos, tal que Atan(Sí., x) = Arg(x + iSí.).
  • En las calculadoras HP, tratar las coordenadas como un número complejo y luego tomar las ARG. O << C->R ARG >> 'ATAN2' STO.
  • En las calculadoras científicas la función se puede calcular a menudo como el ángulo dado cuando ()x, Sí.) se convierte de coordenadas rectangulares a coordenadas polares.
  • Sistemas que apoyan matemáticas simbólicas normalmente devuelven un valor indefinido atan2(0, 0) o de otro modo señale que ha surgido una anormal condición.
  • La libre biblioteca de matemáticas FDLIBM (Freely Distributable LIBM) disponible de 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 puede ser implementado de manera numéricamente fiable por el método CORDIC. Así pues, aplicación de atan(Sí.) probablemente elija computar atan2(Sí., 1).
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save