Ich habe über einige verwirrende Verhalten mit Quadratwurzeln komplexer Zahlen in Python gerannt. Das Ausführen dieses Code:Quadratwurzel von komplexen Zahlen in Python
from cmath import sqrt
a = 0.2
b = 0.2 + 0j
print(sqrt(a/(a - 1)))
print(sqrt(b/(b - 1)))
der Ausgang
0.5j
-0.5j
Ähnliches passiert mit
print(sqrt(-1 * b))
print(sqrt(-b))
ergibt Es scheint, diese Paare von Aussagen sollten die gleiche Antwort geben?
Nach [Wolfram] (https://www.wolframalpha.com/) sind Sie richtig. Das erste Paar ([link] (https://www.wolframalpha.com/input/?i=sqrt (0.2 +% 2F + (0.2 + - + 1))) und [link] (https: //www.wolframalpha .com/input /? i = sqrt (+ (0,2% 2B0i) +% 2F + (+ (0,2% 2B0i) + - 1+)))) beide sollten '0,5i' sein, und das zweite Paar ([link] (https://www.wolframalpha.com/input/?i=sqrt(-1+*+(0.2+%2B+0i))) und [link] (https://www.wolframalpha.com/input/ ? i = sqrt (-1 + * + (0.2 +% 2B + 0i)))) sollten beide "0.447214 ... i" sein. Die Quelle für 'cmath.sqrt()' ist [hier] (https://hg.python.org/cpython/file/tip/Modules/cmathmodule.c#l732) ... – Jens
Beide Antworten sind richtig, die Frage Deshalb gibt es verschiedene Konjugate zurück. – tzaman
FWIW das Verhalten erscheint das gleiche in 2.7 und 3.5. – tzaman