Introdução aos Números Complexos em Python

Números Complexos em Python

Neste tutorial vamos mostrar como trabalhar com números complexos de forma básica usando a linguagem Python.

Números complexos possuem inúmeras aplicações, como por exemplo nas áreas de mecânica quântica, eletromagnetismo,  cartografia, processamento de sinais, geometria e diversas outras.

Mas o que são números complexos?

Na matemática, podemos classificar os números em duas categorias, os números reais e os números imaginários.

Um número real é aquele que, quando elevado ao quadrado sempre retorna um valor de sinal positivo, independente do número ser positivo ou negativo.

Por exemplo, 5 é um número real, pois 52 = 25 (positivo).
Outros exemplos de números reais:

-3 (-32 = 9)
1/2
34,23

Já números imaginários são números que, ao serem elevados ao quadrado, retornam um resultado negativo.
O número imaginário unitário é i, que simboliza a raiz quadrada de -1. Assim:

i2 = -1

Um número complexo z é a combinação de um número real com um número imaginário.
Assim, temos que:

z = a + bi

onde a é a parte real do número, e bi é a parte imaginária do número.

Exemplos de números complexos:

2 + 4i
-6 + 13i
7 – 5i
0.5 + 2.3i

Números Complexos em Python: o tipo complex

Para declarar uma variável do tipo complex (número complexo), basta atribuir-lhe um valor no formato x + yj. Por exemplo, vamos atribuir o número complexo 3+4j à variável x:

x = 3 + 4j

Note que em Python usamos a letra j para denotar a parte imaginária do número, em vez da letra i, que é usual na matemática convencional (a letra j é empregada em disciplinas de engenharia elétrica e física).
Podemos verificar o tipo da variável x com a função type(): 

type(x)
<class 'complex'>

Outra forma de criar um número complexo é com o emprego da função complex(x,y), que recebe dois parâmetros:

x: Valor da parte real do número complexo
y: Valor da parte imaginária do número complexo

Suponha que você quer criar a variável y, atribuindo-lhe o número complexo 5+2j. Usando a função complex() você pode simplesmente executar:

y = complex(5,2)

E então verificar o tipo da variável:

type(y)
<class 'complex'>

Verifique o conteúdo da variável também:

print(y)
(5+2j)

Operações com números complexos em Python

A linguagem Python nos permite realizar diversas operações usando números complexos, como soma, subtração, multiplicação e divisão, entre outras.

Vejamos alguns exemplos dessas operações básicas.

1 – Definir números complexos para usar nos exemplos de cálculos

a = 1+2j
b = complex(3,4)

2 – Soma de números complexos:

print(a + b)
(4+6j)

3 – Subtração de números complexos:

print(a - b)
(-2-2j)

4 – Multiplicação de números complexos:

print(a * b)
(-5+10j)

5 – Divisão de números complexos:

print(a / b)
(0.44+0.08j)

6 – Podemos obter as partes real e imaginária do número complexo acessando as propriedades real e imag do número, respectivamente:

print(a.real)
print(a.imag)
1.0
2.0

7 – Obter o Conjugado: Um conjugado possui a mesma parte real, porém uma parte imaginária de igual magnitude e sinal oposto. Para calculá-lo usamos o método conjugate():

print(b.conjugate())
(3-4j)

É isso aí! Neste tutorial introduzimos o conceito de números complexos em Python, e apresentamos algumas operações básicas que podem ser realizadas na linguagem. Na parte 2 deste tutorial vamos abordar o modulo cmath, que permite realizar diversas outras operações com números complexos, como cálculos de fase, conversão entre formas polar e retangular, uso de funções trigonométricas e hiperbólicas, funções de classificação, e muito mais.

 

Sobre Fábio dos Reis (1358 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*