Uso de números complejos en python [cerrado]

111

Soy un novato en matemáticas. Ahora estoy profundizando en los tipos de datos de Python. No entiendo cómo usar un número complejo. Por favor, dame ejemplos de uso de números complejos en Python.

I159
fuente
1
Como dices que eres nuevo en matemáticas, ¿puedes escribir lo que quieres hacer en notación matemática?
mmmmmm
14
No creo que esto debería haberse cerrado. También encontré confuso que Python usara la sintaxis imaginaria 'j' común en ingeniería sobre la sintaxis 'i' más intuitiva común en matemáticas, estadísticas, R, etc. La primera respuesta a continuación hizo un buen trabajo al presentar eso.
Mittenchops
Parece un docbug legítimo en Python que help(complex)no muestra ningún ejemplo, a diferencia de, por ejemplo, `import decimal; ayuda (decimal) `
smci

Respuestas:

188

En Python, puede poner 'j' o 'J' después de un número para hacerlo imaginario, por lo que puede escribir literales complejos fácilmente:

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

El sufijo 'j' proviene de la ingeniería eléctrica, donde la variable 'i' se usa generalmente para la corriente. ( Razonamiento encontrado aquí ) .

El tipo de un número complejo escomplex , y puede usar el tipo como constructor si lo prefiere:

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

Un número complejo tiene algunos elementos de acceso integrados:

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

Varias funciones integradas admiten números complejos:

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

El módulo estándarcmath tiene más funciones que manejan números complejos:

>>> import cmath
>>> cmath.sin(2 + 3j)
(9.15449914691143-4.168906959966565j)
Rob Mayoff
fuente
8
'i' también es utilizada por matemáticos, físicos y casi todos los demás científicos. Si eso no es lo suficientemente confuso, algunos usan 'i' para representar la raíz cuadrada "positiva" de uno, mientras que 'j' es la raíz cuadrada "negativa" de uno. Por tanto, i == -j. FYJ ...
jvriesem
13

El siguiente ejemplo para números complejos debe explicarse por sí mismo, incluido el mensaje de error al 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
fuente