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 !!!