W3docs

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 exactement 0.
  • C'est une fonction impaire : tanh(-x) == -tanh(x).
  • Lorsque x augmente, la sortie approche 1 ; lorsque x diminue, elle approche -1 — mais elle ne les atteint jamais pour une entrée finie.

Exemple de base

php— editable, runs on the server

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) = 1

Remarquez 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.9999

Les 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.

Pratique

Pratique
Que fait la fonction PHP 'tanh' ?
Que fait la fonction PHP 'tanh' ?
Was this page helpful?