Utilizzo di numeri complessi in Python [chiuso]


111

Sono un principiante in 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.


1
Come dici che sei nuovo in matematica, puoi scrivere quello che vuoi fare in notazione matematica?
mmmmmm

14
Non penso che questo avrebbe dovuto essere chiuso. Ho anche trovato confuso il fatto che python usasse la sintassi immaginaria "j" comune nell'ingegneria rispetto alla sintassi "i" più intuitiva comune in matematica, statistica, R, ecc. La prima risposta di seguito ha fatto un buon lavoro introducendolo.
Mittenchops

Sembra un docbug legittimo su Python che help(complex)non mostra alcun esempio, a differenza ad esempio di `import decimal; help (decimal) `
smci

Risposte:


188

In Python, puoi mettere "j" o "J" dopo un numero per renderlo immaginario, in modo da poter scrivere facilmente letterali complessi:

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

Il suffisso "j" deriva dall'ingegneria elettrica, dove la variabile "i" viene solitamente utilizzata per la corrente. ( Ragionamento trovato qui. )

Il tipo di un numero complesso ècomplex , e puoi usare il tipo come costruttore se preferisci:

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

Un numero complesso ha alcune funzioni di accesso integrate:

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

Diverse funzioni integrate supportano numeri complessi:

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

Il modulo standardcmath ha più funzioni che gestiscono numeri complessi:

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

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

13

Il seguente esempio per i numeri complessi dovrebbe essere autoesplicativo, incluso 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
>>> 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.