Signatur
Beschreibung
tanh berechnet den hyperbolischen Tangens des übergebenen Wertes num. Der hyperbolische Tangens ist definiert als tanh(x) = sinh(x) / cosh(x) = (e^x - e^-x) / (e^x + e^-x) und gibt Werte im offenen Intervall (-1, 1) zurück.
Im Gegensatz zum trigonometrischen Tangens ist der hyperbolische Tangens für alle reellen Zahlen definiert und besitzt keine Polstellen. Er wächst monoton von -1 gegen +1 und findet häufig Anwendung in maschinellem Lernen (als Aktivierungsfunktion in neuronalen Netzen), Physik und Ingenieurwissenschaften.
Der Parameter muss in Bogenmaß (Radiant) übergeben werden. Für Eingaben in Grad muss zunächst eine Umrechnung mit deg2rad() erfolgen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $num Pflicht | float | Der Eingabewert in Bogenmaß (Radiant), für den der hyperbolische Tangens berechnet werden soll. |
Rückgabewert
num als Gleitkommazahl im offenen Intervall (-1, 1).Beispiele
Grundlegende Verwendung von tanh
<?php
// Einfache Werte berechnen
echo tanh(0) . "\n"; // 0
echo tanh(1) . "\n"; // ca. 0.7616
echo tanh(-1) . "\n"; // ca. -0.7616
echo tanh(10) . "\n"; // nähert sich 1
echo tanh(-10) . "\n"; // nähert sich -1
tanh als Aktivierungsfunktion in einem einfachen Neuron
<?php
/**
* Simuliert ein einzelnes Neuron mit tanh-Aktivierungsfunktion.
* tanh normalisiert den Ausgabewert auf das Intervall (-1, 1).
*/
function neuron(array $inputs, array $weights, float $bias): float {
$weightedSum = $bias;
foreach ($inputs as $i => $input) {
$weightedSum += $input * $weights[$i];
}
return tanh($weightedSum);
}
$inputs = [0.5, 0.8, -0.3];
$weights = [1.2, -0.9, 0.7];
$bias = 0.1;
$output = neuron($inputs, $weights, $bias);
printf("Neuronenausgabe: %.6f\n", $output);
printf("Liegt im Intervall (-1, 1): %s\n", ($output > -1 && $output < 1) ? 'ja' : 'nein');
Umrechnung von Grad in Radiant vor der Berechnung
<?php
// Winkel in Grad → erst in Radiant umrechnen
$gradWerte = [0, 45, 90, 180];
foreach ($gradWerte as $grad) {
$radiant = deg2rad($grad);
printf("tanh(%3d°) = tanh(%.4f rad) = %.6f\n", $grad, $radiant, tanh($radiant));
}
// Wichtig · Fallstricke
Wertebereich: Der Rückgabewert liegt stets im offenen Intervall (-1, 1), nähert sich den Grenzen aber asymptotisch an. Bei sehr großen positiven oder negativen Eingabewerten (etwa ±20) gibt PHP Werte zurück, die auf Gleitkomma-Ebene nicht mehr von ±1 zu unterscheiden sind.
Inverse Funktion: Die Umkehrfunktion von tanh ist atanh() (Areahyperbolicus-Tangens).
Verwandte Funktionen: Analog gibt es sinh() für den hyperbolischen Sinus und cosh() für den hyperbolischen Kosinus.