Compartir por


<complex>

Define la plantilla de clase de contenedor complex y sus plantillas de clase auxiliares.

Requisitos

Encabezado: <complex>

Espacio de nombres: std

Comentarios

Un número complejo es un par ordenado de números reales. En términos puramente geométricos, el plano complejo es el plano real y bidimensional. Las cualidades especiales del plano complejo que lo diferencian del plano real se deben a que tiene una estructura algebraica adicional. Esta estructura algebraica tiene dos operaciones fundamentales:

  • Adición definida como (a, b) + (c, d) = (a + c, b + d)

  • Multiplicación definida como (a, b) * (c, d) = (ac - bd, ad + bc)

El conjunto de números complejos con las operaciones de suma compleja y multiplicación compleja son un campo en el sentido algebraico estándar:

  • Las operaciones de suma y multiplicación son conmutativas y asociativas, y la multiplicación se distribuye sobre la suma exactamente como lo hace con la suma y multiplicación reales en el campo de los números reales.

  • El número complejo (0, 0) es la identidad aditiva y (1, 0) es la identidad multiplicativa.

  • El inverso aditivo de un número complejo (a, b) es (-a, -b) y el inverso multiplicativo de todos estos números complejos excepto (0, 0) es

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

Al representar un número complejo z = (a, b) con la forma z = a + bi, donde i2 = -1, se pueden aplicar las reglas para el álgebra del conjunto de números reales al conjunto de números complejos y a sus componentes. Por ejemplo:

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

El sistema de números complejos es un campo, pero no es un campo ordenado. No existe ordenación alguna de los números complejos, como sucede con el campo de los números reales y sus subconjuntos, por lo que las desigualdades no se pueden aplicar a números complejos como se hace con los números reales.

Existen tres formas comunes de representar un número complejo z:

  • Cartesiano: z = a + bi

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

  • Exponencial: z = r * eip

Los términos usados en estas representaciones estándar de un número complejo se conocen como se indica a continuación:

  • El componente cartesiano real o la parte real a.

  • El componente cartesiano imaginario o la parte imaginaria b.

  • El módulo o valor absoluto de un número complejo r.

  • Argumento o ángulo de fase p en radianes.

A menos que se especifique lo contrario, las funciones que pueden devolver varios valores deben devolver un valor principal de sus argumentos mayor que -π y menor que o igual a +π para lograr que se mantengan con un solo valor. Todos los ángulos deben expresarse en radianes, donde hay 2π radianes (360 grados) en un círculo.

Miembros

Funciones

Nombre Descripción
abs Calcula el módulo de un número complejo.
acos
acosh
arg Extrae el argumento de un número complejo.
asin
asinh
atan
atanh
conj Devuelve el conjugado complejo de un número complejo.
cos Devuelve el coseno de un número complejo.
cosh Devuelve el coseno hiperbólico de un número complejo.
exp Devuelve la función exponencial de un número complejo.
imag Extrae el componente imaginario de un número complejo.
log Devuelve el logaritmo natural de un número complejo.
log10 Devuelve el logaritmo de base 10 de un número complejo.
norm Extrae la norma de un número complejo.
polar Devuelve el número complejo, que corresponde a un módulo y argumento especificados, en formato cartesiano.
pow Evalúa el número complejo obtenido al elevar una base que es un número complejo a la potencia de otro número complejo.
proj
real Extrae el componente real de un número complejo
sin Devuelve el seno de un número complejo.
sinh Devuelve el seno hiperbólico de un número complejo.
sqrt Devuelve la raíz cuadrada de un número complejo.
tan Devuelve la tangente de un número complejo.
tanh Devuelve la tangente hiperbólica de un número complejo.

Operadores

Nombre Descripción
operator!= Prueba la igualdad entre dos números complejos, uno de los cuales o ambos pueden pertenecer al subconjunto del tipo para las partes reales e imaginarias.
operator* Multiplica dos números complejos, donde uno de ellos o los dos pueden pertenecer al subconjunto del tipo para las partes reales e imaginarias.
operator+ Suma dos números complejos, donde uno de ellos o los dos pueden pertenecer al subconjunto del tipo para las partes reales e imaginarias.
operator- Resta dos números complejos, donde uno de ellos o los dos pueden pertenecer al subconjunto del tipo para las partes reales e imaginarias.
operator/ Divide dos números complejos, donde uno de ellos o los dos pueden pertenecer al subconjunto del tipo para las partes reales e imaginarias.
operator<< Función de plantilla que inserta un número complejo en el flujo de salida.
operator== Prueba la igualdad entre dos números complejos, uno de los cuales o ambos pueden pertenecer al subconjunto del tipo para las partes reales e imaginarias.
operator>> Función de plantilla que extrae un valor complejo del flujo de salida.

Clases

NOMBRE Descripción
complex<double> Clase de plantilla de clase especializada de forma explícita que describe un objeto que almacena un par ordenado de objetos, ambos de tipo double, donde el primero representa la parte real de un número complejo y el segundo representa la parte imaginaria.
complex<float> Clase de plantilla de clase especializada de forma explícita que describe un objeto que almacena un par ordenado de objetos, ambos de tipo float, donde el primero representa la parte real de un número complejo y el segundo representa la parte imaginaria.
complex<long double> Clase de plantilla de clase especializada de forma explícita que describe un objeto que almacena un par ordenado de objetos, ambos de tipo long double, donde el primero representa la parte real de un número complejo y el segundo representa la parte imaginaria.
complex Plantilla de clase que describe un objeto que se usa para representar el sistema de números complejos y realizar operaciones aritméticas complejas.

Literales

El encabezado <complex> define los siguientes literales definidos por el usuario. Estos literales crean un número complejo con una parte real de cero y una parte imaginaria que es el valor del parámetro de entrada.

Declaración Descripción
constexpr complex<long double> operator""il(long double d)
constexpr complex<long double> operator""il(unsigned long long d)
Devoluciones: 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)
Devuelve: 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)
Devuelve: complex<float>{0.0f, static_cast<float>(d)}.

Consulte también

Referencia de archivos de encabezado
Seguridad para subprocesos en la biblioteca estándar de C++