2011-12-03 13 views
53

io sono un principiante di matematica. Ora sto approfondendo i tipi di dati Python. Non riesco a capire come usare un numero complesso. Per favore, dammi esempi di utilizzo di numeri complessi in Python.Complesso utilizzo numeri in python

+0

Come dite siete nuovi alla matematica, si può scrivere quello che si vuole fare in notazione matematica? – Mark

+7

Non penso che questo avrebbe dovuto essere chiuso. Ho anche trovato confuso il fatto che Python usasse la sintassi immaginaria 'j' comune in ingegneria sulla più intuitiva sintassi 'i' comune in matematica, statistica, R, ecc. La prima risposta in basso fece un buon lavoro introducendolo. – Mittenchops

+0

Sembra un docbug legittimo su Python che 'help (complex)' non mostra alcun esempio, a differenza ad es. 'decimale di importazione; help (decimale) ' – smci

risposta

105

in Python, si può mettere 'j' o 'J' dopo un certo numero di renderlo immaginario, in modo da può scrivere letterali complessi facilmente:

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

il suffisso 'j' deriva da ingegneria elettrica, dove la variabile 'i' è di solito utilizzato per la corrente. (Reasoning found here.)

The type of a complex number is complex, ed è possibile utilizzare il tipo come un costruttore, se si preferisce:

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

Un numero complesso ha alcune funzioni di accesso incorporati:

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

Diversi built-in funzioni supportano numeri complessi:

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

.531.280.623,56321 milioni ha più funzioni che gestiscono i numeri complessi:

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

'i' è usato anche da matematici, fisici e quasi tutti gli altri scienziati. Se ciò non è abbastanza confuso, alcuni usano 'i' per rappresentare la radice quadrata "positiva" di uno, mentre 'j' è la radice quadrata "negativa" di uno. Quindi io == -j. FYJ ... – jvriesem

11

L'esempio seguente per complex numbers dovrebbe essere auto esplicativo compreso il messaggio di errore alla fine

>>> 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 
>>>