tanh()
La función tanh() en PHP calcula la tangente hiperbólica de un número, devolviendo siempre un valor entre -1 y 1.
La función tanh() de PHP devuelve la tangente hiperbólica de un número. A diferencia de la función ordinaria tan(), que trabaja con ángulos en un círculo, tanh() trabaja con ángulos hiperbólicos y siempre devuelve un valor estrictamente entre -1 y 1. Esa salida acotada y suave en forma de S es la razón por la que aparece en redes neuronales, física y procesamiento de señales.
Esta página cubre la sintaxis, las matemáticas detrás de ella, su dominio y rango, casos límite y cómo se relaciona con las otras funciones hiperbólicas.
Sintaxis
tanh(float $num): float$num— el valor (en radianes, interpretado como ángulo hiperbólico) cuya tangente hiperbólica se desea obtener.- Valor de retorno — la tangente hiperbólica de
$num, un float en el intervalo abierto(-1, 1).
Las matemáticas: qué calcula realmente tanh
La tangente hiperbólica es la razón entre el seno hiperbólico y el coseno hiperbólico:
tanh(x) = sinh(x) / cosh(x) = (e^x - e^-x) / (e^x + e^-x)Esa definición le otorga a tanh() algunas propiedades importantes a recordar:
tanh(0)es exactamente0.- Es una función impar:
tanh(-x) == -tanh(x). - A medida que
xcrece, la salida se aproxima a1; a medida quexdecrece, se aproxima a-1— pero nunca los alcanza para ninguna entrada finita.
Ejemplo básico
Esto imprime 0.46211715726001. Pasamos 0.5 a tanh() y mostramos el float devuelto.
Dominio y rango
El dominio de tanh() comprende todos los números reales — puedes pasar cualquier float sin error. El rango es el intervalo abierto (-1, 1). La tabla a continuación muestra cómo la salida se satura hacia los extremos:
<?php
foreach ([-INF, -2, -1, 0, 1, 2, INF] as $x) {
printf("tanh(%s) = %s\n", $x, tanh($x));
}
?>Salida:
tanh(-INF) = -1
tanh(-2) = -0.96402758007582
tanh(-1) = -0.76159415595576
tanh(0) = 0
tanh(1) = 0.76159415595576
tanh(2) = 0.96402758007582
tanh(INF) = 1Observa la simetría alrededor de 0 (la propiedad de función impar) y lo rápido que el resultado se aplana: con x = 2 ya supera 0.96.
Un uso práctico: función de compresión
Debido a que tanh() mapea cualquier número en (-1, 1), es una función de activación común que "comprime" una puntuación sin límites en un valor acotado y con signo:
<?php
// Map raw scores to a value between -1 and 1
$scores = [-5.0, -1.0, 0.0, 1.0, 5.0];
foreach ($scores as $score) {
printf("%5.1f -> %+.4f\n", $score, tanh($score));
}
?>Salida:
-5.0 -> -0.9999
-1.0 -> -0.7616
0.0 -> +0.0000
1.0 -> +0.7616
5.0 -> +0.9999Las entradas positivas grandes se acercan a +1, las negativas grandes se acercan a -1, y 0 permanece en 0 — exactamente el comportamiento que se espera de un normalizador centrado y acotado.
Funciones relacionadas
tanh() es una de las funciones matemáticas hiperbólicas de PHP. Con frecuencia se usan juntas:
sinh()— seno hiperbólico, el numerador en la fórmula anterior.cosh()— coseno hiperbólico, el denominador.atanh()— la inversa, arcotangente hiperbólica (toma un valor en(-1, 1)y devuelve el número original).tan()— la tangente ordinaria (circular), para ángulos en lugar de ángulos hiperbólicos.
Conclusión
tanh() devuelve la tangente hiperbólica de un número: una función suave e impar cuya salida siempre está entre -1 y 1. Pasa cualquier número real y obtendrás un resultado acotado que se satura hacia ±1 para magnitudes grandes. Eso la convierte en una opción natural para normalizar valores sin límites, y se combina con sinh(), cosh() y su inversa atanh() para matemáticas hiperbólicas.