<complex>
Definisce il modello complex
di classe contenitore e i relativi modelli di supporto.
Requisiti
Intestazione: <complessa>
Spazio dei nomi: std
Osservazioni:
Un numero complesso è una coppia ordinata di numeri reali. In termini puramente geometrici, il piano complesso è il piano reale bidimensionale. Le qualità speciali del piano complesso che lo distinguono dal piano reale dipendono dal fatto che ha una struttura algebrica aggiuntiva. Questa struttura algebrica include due operazioni fondamentali:
Addizione, definita come (a, b) + (c, d) = (a + c, b + d)
Moltiplicazione, definita come (a, b) * (c, d) = (ac - bd, ad + bc)
Il set di numeri complessi con le operazioni di addizione complessa e moltiplicazione complessa è un campo nel senso algebrico standard:
Le operazioni di addizione e moltiplicazione sono commutative e associative e la moltiplicazione è distributiva rispetto all'addizione, esattamente come rispetto alla vera addizione e moltiplicazione nel campo dei numeri reali.
Il numero complesso (0, 0) corrisponde all'identità di addizione e (1, 0) è l'identità di moltiplicazione.
L'inverso aggiuntivo per un numero complesso (a, b) è (-a, -b) e l'inverso moltiplicativo per tutti questi numeri complessi tranne (0, 0) è
(a/(a2 + b2), -b/(a2 + b2))
Rappresentando un numero complesso z = (a, b) nel formato z = a + bi, dove i2 = -1, le regole per l'algebra del set di numeri reali possono essere applicate al set di numeri complessi e ai relativi componenti. Ad esempio:
(1 + 2i) * (2 + 3i) = 1 * (2 + 3i) + 2i * (2 + 3i) = (2 + 3i) + (4i + 6i2) = (2 - 6) + (3 + 4)i = -4 + 7 i
Il sistema di numeri complessi è un campo, ma non è un campo ordinato. Non esiste un ordinamento dei numeri complessi perché esiste per il campo dei numeri reali e i relativi subset, quindi le disuguaglianze non possono essere applicate a numeri complessi così come sono a numeri reali.
Esistono tre formati comuni di rappresentazione di un numero complesso z:
Cartesiano: z = a + bi
Polar: z = r (cos p + i sin p)
Esponenziale: z r * = e ip
I termini usati in queste rappresentazioni standard di un numero complesso vengono definiti come segue:
Componente cartesiana reale o parte reale a.
Componente cartesiana immaginaria o parte immaginaria b.
Modulo o valore assoluto di un numero complesso r.
L'angolo dell'argomento o della fase p in radianti.
Se non diversamente specificato, le funzioni che possono restituire più valori devono restituire un valore principale per i relativi argomenti maggiori di -π e minori o uguali a +π per mantenerli singoli valori. Tutti gli angoli devono essere espressi in radianti, dove ci sono 2π radianti (360 gradi) in un cerchio.
Membri
Funzioni
Nome | Descrizione |
---|---|
abs |
Calcola il modulo di un numero complesso. |
acos |
|
acosh |
|
arg |
Estrae l'argomento da un numero complesso. |
asin |
|
asinh |
|
atan |
|
atanh |
|
conj |
Restituisce il complesso coniugato di un numero complesso. |
cos |
Restituisce il coseno di un numero complesso. |
cosh |
Restituisce il coseno iperbolico di un numero complesso. |
exp |
Restituisce la funzione esponenziale di un numero complesso. |
imag |
Estrae il componente immaginario di un numero complesso. |
log |
Restituisce il logaritmo naturale di un numero complesso. |
log10 |
Restituisce il logaritmo in base 10 di un numero complesso. |
norm |
Estrae la norma di un numero complesso. |
polar |
Restituisce il numero complesso, che corrisponde a un modulo e un argomento specificati, in formato cartesiano. |
pow |
Valuta il numero complesso ottenuto mediante l'elevamento di una base corrispondente a un numero complesso alla potenza di un altro numero complesso. |
proj |
|
real |
Estrae il componente reale di un numero complesso. |
sin |
Restituisce il seno di un numero complesso. |
sinh |
Restituisce il seno iperbolico di un numero complesso. |
sqrt |
Restituisce la radice quadrata di un numero complesso. |
tan |
Restituisce la tangente di un numero complesso. |
tanh | Restituisce la tangente iperbolica di un numero complesso. |
Operatori
Nome | Descrizione |
---|---|
operator!= |
Verifica la disuguaglianza tra due numeri complessi, di cui uno o entrambi possono appartenere al sottoinsieme del tipo per le parti reali e immaginarie. |
operator* |
Moltiplica due numeri complessi, di cui uno o entrambi possono appartenere al sottoinsieme del tipo per le parti reali e immaginarie. |
operator+ |
Aggiunge due numeri complessi, di cui uno o entrambi possono appartenere al sottoinsieme del tipo per le parti reali e immaginarie. |
operator- |
Sottrae due numeri complessi, di cui uno o entrambi possono appartenere al sottoinsieme del tipo per le parti reali e immaginarie. |
operator/ |
Divide due numeri complessi, di cui uno o entrambi possono appartenere al sottoinsieme del tipo per le parti reali e immaginarie. |
operator<< |
Funzione di modello che inserisce un numero complesso nel flusso di output. |
operator== |
Verifica l'uguaglianza tra due numeri complessi, di cui uno o entrambi possono appartenere al sottoinsieme del tipo per le parti reali e immaginarie. |
operator>> |
Funzione di modello che estrae un valore complesso dal flusso di input. |
Classi
Nome | Descrizione |
---|---|
complex<double> |
Il modello di classe specializzato in modo esplicito descrive un oggetto che archivia una coppia ordinata di oggetti, entrambi di tipo double , dove il primo rappresenta la parte reale di un numero complesso e il secondo rappresenta la parte immaginaria. |
complex<float> |
Il modello di classe specializzato in modo esplicito descrive un oggetto che archivia una coppia ordinata di oggetti, entrambi di tipo float , dove il primo rappresenta la parte reale di un numero complesso e il secondo rappresenta la parte immaginaria. |
complex<long double> |
Il modello di classe specializzato in modo esplicito descrive un oggetto che archivia una coppia ordinata di oggetti, entrambi di tipo long double , dove il primo rappresenta la parte reale di un numero complesso e il secondo rappresenta la parte immaginaria. |
complex |
Il modello di classe descrive un oggetto utilizzato per rappresentare il sistema numerico complesso ed eseguire operazioni aritmetiche complesse. |
Valori letterali
L'intestazione <complessa> definisce i valori letterali definiti dall'utente seguenti. I valori letterali creano un numero complesso con una parte reale di zero e una parte immaginaria con il valore del parametro di input.
Dichiarazione | Descrizione |
---|---|
constexpr complex<long double> operator""il(long double d) constexpr complex<long double> operator""il(unsigned long long d) |
Restituisce: 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) |
Restituisce complex<double>{0.0, static_cast<double>(d)} . |
constexpr complex<float> operator""if(long double d) constexpr complex<float> operator""if(unsigned long long d) |
Restituisce complex<float>{0.0f, static_cast<float>(d)} . |
Vedi anche
Informazioni di riferimento per i file di intestazione
Thread safety nella libreria standard C++