Números Complexos em Python, Transformando de Cartesiano para Polar e Vice-Versa

Oséias Farias
Editorial 20 21
Published in
3 min readNov 20, 2021

Manipulação de números complexos usando a biblioteca Numpy do Pyhton.

Um número complexo é composto por uma parte real e uma parte imaginária, tal que z = a + jb, podemos representar um número complexo graficamente por um ponto cujas coordenadas cartesianas são (a + b) em um plano complexo, ou por um seguimento de reta que vai da origem do plano complexo até o ponto (a, b) o ângulo formado por esse seguimento de reta e o eixo x é denominado theta, tal como mostrado na figura abaixo.

Para encontrar o conjugado de um número complexo é preciso apenas trocar o sinal da parte imaginária, ou seja, o conjugado é o espelhamento do número complexo, como mostrado na imagem acima, onde z* é o conjugado de z.

Podemos escrever um número complexo na forma Cartesiana ou na forma polar, assim surge algumas relações de transformações.

onde:

Transformando da forma Cartesiana Para a Polar Usando Python

Importando a biblioteca numpy, damos um “apelido” de np para ficar mais fácil de escrever o código.

import numpy as np

agora escreveremos o código para transforma de Cartesiano para Polar.

# forma de escrever um número complexo em Python
z = 2 + 3j
# Encontrando o r que o mesmo que o valor absoluto de
# z ou também chamado módulo de z |z|.
r = np.abs(z)
print(r)# Uma outra forma de encontrar esse valor, é escrevendo a fórmula
r2 = np.sqrt(np.real(z)**2 + np.imag(z)**2)
print(r2)

Agora que vimos duas formas de encontrar o r, podemos encontrar o valor de theta.

# Encontra o ângulo de z, usamos o método 
# np.angle do numpy para isso
theta = np.angle(z)
print(theta)
# uma outra forma e usando a fórmula dada
theta2 = np.arctan(np.imag(z)/np.real(z))
print(theta2)

Podemos ainda, transforma o ângulo de radiano para graus, com o seguinte código.

theta_grau = (180 * theta)/np.pi
print(theta_grau)

Transformando da forma Polar Para a Cartesiana Usando Python

Para transforma da forma Polar para a Cartesiana, podemos usar as seguintes relações:

Escrevendo o código, temos:

a = r*np.cos(theta)        # relação para encontrar a
b = r*np.sin(theta) # relação para encontrar b
print(f"a = {a}\nb = {b}") # Mostrando o resultado

Por fim, ainda podemos escrever um número complexo usando a fórmula de Euler:

É possível escrever essa notação em python, fica da seguinte forma:

# Número Complexo na forma exponencial
z_e = r*np.exp(1j*theta)
print(z)

--

--