W3docs

tanh()

Scopri la funzione tanh() in PHP, usata per calcolare la tangente iperbolica di un numero con output sempre tra -1 e 1.

La funzione PHP tanh() restituisce la tangente iperbolica di un numero. A differenza della comune tan(), che lavora con angoli su una circonferenza, tanh() opera con angoli iperbolici e restituisce sempre un valore strettamente compreso tra -1 e 1. Quell'output limitato e a forma di S regolare è il motivo per cui la si trova nelle reti neurali, in fisica e nell'elaborazione dei segnali.

Questa pagina tratta la sintassi, la matematica che sta alla base, il dominio e il codominio, i casi limite e la relazione con le altre funzioni iperboliche.

Sintassi

tanh(float $num): float
  • $num — il valore (in radianti, interpretato come angolo iperbolico) di cui si vuole calcolare la tangente iperbolica.
  • Valore restituito — la tangente iperbolica di $num, un float nell'intervallo aperto (-1, 1).

La matematica: cosa calcola effettivamente tanh

La tangente iperbolica è il rapporto tra il seno iperbolico e il coseno iperbolico:

tanh(x) = sinh(x) / cosh(x) = (e^x - e^-x) / (e^x + e^-x)

Questa definizione conferisce a tanh() alcune proprietà da tenere a mente:

  • tanh(0) è esattamente 0.
  • È una funzione dispari: tanh(-x) == -tanh(x).
  • All'aumentare di x, l'output si avvicina a 1; al diminuire di x, si avvicina a -1 — ma non li raggiunge mai per alcun input finito.

Esempio di base

php— editable, runs on the server

Questo stampa 0.46211715726001. Passiamo 0.5 a tanh() e visualizziamo il float restituito.

Dominio e codominio

Il dominio di tanh() comprende tutti i numeri reali — è possibile passare qualsiasi float senza errori. Il codominio è l'intervallo aperto (-1, 1). La tabella seguente mostra come l'output satura verso i valori estremi:

<?php
foreach ([-INF, -2, -1, 0, 1, 2, INF] as $x) {
    printf("tanh(%s) = %s\n", $x, tanh($x));
}
?>

Output:

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

Si noti la simmetria attorno a 0 (la proprietà di funzione dispari) e la rapidità con cui il risultato si appiattisce: già con x = 2 supera 0.96.

Un uso pratico: funzione di schiacciamento

Poiché tanh() mappa qualsiasi numero in (-1, 1), è una comune funzione di attivazione che "schiaccia" un punteggio illimitato in un valore limitato e con segno:

<?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));
}
?>

Output:

 -5.0 -> -0.9999
 -1.0 -> -0.7616
  0.0 -> +0.0000
  1.0 -> +0.7616
  5.0 -> +0.9999

Gli input positivi grandi si avvicinano a +1, quelli negativi grandi a -1, e 0 rimane a 0 — esattamente il comportamento desiderato da un normalizzatore centrato e limitato.

Funzioni correlate

tanh() è una delle funzioni matematiche iperboliche di PHP. Spesso vengono usate insieme:

  • sinh() — seno iperbolico, il numeratore nella formula sopra.
  • cosh() — coseno iperbolico, il denominatore.
  • atanh() — l'inversa, arcotangente iperbolica (prende un valore in (-1, 1) e restituisce il numero originale).
  • tan() — la tangente ordinaria (circolare), per angoli anziché angoli iperbolici.

Conclusione

tanh() restituisce la tangente iperbolica di un numero: una funzione regolare e dispari il cui output è sempre compreso tra -1 e 1. Si passa qualsiasi numero reale e si ottiene un risultato limitato che satura verso ±1 per grandi valori assoluti. Ciò la rende adatta per normalizzare valori illimitati e si affianca a sinh(), cosh() e alla sua inversa atanh() per la matematica iperbolica.

Pratica

Pratica
Cosa fa la funzione 'tanh' in PHP?
Cosa fa la funzione 'tanh' in PHP?
Was this page helpful?