Verwendung komplexer Zahlen in Python [geschlossen]

111

Ich bin ein Mathe-Neuling. Jetzt beschäftige ich mich eingehender mit Python-Datentypen. Ich kann nicht verstehen, wie man eine komplexe Zahl verwendet. Bitte geben Sie mir Beispiele für die Verwendung komplexer Zahlen in Python.

I159
quelle
1
Können Sie, wenn Sie sagen, dass Sie neu in Mathematik sind, schreiben, was Sie in mathematischer Notation tun möchten?
mmmmmm
14
Ich denke nicht, dass dies hätte geschlossen werden sollen. Ich fand es auch verwirrend, dass Python die im Engineering übliche imaginäre 'j'-Syntax gegenüber der intuitiveren' i'-Syntax verwendete, die in Mathematik, Statistik, R usw. üblich ist. Die erste Antwort unten hat gute Arbeit geleistet, um dies einzuführen.
Mittenchops
Es scheint ein legitimer Docbug unter Python zu sein, help(complex)der keine Beispiele zeigt, im Gegensatz zu z. B. `import decimal; Hilfe (dezimal) `
smci

Antworten:

188

In Python können Sie 'j' oder 'J' nach einer Zahl setzen, um sie imaginär zu machen, sodass Sie leicht komplexe Literale schreiben können:

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

Das Suffix 'j' stammt aus der Elektrotechnik, wo normalerweise die Variable 'i' für Strom verwendet wird. ( Begründung hier gefunden. )

Der Typ einer komplexen Zahl istcomplex , und Sie können den Typ als Konstruktor verwenden, wenn Sie Folgendes bevorzugen:

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

In einer komplexen Nummer sind einige Accessoren integriert:

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

Mehrere integrierte Funktionen unterstützen komplexe Zahlen:

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

Das Standardmodulcmath verfügt über weitere Funktionen, die komplexe Zahlen verarbeiten:

>>> import cmath
>>> cmath.sin(2 + 3j)
(9.15449914691143-4.168906959966565j)
Rob Mayoff
quelle
8
'i' wird auch von Mathematikern, Physikern und fast allen anderen Wissenschaftlern verwendet. Wenn das nicht verwirrend genug ist, verwenden einige 'i', um die "positive" Quadratwurzel von eins darzustellen, während 'j' die "negative" Quadratwurzel von eins ist. Also i == -j. FYJ ...
jvriesem
13

Das folgende Beispiel für komplexe Zahlen sollte selbsterklärend sein, einschließlich der Fehlermeldung am Ende

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