W3docs

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 exakt 0.
  • Es ist eine ungerade Funktion: tanh(-x) == -tanh(x).
  • Wenn x wächst, nähert sich der Ausgabewert 1; wenn x fällt, nähert er sich -1 — erreicht diese Werte jedoch nie für eine endliche Eingabe.

Grundlegendes Beispiel

php— editable, runs on the server

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

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

Groß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.

Übung

Übung
Was macht die PHP-Funktion 'tanh'?
Was macht die PHP-Funktion 'tanh'?
Was this page helpful?