HOWTO · Python

Calcular la tangente inversa en Python

Este tutorial demuestra cómo calcular la tangente inversa en Python.

En esta página

La tangente inversa, también llamada arcotangente, responde a la pregunta «¿qué ángulo tiene esta tangente?». En Python, elija math.atan() para un valor numérico, numpy.arctan() para cálculos elemento por elemento con arrays o sympy.atan() cuando la entrada deba seguir siendo una expresión simbólica. Las dos primeras son API numéricas; SymPy representa la relación de forma simbólica hasta que se le pide evaluar un valor.

Use math.atan() para un solo valor

El módulo math de la biblioteca estándar es la opción más sencilla para un solo número, así que no requiere ningún paquete de terceros. Pase el valor de la tangente a math.atan(); el resultado es un ángulo en radianes. Conviértalo con math.degrees() solo cuando el resto de la aplicación espere grados.

Ejecute este ejemplo:

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

import math

tangent = 1
angle_radians = math.atan(tangent)
angle_degrees = math.degrees(angle_radians)
print(angle_radians)
print(angle_degrees)

Este ejemplo muestra un patrón ejecutable para un solo valor. Adapte tangent a su entrada y conserve el valor en radianes para los cálculos que usan las funciones trigonométricas de Python. La conversión a grados resulta útil para mostrar el valor o para interfaces que usan explícitamente grados.

Use numpy.arctan() para arrays

Use NumPy cuando la entrada sea un array o cuando quiera aplicar una operación a muchos valores. NumPy es una dependencia opcional; la biblioteca estándar de Python no incluye el tipo de array ni la función vectorizada de NumPy. numpy.arctan() calcula un resultado para cada elemento y devuelve ángulos en radianes. numpy.degrees() convierte un array de esos ángulos y conserva su estructura elemento por elemento.

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

import numpy as np

tangents = np.array([0.0, 1.0, -1.0])
angles_radians = np.arctan(tangents)
angles_degrees = np.degrees(angles_radians)
print(angles_radians)
print(angles_degrees)

Use este método con datos numéricos que ya estén representados como arrays de NumPy. Para un número corriente de Python, math.atan() evita añadir una dependencia. Estas API operan sobre valores de tangente; no reciben un ángulo para devolver su tangente.

Use sympy.atan() para expresiones simbólicas

Elija SymPy cuando la entrada contenga símbolos y quiera obtener una expresión en lugar de un ángulo inmediato en coma flotante. SymPy es un paquete opcional de terceros. Importe la función explícitamente y cree un símbolo con sympy.Symbol; si pasa una expresión como x a sympy.atan(), el resultado seguirá siendo simbólico.

El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.

import sympy
from sympy import atan

x = sympy.Symbol("x")
angle = atan(x)
print(angle)

Una expresión simbólica resulta útil para las manipulaciones algebraicas. No es lo mismo que un resultado numérico: sustituya un valor por el símbolo y llame a evalf() cuando necesite una aproximación decimal. Para cálculos numéricos directos, use math.atan() o numpy.arctan().

Interpretar los resultados de la tangente inversa

Para entradas reales finitas, la tangente inversa de un argumento devuelve un ángulo principal en radianes dentro del intervalo abierto de -pi/2 a pi/2. Para el infinito positivo o negativo, math.atan() y numpy.arctan() devuelven el extremo correspondiente: pi/2 o -pi/2. Muchos ángulos pueden compartir una misma tangente, por lo que atan() no recupera todos los ángulos posibles ni permite identificar por sí sola un cuadrante completo a partir de un valor de tangente. Para calcular una dirección a partir de componentes horizontal y vertical separados, use math.atan2(y, x) o numpy.arctan2(y, x), que conservan la información del cuadrante según el signo de ambos componentes.

Para un solo valor, use math.atan() y convierta las unidades solo si hace falta. Para arrays, use numpy.arctan() y, si lo desea, numpy.degrees(). Para álgebra, use sympy.atan() y evalúe la expresión solo cuando necesite una aproximación numérica. Recuerde que el resultado se expresa en radianes de forma predeterminada y elija la función según si la entrada es un número escalar, un array o una expresión simbólica.