<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++