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)è esattamente0.- È una funzione dispari:
tanh(-x) == -tanh(x). - All'aumentare di
x, l'output si avvicina a1; al diminuire dix, si avvicina a-1— ma non li raggiunge mai per alcun input finito.
Esempio di base
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) = 1Si 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.9999Gli 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.