Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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++