Namensräume
Varianten
Aktionen

std::acos(std::complex)

Von cppreference.com
< cpp‎ | numeric‎ | complex
 
 
 
 
Definiert in der Header-Datei <complex>
template< class T >
complex<T> acos( const complex<T>& z );
(seit C++11)

Berechnet den komplexen Arkuskosinus eines komplexen Wertes z. Sprungstellen existieren außerhalb des Intervalls [−1, +1] entlang der reellen Achse.

Inhalt

[edit] Parameter

z - komplexer Wert

[edit] Rückgabewert

Wenn keine Fehler auftreten, wird der komplexe Arkuskosinus von z zurückgegeben, im Bereich eines Streifens, der entlang der imaginären Achse unbeschränkt und entlang der reellen Achse im Intervall [0, +π] liegt.

[edit] Fehlerbehandlung und Sonderwerte

Fehler werden konsistent mit math_errhandling gemeldet.

Wenn die Implementierung IEEE-Gleitkomma-Arithmetik unterstützt,

  • std::acos(std::conj(z)) == std::conj(std::acos(z))
  • Wenn z (±0,+0) ist, ist das Ergebnis (π/2,-0)
  • Wenn z (±0,NaN) ist, ist das Ergebnis (π/2,NaN)
  • Wenn z (x,+∞) ist (für jedes endliche x), ist das Ergebnis (π/2,-∞)
  • Wenn z (x,NaN) ist (für jedes ungleiche endliche x), ist das Ergebnis (NaN,NaN) und FE_INVALID kann ausgelöst werden.
  • Wenn z (-∞,y) ist (für jedes positive endliche y), ist das Ergebnis (π,-∞)
  • Wenn z (+∞,y) ist (für jedes positive endliche y), ist das Ergebnis (+0,-∞)
  • Wenn z (-∞,+∞) ist, ist das Ergebnis (3π/4,-∞)
  • Wenn z (+∞,+∞) ist, ist das Ergebnis (π/4,-∞)
  • Wenn z (±∞,NaN) ist, ist das Ergebnis (NaN,±∞) (das Vorzeichen des Imaginärteils ist nicht spezifiziert)
  • 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 (NaN,-∞)
  • Wenn z (NaN,NaN) ist, ist das Ergebnis (NaN,NaN)

[edit] Hinweise

Der Arkuskosinus (oder Kehrwert des Kosinus) ist eine mehrwertige Funktion und erfordert eine Sprungstelle in der komplexen Ebene. Die Sprungstelle wird konventionell auf den Liniensegmenten (-∞,-1) und (1,∞) der reellen Achse platziert.

Die mathematische Definition des Hauptwertes des Arkuskosinus ist acos z =
1
2
π + iln(iz + 1-z2
)
.

Für jedes z gilt acos(z) = π - acos(-z).

[edit] Beispiel

#include <cmath>
#include <complex>
#include <iostream>
 
int main()
{
    std::cout << std::fixed;
    std::complex<double> z1(-2.0, 0.0);
    std::cout << "acos" << z1 << " = " << std::acos(z1) << '\n';
 
    std::complex<double> z2(-2.0, -0.0);
    std::cout << "acos" << z2 << " (the other side of the cut) = "
              << std::acos(z2) << '\n';
 
    // for any z, acos(z) = pi - acos(-z)
    const double pi = std::acos(-1);
    std::complex<double> z3 = pi - std::acos(z2);
    std::cout << "cos(pi - acos" << z2 << ") = " << std::cos(z3) << '\n';
}

Ausgabe

acos(-2.000000,0.000000) = (3.141593,-1.316958)
acos(-2.000000,-0.000000) (the other side of the cut) = (3.141593,1.316958)
cos(pi - acos(-2.000000,-0.000000)) = (2.000000,0.000000)

[edit] Siehe auch

berechnet den Arkussinus einer komplexen Zahl (arcsin(z))
(function template) [edit]
berechnet den Arkustangens einer komplexen Zahl (arctan(z))
(function template) [edit]
berechnet den Kosinus einer komplexen Zahl (cos(z))
(function template) [edit]
(C++11)(C++11)
berechnet Arkuskosinus (arccos(x))
(Funktion) [bearbeiten]
wendet die Funktion std::acos auf jedes Element des Valarrays an
(function template) [edit]
C-Dokumentation für cacos