std::atanh(std::complex)
| Definiert in der Header-Datei <complex> |
||
| template< class T > complex<T> atanh( const complex<T>& z ); |
(seit C++11) | |
Berechnet den komplexen Arkussinus hyperbolicus von z mit Schnittkanten außerhalb des Intervalls [−1; +1] entlang der reellen Achse.
Inhalt |
[bearbeiten] Parameter
| z | - | komplexer Wert |
[bearbeiten] Rückgabewert
Wenn keine Fehler auftreten, wird der komplexe Arkussinus hyperbolicus von z zurückgegeben, im Bereich eines Halbs-Streifens, der entlang der reellen Achse mathematisch unbeschränkt und entlang der imaginären Achse im Intervall [−iπ/2; +iπ/2] liegt.
[bearbeiten] Fehlerbehandlung und Sonderwerte
Fehler werden konsistent mit math_errhandling gemeldet.
Wenn die Implementierung IEEE-Gleitkomma-Arithmetik unterstützt,
- std::atanh(std::conj(z)) == std::conj(std::atanh(z))
- std::atanh(-z) == -std::atanh(z)
- Wenn z
(+0,+0)ist, ist das Ergebnis(+0,+0) - Wenn z
(+0,NaN)ist, ist das Ergebnis(+0,NaN) - Wenn z
(+1,+0)ist, ist das Ergebnis(+∞,+0)und FE_DIVBYZERO wird ausgelöst - Wenn z
(x,+∞)ist (für jedes endliche positive x), ist das Ergebnis(+0,π/2) - Wenn z
(x,NaN)ist (für jedes endliche von Null verschiedene x), ist das Ergebnis(NaN,NaN)und FE_INVALID kann ausgelöst werden - Wenn z
(+∞,y)ist (für jedes endliche positive y), ist das Ergebnis(+0,π/2) - Wenn z
(+∞,+∞)ist, ist das Ergebnis(+0,π/2) - Wenn z
(+∞,NaN)ist, ist das Ergebnis(+0,NaN) - Wenn z
(NaN,y)ist (für jedes endliche y), ist das Ergebnis(NaN,NaN)und FE_INVALID kann ausgelöst werden. - Wenn z
(NaN,+∞)ist, ist das Ergebnis(±0,π/2)(das Vorzeichen des Realteils ist nicht spezifiziert) - Wenn z
(NaN,NaN)ist, ist das Ergebnis(NaN,NaN)
[bearbeiten] Anmerkungen
Obwohl der C++-Standard diese Funktion "komplexer Arkus hyperbolicus" nennt, sind die inversen Funktionen der hyperbolischen Funktionen die Areafunktionen. Ihr Argument ist die Fläche eines hyperbolischen Sektors, nicht eines Bogens. Der korrekte Name ist "komplexer inverser hyperbolischer Tangens" und seltener "komplexer Areal-Tangens hyperbolicus".
Der inverse hyperbolische Tangens ist eine mehrwertige Funktion und erfordert eine Schnittkante in der komplexen Ebene. Die Schnittkante wird konventionell auf den Liniensegmenten (-∞,-1] und [+1,+∞) der reellen Achse platziert.
Die mathematische Definition des Hauptwertes des inversen hyperbolischen Tangens ist atanh z =| ln(1+z) - ln(1-z) |
| 2 |
Für jedes z gilt atanh(z) =
| atan(iz) |
| i |
[bearbeiten] Beispiel
#include <complex> #include <iostream> int main() { std::cout << std::fixed; std::complex<double> z1(2.0, 0.0); std::cout << "atanh" << z1 << " = " << std::atanh(z1) << '\n'; std::complex<double> z2(2.0, -0.0); std::cout << "atanh" << z2 << " (the other side of the cut) = " << std::atanh(z2) << '\n'; // for any z, atanh(z) = atanh(iz) / i std::complex<double> z3(1.0, 2.0); std::complex<double> i(0.0, 1.0); std::cout << "atanh" << z3 << " = " << std::atanh(z3) << '\n' << "atan" << z3 * i << " / i = " << std::atan(z3 * i) / i << '\n'; }
Ausgabe
atanh(2.000000,0.000000) = (0.549306,1.570796) atanh(2.000000,-0.000000) (the other side of the cut) = (0.549306,-1.570796) atanh(1.000000,2.000000) = (0.173287,1.178097) atan(-2.000000,1.000000) / i = (0.173287,1.178097)
[bearbeiten] Siehe auch
| (C++11) |
berechnet denArea Hyperbolicus Sinus einer komplexen Zahl (arsinh(z)) (function template) |
| (C++11) |
berechnet den Area Hyperbolicus Kosinus einer komplexen Zahl (arcosh(z)) (function template) |
| berechnet den hyperbolischen Tangens einer komplexen Zahl (tanh(z)) (function template) | |
| (C++11)(C++11)(C++11) |
berechnet den inversen hyperbolischen Tangens (artanh(x)) (Funktion) |
| C-Dokumentation für catanh
| |