tanh()
Découvrez la fonction tanh() en PHP, utilisée pour calculer la tangente hyperbolique d'un nombre.
La fonction PHP tanh() retourne la tangente hyperbolique d'un nombre. Contrairement à tan() qui travaille avec des angles sur un cercle, tanh() travaille avec des angles hyperboliques et retourne toujours une valeur strictement comprise entre -1 et 1. Cette sortie lisse en forme de S, bornée, explique pourquoi elle apparaît dans les réseaux de neurones, la physique et le traitement du signal.
Cette page couvre la syntaxe, les mathématiques sous-jacentes, son domaine et sa plage de valeurs, les cas limites et son lien avec les autres fonctions hyperboliques.
Syntaxe
tanh(float $num): float$num— la valeur (en radians, interprétée comme un angle hyperbolique) dont vous souhaitez obtenir la tangente hyperbolique.- Valeur de retour — la tangente hyperbolique de
$num, un flottant dans l'intervalle ouvert(-1, 1).
Les maths : ce que tanh calcule réellement
La tangente hyperbolique est le rapport du sinus hyperbolique au cosinus hyperbolique :
tanh(x) = sinh(x) / cosh(x) = (e^x - e^-x) / (e^x + e^-x)Cette définition donne à tanh() quelques propriétés à retenir :
tanh(0)vaut exactement0.- C'est une fonction impaire :
tanh(-x) == -tanh(x). - Lorsque
xaugmente, la sortie approche1; lorsquexdiminue, elle approche-1— mais elle ne les atteint jamais pour une entrée finie.
Exemple de base
Cela affiche 0.46211715726001. On passe 0.5 à tanh() et on affiche le flottant retourné.
Domaine et plage de valeurs
Le domaine de tanh() est l'ensemble des réels — vous pouvez passer n'importe quel flottant sans erreur. La plage est l'intervalle ouvert (-1, 1). Le tableau ci-dessous montre comment la sortie sature vers les extrêmes :
<?php
foreach ([-INF, -2, -1, 0, 1, 2, INF] as $x) {
printf("tanh(%s) = %s\n", $x, tanh($x));
}
?>Sortie :
tanh(-INF) = -1
tanh(-2) = -0.96402758007582
tanh(-1) = -0.76159415595576
tanh(0) = 0
tanh(1) = 0.76159415595576
tanh(2) = 0.96402758007582
tanh(INF) = 1Remarquez la symétrie autour de 0 (propriété de fonction impaire) et à quelle vitesse le résultat se stabilise : dès x = 2, il dépasse déjà 0.96.
Un usage pratique : une fonction d'écrasement
Puisque tanh() mappe n'importe quel nombre dans (-1, 1), c'est une fonction d'activation courante qui « écrase » un score non borné en une valeur bornée et signée :
<?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));
}
?>Sortie :
-5.0 -> -0.9999
-1.0 -> -0.7616
0.0 -> +0.0000
1.0 -> +0.7616
5.0 -> +0.9999Les grandes entrées positives se retrouvent près de +1, les grandes entrées négatives près de -1, et 0 reste à 0 — exactement le comportement attendu d'un normaliseur centré et borné.
Fonctions associées
tanh() fait partie des fonctions mathématiques hyperboliques de PHP. On les utilise souvent ensemble :
sinh()— sinus hyperbolique, le numérateur dans la formule ci-dessus.cosh()— cosinus hyperbolique, le dénominateur.atanh()— l'inverse, arc tangente hyperbolique (prend une valeur dans(-1, 1)et retourne le nombre d'origine).tan()— la tangente ordinaire (circulaire), pour les angles plutôt que les angles hyperboliques.
Conclusion
tanh() retourne la tangente hyperbolique d'un nombre : une fonction lisse et impaire dont la sortie est toujours comprise entre -1 et 1. Passez n'importe quel réel, obtenez un résultat borné qui sature vers ±1 pour les grandes valeurs absolues. Cela en fait un choix naturel pour normaliser des valeurs non bornées, et elle se combine avec sinh(), cosh() et son inverse atanh() pour les calculs hyperboliques.