La mayoría de los programas C se ocupan de las operaciones y manipulaciones de números complejos mediante el uso del archivo de encabezado complex.h . Este archivo de encabezado se agregó en C99 Standard .
La biblioteca estándar de C++ tiene un encabezado, que implementa números complejos como una clase de plantilla, complex<T> , que es diferente de <complex.h> en C.
Macros asociadas con <complex.h>
Algunas de las macros de <complex.h> se muestran a continuación. Los valores del lado izquierdo describen las macros en complex.h y el lado derecho describe la expansión de esas macros con las palabras clave (_Imaginary, _Complex) agregadas en el estándar C99.
Nombre de la macro | se expande a |
---|---|
complejo | _Complejo |
imaginario | _Imaginario |
_Complejo_I | (const flotante _Complejo) i |
_Imaginario_I | (const flotante _imaginario) i |
yo | _Imaginario_I(_Complejo_I si _Imaginario_I está ausente) |
El siguiente programa ayuda a crear números complejos.
Ejemplo 1:
// C program to show the working // of complex.h library #include <complex.h> #include <stdio.h> int main(void) { double real = 1.3, imag = 4.9; double complex z = CMPLX(real, imag); printf( "z = %.1f% + .1fi\n", creal(z), cimag(z)); }
z = 1.3+4.9i
Explicación:
- La función cmplx() crea objetos de números complejos tomando como parámetros la parte real y la parte imaginaria. Esta función devuelve el objeto de los números complejos.
- función creal() devuelve la parte real de un número complejo
- función cimag() devuelve la parte imaginaria de un número complejo
- Si nuestras partes reales e imaginarias son de tipo float usamos la función cmmplxf() para generar números complejos y para obtener partes reales e imaginarias usamos las funciones crealf() , cimagf() .
- Si nuestras partes reales e imaginarias son del tipo long double, usamos la función cmplxl() para generar números complejos y para obtener partes reales e imaginarias usamos las funciones creall() , cimagl() .
Ejemplo 2: También podemos crear objetos de números complejos usando la macro I .
// C program to create a complex // number using macro I #include <complex.h> #include <stdio.h> int main(void) { double complex z = 3.2 + 4.1 * I; // Creates complex number // with 3.2 and 4.1 as // real and imaginary parts printf( "z = %.1f% + .1fi\n", creal(z), cimag(z)); }
z = 3.2+4.1i
Funciones asociadas con <complex.h>
El archivo de encabezado <complex.h> también proporciona algunas funciones integradas para trabajar con el número complejo. Aquí la palabra «arg» significa objeto de número complejo.
Función | Descripción |
---|---|
float cabsf(float complex arg) double cabs(doble complejo arg) long double cabsl(long double complex arg) |
Devuelve el valor absoluto del argumento complejo. |
complejo flotante cacosf(complejo flotante arg) complejo doble cacos(complejo doble arg) complejo doble largo cacosl(complejo doble largo arg) |
Devuelve los valores complejos de arco coseno del argumento complejo. |
complejo flotante cacoshf(complejo flotante arg) complejo doble cacosh(complejo doble arg) complejo doble largo cacoshl(complejo doble largo arg) |
Devuelve los valores del coseno hiperbólico del arco complejo del argumento complejo. |
float cargf(complejo flotante arg) double carg(complejo doble arg) long double cargl(complejo doble largo arg) |
Devuelve el ángulo de fase del argumento complejo (en radianes). |
complejo flotante casinf(complejo flotante arg) complejo doble casin(complejo doble arg) complejo doble largo casinl(complejo doble largo arg) |
Devuelve los valores complejos del arco seno del argumento complejo. |
complejo flotante casinhf(complejo flotante arg) complejo doble casin(complejo doble arg) complejo doble largo casinl(complejo doble largo arg) |
Devuelve los valores del seno hiperbólico del arco complejo del argumento complejo. |
complejo flotante catanf(complejo flotante arg) complejo doble catan(complejo doble arg) complejo doble largo catanl(complejo doble largo arg) |
Devuelve los valores complejos del arco tangente del argumento complejo. |
complejo flotante catanhf(complejo flotante arg) complejo doble catan(complejo doble arg) complejo doble largo catanl(complejo doble largo arg) |
Devuelve los valores tangentes hiperbólicos del arco complejo del argumento complejo. |
complejo flotante ccosf(complejo flotante arg) complejo doble ccos(complejo doble arg) complejo doble largo ccosl(complejo doble largo arg) |
Devuelve los valores de coseno complejo del argumento complejo. |
complejo flotante cexpf(complejo flotante arg) complejo doble cexp(complejo doble arg) complejo doble largo cexpl(complejo doble largo arg) |
Devuelve el valor complejo e arg donde e es la base del logaritmo natural |
float crealf(complejo flotante arg) double creal(complejo doble arg) long double creall(complejo doble largo arg) |
Devuelve la parte real del argumento complejo. |
float cimagf(complejo flotante arg) double cimag(complejo doble arg) long double cimagl(complejo doble largo arg) |
Devuelve la parte imaginaria del argumento complejo. |
complejo flotante clogf(complejo flotante arg) complejo doble clog(complejo doble arg) complejo doble largo cimagl(complejo doble largo arg) |
Devuelve la parte imaginaria del argumento complejo. |
complejo flotante conjf(complejo flotante arg) complejo doble conj(complejo doble arg) complejo doble largo conjl(complejo doble largo arg) |
Devuelve el conjugado del argumento complejo. |
complejo flotante cpowf (complejo flotante a, complejo doble largo b) | Devuelve el valor complejo de a b |
complejo flotante csqrtf(complejo flotante arg) complejo doble csqrt(complejo doble arg) complejo doble largo csqrtl(complejo doble largo arg) |
Devuelve la raíz cuadrada compleja del argumento. |
Ejemplos 3: Programa para encontrar el Conjugado de un número complejo.
#include <complex.h> #include <stdio.h> int main(void) { double real = 1.3, imag = 4.9; double complex z = CMPLX(real, imag); double complex conj_f = conjf(z); printf("z = %.1f% + .1fi\n", creal(conj_f), cimag(conj_f)); }
z = 1.3-4.9i
Ejemplos 4: Programa para hallar el valor absoluto de un número complejo.
#include <complex.h> #include <stdio.h> int main(void) { double real = 1.3, imag = 4.9; double complex z = CMPLX(real, imag); printf("Absolute value = %.1f", cabsf(z)); }
Absolute value = 5.1
Ejemplos 4: Programa para hallar el ángulo de fase de un número complejo.
#include <complex.h> #include <stdio.h> int main(void) { double real = 1.3, imag = 4.9; double complex z = CMPLX(real, imag); printf( "Phase Angle = %.1f radians\n", cargf(z)); }
Phase Angle = 1.3 radians
Publicación traducida automáticamente
Artículo escrito por avsadityavardhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA