Signatur
Beschreibung
atanh() ist die Umkehrfunktion des hyperbolischen Tangens tanh(). Sie gibt denjenigen Wert x zurück, für den gilt: tanh(x) = num. Der gültige Eingabebereich ist das offene Intervall (-1, 1).
Liegt der übergebene Wert exakt bei 1 oder -1, gibt die Funktion INF bzw. -INF zurück, da der hyperbolische Tangens diese Grenzwerte erst im Unendlichen erreicht. Für Werte außerhalb des Intervalls [-1, 1] wird NAN (Not a Number) zurückgegeben.
Typische Einsatzgebiete sind mathematische Berechnungen in der Analysis, Statistik (z. B. Fisher-Z-Transformation zur Normalisierung von Korrelationskoeffizienten) sowie in physikalischen Simulationen, die hyperbolische Funktionen benötigen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $num Pflicht | float | Der Eingabewert, dessen Areatangens hyperbolikus berechnet werden soll. Muss im offenen Intervall (-1, 1) liegen, um ein endliches reelles Ergebnis zu liefern. |
Rückgabewert
num. Gibt INF für 1, -INF für -1 und NAN für Werte außerhalb von [-1, 1] zurück.Beispiele
Grundlegende Verwendung von atanh()
<?php
// Areatangens hyperbolikus für einige typische Werte
echo atanh(0); // 0, da tanh(0) = 0
echo PHP_EOL;
echo atanh(0.5); // ca. 0.5493
echo PHP_EOL;
echo atanh(-0.5); // ca. -0.5493
echo PHP_EOL;
echo atanh(1); // INF
echo PHP_EOL;
echo atanh(1.5); // NAN (außerhalb des gültigen Bereichs)
Fisher-Z-Transformation (Normalisierung von Korrelationskoeffizienten)
<?php
// Fisher-Z-Transformation: z = atanh(r)
// Wird in der Statistik verwendet, um Korrelationskoeffizienten
// in normalverteilte Werte umzuwandeln.
function fisherZ(float $r): float {
if ($r <= -1 || $r >= 1) {
throw new \InvalidArgumentException(
"Korrelationskoeffizient muss im Intervall (-1, 1) liegen."
);
}
return atanh($r);
}
$korrelationen = [0.3, 0.6, 0.9, -0.4];
foreach ($korrelationen as $r) {
printf("r = %4.1f => z = %.6f\n", $r, fisherZ($r));
}
Umkehrfunktion von tanh() verifizieren
<?php
// atanh ist die Umkehrfunktion von tanh
$wert = 0.75;
$zwischen = tanh($wert); // Anwenden von tanh
$rueck = atanh($zwischen); // Rückrechnung mit atanh
printf("Ursprungswert: %.6f\n", $wert);
printf("Nach tanh: %.6f\n", $zwischen);
printf("Nach atanh(tanh): %.6f\n", $rueck);
// Wichtig · Fallstricke
Gültigkeitsbereich beachten: Werte außerhalb des Intervalls (-1, 1) führen zu NAN oder INF. In produktivem Code sollte der Eingabewert vor dem Aufruf geprüft werden, um unerwartete Ergebnisse zu vermeiden.
Genauigkeit: Die Funktion arbeitet mit doppelter Gleitkommagenauigkeit (64-Bit IEEE 754). Bei sehr kleinen Werten nahe 0 kann die Ausgabe mit dem Eingabewert nahezu identisch sein, da atanh(x) ≈ x für kleine x gilt.