C-Standardbibliothek<complex.h>
<complex.h>ist eine Header-Datei in der C-Standardbibliothek, die zur Unterstützung von Operationen mit komplexen Zahlen verwendet wird.
<complex.h>Im C99-Standard eingeführt, bietet es eine Reihe von Typen, Makros und Funktionen zum Definieren und Bearbeiten komplexer Zahlen.
1, Komplexe Typen
<complex.h>Die folgenden komplexen Zahlentypen sind definiert:
-
float complexKomplexe Zahl mit einfacher Genauigkeit. -
double complexKomplexe Zahl mit doppelter Genauigkeit. -
long double complex: komplexe Zahl mit long double.
Diese Typen sind eigentlich Makros, die in der C-Standardbibliothek definiert sind und jeweils zu Folgendem expandieren:_Complex float、_Complex doubleund_Complex long double。
2, Komplexe Konstanten
<complex.h>Die folgenden Makros sind definiert, um die imaginäre Einheit darzustellen:i:
-
IStellt die imaginäre Einheit dari, i.e.sqrt(-1)。
Beispiel
3, Funktionen für komplexe Zahlenoperationen
<complex.h>Es bietet eine Reihe von Funktionen für Operationen mit komplexen Zahlen, darunter arithmetische Operationen, trigonometrische Funktionen, Exponentialfunktionen und logarithmische Funktionen usw. Im Folgenden sind einige häufig verwendete Funktionen aufgeführt:
Arithmetische Operationen
| Funktion | Beschreibung |
|---|---|
creal(z) |
Gibt die komplexe Zahl zurückzder Realteil |
cimag(z) |
Gibt die komplexe Zahl zurückzder Imaginärteil |
cabs(z) |
Gibt die komplexe Zahl zurückzDer Betrag (Absolutwert) von |
carg(z) |
Gibt die komplexe Zahl zurückzDas Argument (die Phase) von |
conj(z) |
Gibt die komplexe Zahl zurückzdie komplexe Konjugierte |
cproj(z) |
Gibt die komplexe Zahl zurückzdie Projektion |
Trigonometrische Funktionen
| Funktion | Beschreibung |
|---|---|
csin(z) |
Gibt die komplexe Zahl zurückzSinuswert von |
ccos(z) |
Gibt die komplexe Zahl zurückzKosinuswert von |
ctan(z) |
Gibt die komplexe Zahl zurückzTangenswert von |
Exponential- und Logarithmusfunktionen
| Funktion | Beschreibung |
|---|---|
cexp(z) |
Gibt die komplexe Zahl zurückzExponentialwert von |
clog(z) |
Gibt die komplexe Zahl zurückzNatürlicher Logarithmus von ⟦0⟧ |
Potenzfunktion
| Funktion | Beschreibung |
|---|---|
cpow(z1, z2) |
Gibt die komplexe Zahl zurückz1vonz2Potenz |
Quadratwurzelfunktion
| Funktion | Beschreibung |
|---|---|
csqrt(z) |
Gibt die komplexe Zahl zurückzQuadratwurzel von ⟦0⟧ |
4, Beispiel
Das Folgende ist eine Verwendung<complex.h>Ein Beispiel für ..., das zeigt, wie komplexe Zahlen definiert und manipuliert werden:
Beispiel
#include <complex.h>
int main() {
// Komplexe Zahlen definieren
double complex z1 = 3.0 + 4.0 * I;
double complex z2 = 1.0 - 2.0 * I;
// Arithmetische Operationen
double complex sum = z1 + z2;
double complex product = z1 * z2;
// Gib die Ergebnisse aus
printf("z1 = %.2f + %.2fi\n", creal(z1), cimag(z1));
printf("z2 = %.2f + %.2fi\n", creal(z2), cimag(z2));
printf("Summe = %.2f + %.2fi\n", creal(sum), cimag(sum));
printf("Produkt = %.2f + %.2fi\n", creal(product), cimag(product));
// Betrag und Argument
printf("|z1| = %.2f\n", cabs(z1));
printf("Phase von z1 = %.2f radians\n", carg(z1));
// Exponentialfunktion
double complex exp_z1 = cexp(z1);
printf("exp(z1) = %.2f + %.2fi\n", creal(exp_z1), cimag(exp_z1));
return 0;
}
Ergebnis ausgeben:
z1 = 3.00 + 4.00i z2 = 1.00 + -2.00i Sum = 4.00 + 2.00i Product = 11.00 + -2.00i |z1| = 5.00 Phase of z1 = 0.93 radians exp(z1) = -13.13 + -15.20i
5, Hinweise
-
<complex.h>Es ist nur in C99 und späteren Versionen verfügbar. -
Die Verwendung von komplexen Zahlentypen und -funktionen erfordert das Einbinden von
<complex.h>Header-Datei. -
Die Performance von Operationen mit komplexen Zahlen kann niedriger sein als die von Operationen mit reellen Zahlen, besonders wenn eine große Menge an Berechnungen durchgeführt wird.
6, Mathematischer Hintergrund von Operationen mit komplexen Zahlen
Die allgemeine Form einer komplexen Zahl ista + bi, wobei:
-
aist der Realteil,bist der Imaginärteil. -
iist die imaginäre Einheit, für die gilti² = -1。
Der Betrag (Absolutwert) einer komplexen Zahl ist:
|z| = sqrt(a² + b²)
Das Argument (die Phase) einer komplexen Zahl ist:
arg(z) = atan2(b, a)
Die Exponentialform einer komplexen Zahl ist:
exp(z) = exp(a) * (cos(b) + i * sin(b))Weitere Erweiterungen