Números Complexos em Python, Transformando de Cartesiano para Polar e Vice-Versa
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)