pow() für komplexe Argumente

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
hubertgrassmann
User
Beiträge: 61
Registriert: Montag 26. Dezember 2022, 14:53

Die Funktion sqrt() liefert einen Wert, obwohl es zwei Werte gibt.
Wie ist es mit pow(a,b) bei komplexen Zahlen a,b? Es ergibt EINEN Werte, wie kommt man die anderen ran?
nezzcarth
User
Beiträge: 1736
Registriert: Samstag 16. April 2011, 12:47

Python hat einen eingebauten Datentyp sowie Literale für komplexe Zahlen (allerdings wird zur Notation j statt des in der Mathematik gängigeren i verwendet). Daher sind keine zwei Argumente notwendig. Das Built-in 'pow' kann mit beidem umgehen; 'math.sqrt' nicht. Funktionen, die mit komplexen Argumenten klar kommen – darunter auch sqrt – finden sich im Modul 'cmath': https://docs.python.org/3/library/cmath.html

Code: Alles auswählen

In [1]: import math

In [2]: import cmath

In [3]: math.sqrt(-1)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[3], line 1
----> 1 math.sqrt(-1)

ValueError: math domain error

In [4]: cmath.sqrt(-1)
Out[4]: 1j
Sirius3
User
Beiträge: 18227
Registriert: Sonntag 21. Oktober 2012, 17:20

Bei a ^ (1/n) gibt es n Lösungen, die alle auf einem Kreis um den Ursprung liegen. Du mußt also nur auf die Phase pi*m/n addieren, und erhältst alle weiteren Lösungen.
hubertgrassmann
User
Beiträge: 61
Registriert: Montag 26. Dezember 2022, 14:53

das ist klar; aber was ist mit pow(complex(1,-2), complex(5,-3))
Antworten