Возможно, это проблема алгоритма, но следующий фрагмент кода
numpy.power ((- 1 + 0j), 0.5)
дает следующий результат
( 6.1230317691118863e-17 + 1j)
Аналогичные выражения, например numpy.power (complex (-1) ,. 5)
, дают тот же результат, однако - numpy.sqrt (complex (-1 ))
дает ожидаемый результат 1j
. Ясно, что результат не должен иметь реальной части, поэтому я упускаю что-то важное или мне нужно сообщить об этом numpy-разработчикам.
На всякий случай спрашивает, нет, я не могу округлить реальную часть (мне нужна полная точность для этого расчета), и да, мне нужно использовать функцию мощности.