Usando números complexos em C++




#include <iostream.h>
#include <complex.h>

//   Este programinha calcula o logaritmo de -1, que obviamente
//   nao e' um numero real.  Calcula tambem o cosseno de i.
//
//   Usa a funcao logaritmo complexa do C++ que e' definida como
//		   log(z) = log(abs(z)) + i arg(z)
//   e a funcao cosseno complexa que e' definida como
//                 cos(z) = (exp (i*z) + exp(-i*z))/2

int main(void)
{
   double x = -1, y = 0;
   complex w, z = complex(x, y);

   cout << "z = "<< z << "\n";
   cout << "A  parte real de z e' " << real(z);
   cout << " e a parte imaginaria e' " << imag(z) << " \n";

   w = log(z);      // Logaritmo complexo de z
   cout << "\nlog(z) = "<< w << "\n";
   cout << "O logaritmo de -1 e' o numero complexo pi*i " << "\n";

   z = complex(0, 1); // z = (0, 1) = i
   w = cos(z); // Cosseno de i
   cout << "\ncos(i) = " << w << "\n";

   cout << "Note que o cosseno de i e' um numero real maior do que 1 !!!\n";

   return 0;
}




A saída do programinha listado acima está mostrada a seguir. Observe que o C++ denota o número complexo a+bi na forma (a, b), como é usual em Matemática.





z = (-1, 0)
A  parte real de z e' -1 e a parte imaginaria e' 0

log(z) = (0, 3.141593)
O logaritmo de -1 e' o numero complexo pi*i

cos(i) = (1.543081, 0)
Note que o cosseno de i e' um numero real maior do que 1 !!!