<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. Zum 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
Functions
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