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.

I159
fonte
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)
rob mayoff
fonte
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
>>> 
Abhijit
fonte