2011-12-03 23 views
53

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

+0

Como usted dice que es nuevo en matemáticas, se puede escribir lo que usted quiere hacer en notación matemática? – Mark

+7

No creo que esto debería haberse cerrado. También encontré confuso que Python usó la sintaxis imaginaria 'j' común en ingeniería sobre la sintaxis 'i' más intuitiva común en matemáticas, estadística, R, etc. La primera respuesta a continuación hizo un buen trabajo al presentar eso. – Mittenchops

+0

Parece un docbug legítimo en Python que 'help (complex)' no muestra ningún ejemplo, a diferencia de p. 'import decimal; help (decimal) ' – smci

Respuesta

105

en Python, puede poner 'j' o 'J' después de un número para que sea 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 utiliza generalmente para la corriente. (Reasoning found here.)

The type of a complex number is complex, y se puede utilizar el tipo como constructor, si lo prefiere:

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

Un número complejo tiene algunos descriptores de acceso incorporados:

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

Varios incorporada funciones compatibles con números complejos:

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

The standard module cmath tiene más funciones que manejan los números complejos:

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

'i' también es utilizado 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 lo tanto, i == -j. FYJ ... – jvriesem

11

El siguiente ejemplo para complex numbers debe ser explica por sí mismo, incluyendo 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 
>>>