Uso de números complexos em python [fechado]


111

Eu sou um novato em matemática. Agora estou me aprofundando nos tipos de dados Python. Não consigo entender como usar um número complexo. Por favor, me dê exemplos de uso de números complexos em Python.


1
Como você diz que é novo em matemática, você pode escrever o que deseja fazer em notação matemática?
mmmmmm

14
Eu não acho que isso deveria ter sido fechado. Também achei confuso que python usasse a sintaxe imaginária 'j' comum na engenharia em vez da sintaxe 'i' mais intuitiva comum em matemática, estatística, R, etc. A primeira resposta abaixo fez um bom trabalho ao apresentar isso.
Mittenchops de

Parece um docbug legítimo em Python que help(complex)não mostra nenhum exemplo, ao contrário de, por exemplo, `import decimal; help (decimal) `
smci

Respostas:


188

Em python, você pode colocar 'j' ou 'J' após um número para torná-lo imaginário, para que possa escrever literais complexos facilmente:

>>> 1j
1j
>>> 1J
1j
>>> 1j * 1j
(-1+0j)

O sufixo 'j' vem da engenharia elétrica, onde a variável 'i' é geralmente usada para corrente. ( Raciocínio encontrado aqui. )

O tipo de um número complexo écomplex , e você pode usar o tipo como um construtor se preferir:

>>> complex(2,3)
(2+3j)

Um número complexo tem alguns acessores integrados:

>>> z = 2+3j
>>> z.real
2.0
>>> z.imag
3.0
>>> z.conjugate()
(2-3j)

Várias funções integradas suportam números complexos:

>>> abs(3 + 4j)
5.0
>>> pow(3 + 4j, 2)
(-7+24j)

O módulo padrãocmath tem mais funções que lidam com números complexos:

>>> import cmath
>>> cmath.sin(2 + 3j)
(9.15449914691143-4.168906959966565j)

8
'i' também é usado por matemáticos, físicos e quase todos os outros cientistas. Se isso não for confuso o suficiente, alguns usam 'i' para representar a raiz quadrada "positiva" de um, enquanto 'j' é a raiz quadrada "negativa" de um. Assim, i == -j. FYJ ...
jvriesem

13

O exemplo a seguir para números complexos deve ser autoexplicativo, incluindo a mensagem de erro no final

>>> x=complex(1,2)
>>> print x
(1+2j)
>>> y=complex(3,4)
>>> print y
(3+4j)
>>> z=x+y
>>> print x
(1+2j)
>>> print z
(4+6j)
>>> z=x*y
>>> print z
(-5+10j)
>>> z=x/y
>>> print z
(0.44+0.08j)
>>> print x.conjugate()
(1-2j)
>>> print x.imag
2.0
>>> print x.real
1.0
>>> print x>y

Traceback (most recent call last):
  File "<pyshell#149>", line 1, in <module>
    print x>y
TypeError: no ordering relation is defined for complex numbers
>>> print x==y
False
>>> 
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.