tanh()
Die PHP-Funktion tanh() berechnet den hyperbolischen Tangens einer Zahl und gibt einen Wert zwischen -1 und 1 zurück.
Die PHP-Funktion tanh() gibt den hyperbolischen Tangens einer Zahl zurück. Anders als das gewöhnliche tan(), das mit Winkeln auf einem Kreis arbeitet, arbeitet tanh() mit hyperbolischen Winkeln und gibt immer einen Wert strikt zwischen -1 und 1 zurück. Diese begrenzte, glatte S-förmige Ausgabe ist der Grund, warum sie in neuronalen Netzen, der Physik und der Signalverarbeitung eingesetzt wird.
Diese Seite behandelt die Syntax, die zugrundeliegende Mathematik, den Definitions- und Wertebereich, Sonderfälle sowie die Beziehung zu anderen hyperbolischen Funktionen.
Syntax
tanh(float $num): float$num— der Wert (in Radiant, als hyperbolischer Winkel interpretiert), dessen hyperbolischen Tangens Sie berechnen möchten.- Rückgabewert — der hyperbolische Tangens von
$num, ein Float im offenen Intervall(-1, 1).
Die Mathematik: Was tanh tatsächlich berechnet
Der hyperbolische Tangens ist das Verhältnis des hyperbolischen Sinus zum hyperbolischen Kosinus:
tanh(x) = sinh(x) / cosh(x) = (e^x - e^-x) / (e^x + e^-x)Diese Definition gibt tanh() einige erwähnenswerte Eigenschaften:
tanh(0)ist exakt0.- Es ist eine ungerade Funktion:
tanh(-x) == -tanh(x). - Wenn
xwächst, nähert sich der Ausgabewert1; wennxfällt, nähert er sich-1— erreicht diese Werte jedoch nie für eine endliche Eingabe.
Grundlegendes Beispiel
Dies gibt 0.46211715726001 aus. Wir übergeben 0.5 an tanh() und geben den zurückgegebenen Float aus.
Definitions- und Wertebereich
Der Definitionsbereich von tanh() umfasst alle reellen Zahlen — Sie können jeden Float übergeben, ohne einen Fehler zu erhalten. Der Wertebereich ist das offene Intervall (-1, 1). Die folgende Tabelle zeigt, wie die Ausgabe zu den Rändern hin sättigt:
<?php
foreach ([-INF, -2, -1, 0, 1, 2, INF] as $x) {
printf("tanh(%s) = %s\n", $x, tanh($x));
}
?>Ausgabe:
tanh(-INF) = -1
tanh(-2) = -0.96402758007582
tanh(-1) = -0.76159415595576
tanh(0) = 0
tanh(1) = 0.76159415595576
tanh(2) = 0.96402758007582
tanh(INF) = 1Beachten Sie die Symmetrie um 0 (die Eigenschaft der ungeraden Funktion) und wie schnell das Ergebnis abflacht: Bei x = 2 liegt es bereits über 0.96.
Ein praktischer Einsatz: eine Squashing-Funktion
Da tanh() jede Zahl auf (-1, 1) abbildet, ist sie eine häufig verwendete Aktivierungsfunktion, die einen unbegrenzten Score in einen begrenzten, vorzeichenbehafteten Wert „quetscht":
<?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));
}
?>Ausgabe:
-5.0 -> -0.9999
-1.0 -> -0.7616
0.0 -> +0.0000
1.0 -> +0.7616
5.0 -> +0.9999Große positive Eingaben landen nahe +1, große negative Eingaben nahe -1, und 0 bleibt bei 0 — genau das Verhalten, das man von einem zentrierten, begrenzten Normalisierer erwartet.
Verwandte Funktionen
tanh() ist eine der hyperbolischen Mathematikfunktionen von PHP. Sie werden häufig zusammen verwendet:
sinh()— hyperbolischer Sinus, der Zähler in der obigen Formel.cosh()— hyperbolischer Kosinus, der Nenner.atanh()— die Umkehrfunktion, der hyperbolische Arkustangens (nimmt einen Wert in(-1, 1)und gibt die ursprüngliche Zahl zurück).tan()— der gewöhnliche (kreisförmige) Tangens, für Winkel statt für hyperbolische Winkel.
Fazit
tanh() gibt den hyperbolischen Tangens einer Zahl zurück: eine glatte, ungerade Funktion, deren Ausgabe immer zwischen -1 und 1 liegt. Übergeben Sie eine beliebige reelle Zahl und erhalten Sie ein begrenztes Ergebnis, das für große Beträge gegen ±1 sättigt. Das macht sie zu einer natürlichen Wahl für die Normalisierung unbegrenzter Werte, und sie lässt sich mit sinh(), cosh() und ihrer Umkehrfunktion atanh() für hyperbolische Berechnungen kombinieren.