Números complejos en C++ | Serie 1

La biblioteca compleja implementa la clase compleja para contener números complejos en forma cartesiana y varias funciones y sobrecargas para operar con ellos.
complejo2

  • real() – Devuelve la parte real del número complejo.
  • imag() – Devuelve la parte imaginaria del número complejo.

    // Program illustrating the use of real() and 
    // imag() function
    #include <iostream>     
      
    // for std::complex, std::real, std::imag
    #include <complex>      
    using namespace std;
      
    // driver function
    int main()
    {    
      // defines the complex number: (10 + 2i)
      std::complex<double> mycomplex(10.0, 2.0);
      
      // prints the real part using the real function
      cout << "Real part: " << real(mycomplex) << endl;
      cout << "Imaginary part: " << imag(mycomplex) << endl;
      return 0;
    }

    Producción:

    Real part: 10
    Imaginary part: 2
    
  • abs() – Devuelve el absoluto del número complejo.
  • arg() – Devuelve el argumento del número complejo.

    // Program illustrating the use of arg() and abs()
    #include <iostream>     
      
    // for std::complex, std::abs, std::atg
    #include <complex> 
    using namespace std;
      
    // driver function
    int main()
    {    
      // defines the complex number: (3.0+4.0i)
      std::complex<double> mycomplex (3.0, 4.0);
      
      // prints the absolute value of the complex number
      cout << "The absolute value of " << mycomplex << " is: ";
      cout << abs(mycomplex) << endl;
        
      // prints the argument of the complex number
      cout << "The argument of " << mycomplex << " is: ";
      cout << arg(mycomplex) << endl;
      
      return 0;
    }

    Producción:

    The absolute value of (3,4) is: 5
    The argument of (3,4) is: 0.927295
    
  • polar() : construye un número complejo a partir de la magnitud y el ángulo de fase.

    real = magnitud*coseno(ángulo de fase)
    imaginario = magnitud*seno(ángulo de fase)

    // Program illustrating the use of polar()
    #include <iostream>     
      
    // std::complex, std::polar
    #include <complex>
    using namespace std;
      
    // driver function
    int main()
    {
      cout << "The complex whose magnitude is " << 2.0;
      cout << " and phase angle is " << 0.5;
        
      // use of polar()
      cout << " is " << polar (2.0, 0.5) << endl;
      
      return 0;
    }

    Producción:

    The complex whose magnitude is 2 and phase angle is 0.5 is (1.75517,0.958851)
    
  • norm() : se utiliza para encontrar la norma (valor absoluto) del número complejo. Si z = x + iy es un número complejo con parte real x y parte imaginaria y, el complejo conjugado de z se define como z'(z bar) = x – iy, y el valor absoluto, también llamado norma, de z Se define como :
    complejo-2

    // example to illustrate the use of norm()
    #include <iostream>     
      
    // for std::complex, std::norm
    #include <complex> 
    using namespace std;
      
    // driver function
    int main()
    {    
      // initializing the complex: (3.0+4.0i)
      std::complex<double> mycomplex (3.0, 4.0);
      
      // use of norm()
      cout << "The norm of " << mycomplex << " is " 
           << norm(mycomplex) <<endl;
      
      return 0;
    }

    Producción:

    The norm of (3,4) is 25.
    
  • conj() – Devuelve el conjugado del número complejo x. El conjugado de un número complejo (real,imag) es (real,-imag).

    // Illustrating the use of conj()
    #include <iostream> 
    using namespace std;
      
    // std::complex, std::conj
    #include <complex>      
      
    // driver program
    int main()
    {
      std::complex<double> mycomplex (10.0,2.0);
      
      cout << "The conjugate of " << mycomplex << " is: ";
        
      // use of conj()
      cout << conj(mycomplex) << endl;
      return 0;
    }

    Producción:

     The conjugate of (10,2) is (10,-2)
    
  • proj() – Devuelve la proyección de z(número complejo) sobre la esfera de Riemann. La proyección de z es z, excepto para los infinitos complejos, que se asignan al valor complejo con un componente real de INFINITY y un componente imaginario de 0,0 o -0,0 (donde se admita), según el signo del componente imaginario de z.

    // Illustrating the use of proj()
      
    #include <iostream>
    using namespace std;
      
    // For std::complex, std::proj
    #include <complex>
       
    // driver program
    int main()
    {
        std::complex<double> c1(1, 2);
        cout << "proj" << c1 << " = " << proj(c1) << endl;
       
        std::complex<double> c2(INFINITY, -1);
        cout << "proj" << c2 << " = " << proj(c2) << endl;
       
        std::complex<double> c3(0, -INFINITY);
        cout << "proj" << c3 << " = " << proj(c3) << endl;
    }

    Producción:

    proj(1,2) = (1,2)
    proj(inf,-1) = (inf,-0)
    proj(0,-inf) = (inf,-0)
    
  • sqrt() : devuelve la raíz cuadrada de x utilizando la rama principal, cuyos cortes están a lo largo del eje real negativo.

    // Illustrating the use of sqrt()
    #include <iostream>
    using namespace std;
      
    // For std::ccomplex, stdc::sqrt
    #include <complex>
       
    // driver program
    int main()
    {    
        // use of sqrt()
        cout << "Square root of -4 is "
             << sqrt(std::complex<double>(-4, 0)) << endl
             << "Square root of (-4,-0), the other side of the cut, is "
             << sqrt(std::complex<double>(-4, -0.0)) << endl;
    }

    Producción:

    Square root of -4 is (0,2)
    Square root of (-4,-0), the other side of the cut, is (0,-2)
    

Artículo siguiente: Números complejos en C++ | conjunto 2

Este artículo es una contribución de Shambhavi Singh . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *