Start · Sprachen · PHP · Referenz · atanh

atanh

Funktion

Berechnet den Areatangens hyperbolikus (inversen hyperbolischen Tangens) einer Zahl.

seit PHP 4.1.0 Kategorie: math

Signatur

atanh(float $num): float

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

Typ
float
Beschreibung
Den Areatangens hyperbolikus von 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)
0 0.54930614433405 -0.54930614433405 INF NAN

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));
}
r = 0.3 => z = 0.309519 r = 0.6 => z = 0.693147 r = 0.9 => z = 1.472219 r = -0.4 => z = -0.423649

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);
Ursprungswert: 0.750000 Nach tanh: 0.635149 Nach atanh(tanh): 0.750000

// 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.

Siehe auch