<complex>

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Define la clase compleja de plantilla de contenedores y sus plantillas auxiliares.

#include <complex>  
  

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:

  • Suma definido como (a, b) + (c y d) = (un + c, b + d)

  • Multiplicación definido como (a, b) * (c y 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.

  • Número complejo (0, 0) es la identidad de suma y (1, 0) es la identidad de multiplicación.

  • 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)

Representando un número complejo z = (a, b) en el formulario z = a + bi, donde **2 * = * -1, se pueden aplicar las reglas para el álgebra del conjunto de números reales en el conjunto de números complejos y 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, que es un campo ordenado.

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

  • Cartesiano: z = a + bi

  • Polar: z = r (cos + isin)

  • Exponencial: *z = r * * exp()

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 un.

  • El componente imaginario de cartesiano o parte imaginaria b.

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

  • El ángulo de fase o argumento.

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

Funciones

ABSCalcula el módulo de un número complejo.
argExtrae el argumento de un número complejo.
ConjDevuelve el conjugado complejo de un número complejo.
cosDevuelve el coseno de un número complejo.
COSHDevuelve el coseno hiperbólico de un número complejo.
EXPDevuelve la función exponencial de un número complejo.
IMAGExtrae el componente imaginario de un número complejo.
registroDevuelve el logaritmo natural de un número complejo.
LOG10Devuelve el logaritmo de base 10 de un número complejo.
NORMExtrae la norma de un número complejo.
polarDevuelve el número complejo, que corresponde a un módulo y argumento especificados, en formato cartesiano.
PowEvalúa el número complejo obtenido al elevar una base que es un número complejo a la potencia de otro número complejo.
realExtrae el componente real de un número complejo
senoDevuelve el seno de un número complejo.
SINHDevuelve el seno hiperbólico de un número complejo.
SQRTDevuelve la raíz cuadrada de un número complejo.
tanDevuelve la tangente de un número complejo.
TANHDevuelve la tangente hiperbólica de un número complejo.

Operadores

operador! =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.
operador *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.
operador /Divide dos números complejos, donde uno de ellos o los dos pueden pertenecer al subconjunto del tipo para las partes reales e imaginarias.
(operador)Función de plantilla que inserta un número complejo en el flujo de salida.
operador ==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.
operador >>Función de plantilla que extrae un valor complejo del flujo de salida.

Clases

complejo<>>La clase de plantilla especializada de forma explícita describe un objeto que almacena un par ordenado de objetos de tipo doble, primero que representa la parte real de un número complejo y otro que representa la parte imaginaria.
complejo<>>La clase de plantilla especializada de forma explícita describe un objeto que almacena un par ordenado de objetos de tipo float, primero que representa la parte real de un número complejo y otro que representa la parte imaginaria.
complejo>La clase de plantilla especializada de forma explícita describe un objeto que almacena un par ordenado de objetos de tipo long double , primero que representa la parte real de un número complejo y otro que representa la parte imaginaria.
complejoClase de plantilla que describe un objeto que se usa para representar el sistema de números complejos y realizar operaciones aritméticas complejas.

Literales

El <> > encabezado define lo siguiente: literales definidos por el usuario que cree un número complejo con la parte real que se va a cero y la parte imaginaria es el valor del parámetro de entrada.

constexpr complex<long double> operator""il(long double d)il(long double d)

 constexpr complex<long double> operator""il(unsigned long long d)
Devuelve 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)}.

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

Mostrar: