Número complexo
Definição
Um número complexo z é um número que pode ser escrito na forma
\hspace{0.5cm} z = x + yionde x é chamado de parte real de z e y é chamado de parte imaginária de z . A unidade imaginária i tem como propriedade
\hspace{0.5cm} i^2 = -1 \;\; \rightarrow \;\; i = \sqrt{-1}Isto significa que, ao elevarmos a unidade imaginária i ao quadrado, obteremos um valor negativo.
O conjunto dos números complexos, representado por {\mathbb{C}} , corresponde ao maior conjunto numérico existente. Portanto, o conjunto dos números reais está contido no conjunto dos números complexos ( {\mathbb{R}} \subset {\mathbb{C}} ). Assim, podemos dizer que os números complexos representam o conjunto de todos os pares ordenados (x,y) cujos elementos pertencem ao conjunto dos números reais {\mathbb{R}}.
Exemplo
O programa a seguir exibe a parte real e a parte imaginária de 4 números. Note que a parte imaginária em Python é representada por j (ou J ). A letra j foi adotada em Python para seguir a convenção da Engenharia Elétrica.
a = 3.4 + 2.3j b = 4.1 c = 2.1 - 3j d = 5 print(type(a)) print('a:', type(a), ', parte real =', a.real, ', parte imag. =', a.imag) print('b:', type(b), ', parte real =', b.real, ', parte imag. =', b.imag) print('c:', type(c), ', parte real =', c.real, ', parte imag. =', c.imag) print('d:', type(d), ', parte real =', d.real, ', parte imag. =', d.imag)
A execução do programa mostra que a variável do tipo real e a variável do tipo inteiro possuem parte imaginária igual a zero. São quatro números complexos com as seguintes coordenadas: (3.4,2.3), (4.1,0.0), (2.1,-3.0) e (5,0)
a: <class 'complex'>, parte real = 3.4 , parte imag. = 2.3 b: <class 'float'>, parte real = 4.1 , parte imag. = 0.0 c: <class 'complex'>, parte real = 2.1 , parte imag. = -3.0 d: <class 'int'>, parte real = 5 , parte imag. = 0
Operações
Sejam z_1 = 2.3 + 1.4 i e z_2 = 3.6 -2 i.
- Adição – soma as partes correspondentes de cada número.
- Subtração – subtrai as partes correspondentes de cada número.
- Multiplicação – multiplica cada parte de um número pelas duas partes do outro número. Lembre-se que i^2 = -1 .
- Divisão – para efetuar esta operação é preciso definir o conjugado de z como \overline{z} = x -yi. Então
Usando Python temos
z1 = 2.3 + 1.4J z2 = 3.6 -2j print('z1 + z2 =', z1 + z2) print('z1 - z2 =', z1 - z2) print('z1 * z2 =', z1 * z2) print('z1 / z2 =', z1 / z2)
A resposta confirma os resultados obtidos nas operações acima.
z1 + z2 = (5.9-0.6000000000000001j) z1 - z2 = (-1.3000000000000003+3.4j) z1 * z2 = (11.079999999999998+0.4400000000000004j) z1 / z2 = (0.32311320754716977+0.5683962264150942j)
Método complex()
Este método retorna um número complexo. Vejamos um exemplo.
a = complex(-2.1, 3.4) b = complex(4.5) c = complex(0,3.1) d = complex() e = complex('1+2j') print('a = ', a, ', real =', a.real, ', imag. =', a.imag) print('b = ', b, ', real =', b.real, ', imag. =', b.imag) print('c = ', c, ', real =', c.real, ', imag. =', c.imag) print('d = ', d, ', real =', d.real, ', imag. =', d.imag) print('e = ', e, ', real =', e.real, ', imag. =', e.imag)
A resposta do programa mostra que o método complex() espera, como entrada, dois valores reais. Quando estes valores não são fornecidos, o valor zero é usado. Se a entrada for uma string, o método tenta convertê-la para um número complexo.
a = (-2.1+3.4j) , real = -2.1 , imag. = 3.4 b = (4.5+0j) , real = 4.5 , imag. = 0.0 c = 3.1j , real = 0.0 , imag. = 3.1 d = 0j , real = 0.0 , imag. = 0.0 e = (1+2j) , real = 1.0 , imag. = 2.0
É interessante observar o que acontece quando os argumentos do método complex() são números complexos.
a = complex(1+2j, 3-1j) print(a)
A resposta do programa é
(2+5j)
A explicação para esse resultado é simples. Basta lembrar que o número complexo corresponde à soma da primeira coordenada com a segunda coordenada multiplicada por j (estamos aqui usando a notação de Python ao invés da tradicional notação matemática).
\hspace{0.5cm} a = 1+2j + (3-1j) \times j = 1 + 2j +3j - j^2= 1 + 5j -(-1) = 2 + 5jIdentificador
Ao contrário dos números inteiros e dos números reais, dois números complexos com um mesmo valor não são necessariamente o mesmo objeto. Podemos usar o método id() para verificar.
a = 2.3 + 1.5j b = 2.3 + 1.5j c = a print('id(a) = ', id(a)) print('id(b) = ', id(b)) print('id(c) = ', id(c))
A resposta do programa mostra que as variáveis a e b possuem diferentes identificação (são dois objetos distintos), enquanto a e c são dois nomes para um mesmo objeto.
id(a) = 140073248469808 id(b) = 140073248469872 id(c) = 140073248469808