<complex>

Definiert die Containerklassenvorlage complex und die unterstützenden Vorlagen.

Anforderungen

Kopfzeile: <komplex>

Namespace: std

Hinweise

Eine komplexe Zahl ist ein sortiertes Paar realer Zahlen. In rein geometrischen Ausdrücken ist die komplexe Ebene die reale zweidimensionale Ebene. Die speziellen Merkmale der komplexen Ebene, durch die sie sich von der reellen Ebene unterscheidet, sind darin begründet, dass sie eine zusätzliche algebraische Struktur hat. Diese algebraische Struktur hat zwei grundlegende Vorgänge:

  • Addition, definiert als (a, b) + (c, d) = (a + c, b + d)

  • Multiplikation, definiert als (a, b) * (c, d) = (ac - bd, ad + bc)

Die Gruppe komplexer Zahlen mit den Vorgängen komplexer Addition und komplexer Multiplikation ist ein Feld im standardmäßigen algebraischen Sinne:

  • Die Operationen Addition und Multiplikation sind kommutativ und assoziativ, und Multiplikation erfolgt vor Addition, genau so, wie dies für reelle Addition und Multiplikation für den Körper der reellen Zahlen der Fall ist.

  • Die komplexe Zahl (0, 0) ist die additive Identität, und (1, 0) ist die multiplikative Identität.

  • Die additive Umkehrung für eine komplexe Zahl (a, b) ist (-a, -b) und die multiplizierte Umkehrung für alle so komplexen Zahlen mit Ausnahme von (0, 0)

    (a/(a 2 + b2), -b/(a2 + b2))

Durch die Darstellung einer komplexen Zahl z = (a, b) in Form z = a + bi, wobei i2 = -1, können die Regeln für die Algebra der Gruppe realer Zahlen auf die Gruppe komplexer Zahlen und auf ihre Komponenten angewendet werden. Beispiel:

(1 + 2i) * (2 + 3i) = 1 * (2 + 3i) + 2i * (2 + 3i) = (2 + 3i) + (4i + 6i2) = (2 - 6) + (3 + 4)i = -4 + 7 i

Das System komplexer Zahlen ist ein Feld, aber es handelt sich nicht um ein sortiertes Feld. Es gibt keine Sortierung der komplexen Zahlen, da es für das Feld der realen Zahlen und deren Teilmengen gibt, sodass Ungleichheiten nicht auf komplexe Zahlen angewendet werden können, da sie auf reale Zahlen sind.

Es gibt drei allgemeine Formen der Darstellung einer komplexen Zahl z:

  • Kartesisch: z = a + bi

  • Polar: z r = (cos p + i sin p)

  • Exponentiell: z r * = e ip

Die Ausdrücke, die in diesen Standarddarstellungen einer komplexen Zahl verwendet werden, werden wie folgt bezeichnet:

  • Die reelle kartesische Komponente oder der Realteil a

  • Die imaginäre kartesische Komponente oder der Imaginärteil b

  • Der Modulus oder der Absolutewert einer komplexen Zahl r.

  • Das Argument oder der Phasenwinkel p in Bogenmaß.

Sofern nicht anders angegeben, sind Funktionen, die mehrere Werte zurückgeben können, erforderlich, um einen Prinzipalwert für ihre Argumente zurückzugeben, die größer als -π und kleiner oder gleich +π sind, um sie einzeln zu halten. Alle Winkel müssen in Bogenmaß ausgedrückt werden, wobei 2π Bogenmaße (360 Grad) in einem Kreis vorhanden sind.

Member

Funktionen

