Seite 1 von 1

pow() für komplexe Argumente

Verfasst: Dienstag 2. Mai 2023, 19:50
von hubertgrassmann
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?

Re: pow() für komplexe Argumente

Verfasst: Dienstag 2. Mai 2023, 19:58
von nezzcarth
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

Re: pow() für komplexe Argumente

Verfasst: Dienstag 2. Mai 2023, 20:22
von Sirius3
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.

Re: pow() für komplexe Argumente

Verfasst: Dienstag 2. Mai 2023, 20:40
von hubertgrassmann
das ist klar; aber was ist mit pow(complex(1,-2), complex(5,-3))