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.


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)

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
>>> 
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.