Partager via


<complex>

Définit le modèle complex de classe de conteneur et ses modèles de prise en charge.

Spécifications

En-tête : <complexe>

Espace de noms : std

Notes

Un nombre complexe est une paire ordonnée de nombres réels. En termes purement géométriques, le plan complexe est le plan réel à deux dimensions. Les qualités spéciales du plan complexe qui le distinguent du plan réel sont dues au fait qu'il a une structure algébrique supplémentaire. Cette structure algébrique a deux opérations fondamentales :

  • Ajout, défini comme (a, b) + (c, d) = (a + c, b + d)

  • Multiplication, définie comme (a, b) * (c, d) = (ac - bd, ad + bc)

L’ensemble de nombres complexes avec les opérations d’addition complexe et de multiplication complexe sont un champ dans le sens algébrique standard :

  • Les opérations d'addition et multiplication sont commutatives et associatives, et la multiplication se distribue sur l'addition exactement comme elle le fait avec l'addition et la multiplication de réels sur le domaine des nombres réels.

  • Le nombre complexe (0, 0) est l’identité additive et (1, 0) est l’identité multiplicative.

  • L’inverse additif pour un nombre complexe (a, b) est (-a, -b) et l’inverse multiplicatif pour tous ces nombres complexes, sauf (0, 0) est

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

En représentant un nombre complexe z = (a, b) sous la forme z = a + bi, où i2 = -1, les règles pour l’algèbre de l’ensemble de nombres réels peuvent être appliquées à l’ensemble de nombres complexes et à leurs composants. Par exemple :

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

Le système de nombres complexes est un champ, mais il ne s’agit pas d’un champ ordonné. Il n’y a aucun ordre des nombres complexes, car il existe pour le champ des nombres réels et ses sous-ensembles, de sorte que les inégalités ne peuvent pas être appliquées à des nombres complexes car ils sont à des nombres réels.

Il existe trois formes courantes de représentation d’un nombre complexe z :

  • Cartesian : z = a + bi

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

  • Exponentielle : z = r * e ip

Les termes utilisés dans ces représentations standard d'un nombre complexe s'entendent comme suit :

  • Le composant cartésien réel ou la partie réelle a.

  • Le composant cartésien imaginaire ou la partie imaginaire b.

  • Module ou valeur absolue d’un nombre complexe r.

  • Argument ou angle de phase p en radians.

Sauf indication contraire, les fonctions qui peuvent retourner plusieurs valeurs sont requises pour retourner une valeur principale pour leurs arguments supérieurs à -π et inférieures ou égales à +π pour les conserver à valeur unique. Tous les angles doivent être exprimés en radians, où il y a 2π radians (360 degrés) dans un cercle.

Membres

Functions

Nom Description
abs Calcule le module d'un nombre complexe.
acos
acosh
arg Extrait l’argument d’un nombre complexe.
asin
asinh
atan
atanh
conj Retourne le conjugué complexe d'un nombre complexe.
cos Retourne le cosinus d'un nombre complexe.
cosh Retourne le cosinus hyperbolique d'un nombre complexe.
exp Retourne la fonction exponentielle d'un nombre complexe.
imag Extrait le composant imaginaire d'un nombre complexe.
log Retourne le logarithme naturel d'un nombre complexe.
log10 Retourne le logarithme de base 10 d'un nombre complexe.
norm Extrait la norme d'un nombre complexe.
polar Retourne le nombre complexe qui correspond à un module et à un argument spécifiés, au format cartésien.
pow Évalue le nombre complexe obtenu en élevant une base qui est un nombre complexe à la puissance d'un autre nombre complexe.
proj
real Extrait le composant réel d'un nombre complexe.
sin Retourne le sinus d'un nombre complexe.
sinh Retourne le sinus hyperbolique d'un nombre complexe.
sqrt Retourne la racine carrée d'un nombre complexe.
tan Retourne la tangente d'un nombre complexe.
tanh Retourne la tangente hyperbolique d'un nombre complexe.

Opérateurs

Nom Description
operator!= Vérifie l'inégalité entre deux nombres complexes, l'un d'entre eux ou les deux pouvant appartenir au sous-ensemble du type pour les parties réelles et imaginaires.
operator* Multiplie deux nombres complexes, l'un d'entre eux ou les deux pouvant appartenir au sous-ensemble du type pour les parties réelles et imaginaires.
operator+ Additionne deux nombres complexes, l'un d'entre eux ou les deux pouvant appartenir au sous-ensemble du type pour les parties réelles et imaginaires.
operator- Soustrait deux nombres complexes, l'un d'entre eux ou les deux pouvant appartenir au sous-ensemble du type pour les parties réelles et imaginaires.
operator/ Divise deux nombres complexes, l'un d'entre eux ou les deux pouvant appartenir au sous-ensemble du type pour les parties réelles et imaginaires.
operator<< Fonction de modèle qui insère un nombre complexe dans le flux de sortie.
operator== Vérifie l'égalité entre deux nombres complexes, l'un d'entre eux ou les deux pouvant appartenir au sous-ensemble du type pour les parties réelles et imaginaires.
operator>> Fonction de modèle qui extrait un nombre complexe du flux d'entrée.

Classes

Nom Description
complex<double> Le modèle de classe explicitement spécialisé décrit un objet qui stocke une paire ordonnée d’objets, tous deux de type double, où le premier représente la partie réelle d’un nombre complexe et le second représente la partie imaginaire.
complex<float> Le modèle de classe explicitement spécialisé décrit un objet qui stocke une paire ordonnée d’objets, tous deux de type float, où le premier représente la partie réelle d’un nombre complexe et le second représente la partie imaginaire.
complex<long double> Le modèle de classe explicitement spécialisé décrit un objet qui stocke une paire ordonnée d’objets, tous deux de type long double, où le premier représente la partie réelle d’un nombre complexe et le second représente la partie imaginaire.
complex Le modèle de classe décrit un objet utilisé pour représenter le système de nombres complexes et effectuer des opérations arithmétiques complexes.

Littéraux

L’en-tête <complexe> définit les littéraux définis par l’utilisateur suivants. Les littéraux créent un nombre complexe avec une partie réelle de zéro et une partie imaginaire qui a la valeur du paramètre d’entrée.

Déclaration Description
constexpr complex<long double> operator""il(long double d)
constexpr complex<long double> operator""il(unsigned long long d)
Retourne : 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)
Retourne : 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)
Retourne : complex<float>{0.0f, static_cast<float>(d)}.

Voir aussi

Informations de référence sur les fichiers d’en-tête
Sécurité des threads dans la bibliothèque standard C++