Name Beschreibung
abs Berechnet den Betrag einer komplexen Zahl.
acos
acosh
arg Extrahiert das Argument aus einer komplexen Zahl.
asin
asinh
atan
atanh
conj Gibt die konjugierte Zahl einer komplexen Zahl zurück.
cos Gibt den Kosinus einer komplexen Zahl zurück.
cosh Gibt den Kosinus Hyperbolicus einer komplexen Zahl zurück.
exp Gibt die Exponentialfunktion einer komplexen Zahl zurück.
imag Extrahiert die imaginäre Komponente einer komplexen Zahl.
log Gibt den natürlichen Logarithmus einer komplexen Zahl zurück.
log10 Gibt den Zehnerlogarithmus einer komplexen Zahl zurück.
norm Extrahiert die Norm einer komplexen Zahl.
polar Gibt die komplexe Zahl, die einem angegebenen Betrag und Argument entspricht, in kartesischer Form zurück.
pow Wertet die komplexe Zahl aus, die sich dadurch ergibt, dass eine Basis, die eine komplexe Zahl ist, mit einer anderen komplexen Zahl potenziert wird.
proj
real Extrahiert die reelle Komponente einer komplexen Zahl.
sin Gibt den Sinus einer komplexen Zahl zurück.
sinh Gibt den Sinus Hyperbolicus einer komplexen Zahl zurück.
sqrt Gibt die Quadratwurzel einer komplexen Zahl zurück.
tan Gibt den Tangens einer komplexen Zahl zurück.
tanh Gibt den Tangens Hyperbolicus einer komplexen Zahl zurück.

Operatoren

Name Beschreibung
operator!= Testet zwei komplexe Zahlen auf Ungleichheit, von denen eine oder beide einer Teilmenge des Typs für die reellen und imaginären Teile angehören.
operator* Multipliziert zwei komplexe Zahlen, von denen eine oder beide einer Teilmenge des Typs für die reellen und imaginären Teile angehören.
operator+ Addiert zwei komplexe Zahlen, von denen eine oder beide einer Teilmenge des Typs für die reellen und imaginären Teile angehören.
operator- Subtrahiert zwei komplexe Zahlen, von denen eine oder beide einer Teilmenge des Typs für die reellen und imaginären Teile angehören.
operator/ Dividiert zwei komplexe Zahlen, von denen eine oder beide einer Teilmenge des Typs für die reellen und imaginären Teile angehören.
operator<< Eine Vorlagenfunktion, die eine komplexe Zahl in den Ausgabestream einfügt.
operator== Testet zwei komplexe Zahlen auf Gleichheit, von denen eine oder beide einer Teilmenge des Typs für die reellen und imaginären Teile angehören.
operator>> Eine Vorlagenfunktion, die einen komplexen Wert aus dem Eingabestream extrahiert.

Klassen

name Beschreibung
complex<double> Die explizit spezialisierte Klassenvorlage beschreibt ein Objekt, das ein sortiertes Objektpaar von Objekten speichert, beide vom Typ double, wobei der erste den realen Teil einer komplexen Zahl darstellt und die zweite den imaginären Teil darstellt.
complex<float> Die explizit spezialisierte Klassenvorlage beschreibt ein Objekt, das ein sortiertes Objektpaar von Objekten speichert, beide vom Typ float, wobei der erste den realen Teil einer komplexen Zahl darstellt und die zweite den imaginären Teil darstellt.
complex<long double> Die explizit spezialisierte Klassenvorlage beschreibt ein Objekt, das ein sortiertes Objektpaar von Objekten speichert, beide vom Typ long double, wobei der erste den realen Teil einer komplexen Zahl darstellt und die zweite den imaginären Teil darstellt.
complex Die Klassenvorlage beschreibt ein Objekt, das zum Darstellen des komplexen Zahlensystems und zum Ausführen komplexer arithmetischer Vorgänge verwendet wird.

Literale

Der <komplexe> Header definiert die folgenden benutzerdefinierten Literale. Die Literale erstellen eine komplexe Zahl mit einem echten Teil von Null und einem imaginären Teil mit dem Wert des Eingabeparameters.

Deklaration Beschreibung
constexpr complex<long double> operator""il(long double d)
constexpr complex<long double> operator""il(unsigned long long d)
Rückgabewert: complex<long double>{0.0L, static_cast<long double>(d)}
constexpr complex<double> operator""i(long double d)
constexpr complex<double> operator""i(unsigned long long d)
Gibt complex<double>{0.0, static_cast<double>(d)} zurück.
constexpr complex<float> operator""if(long double d)
constexpr complex<float> operator""if(unsigned long long d)
Gibt complex<float>{0.0f, static_cast<float>(d)} zurück.

Siehe auch

Referenz zu Headerdateien
Threadsicherheit in der C++-Standardbibliothek