Итак, я пытаюсь написать алгоритм croot (k, n), который возвращает корень kth из единицы с n == n. Я получаю в основном правильный ответ, однако это дает мне действительно странные представления, которые кажутся неправильными для определенных чисел. Вот пример.Вычисление nth Roots of Unity в Python
import cmath
def croot(k, n):
if n<=0:
return None
return cmath.exp((2 * cmath.pi * 1j * k)/n)
for k in range(8):
print croot(k, 8)
Выход:
(1+0j)
(0.70710...+0.70710...j)
(6.12323399574e-17+1j)
Вау Вау Вау. Итак, корень, когда k = 2 и n = 8, является неправильным, так как он должен быть только i, который был бы представлен как 1j, или j, или 1.00000j и т. Д. Может ли кто-нибудь помочь мне здесь? Я делаю это, потому что я пытаюсь написать алгоритм БПФ. Я не очень опытен с комплексными числами и Python, поэтому я мог бы очень ошибиться.
Спасибо,
Если вы, ребята, нужна дополнительная информация просто спросить.
Только так вы знаете, вы уже есть эта функциональность в numpy. – wim
О, боже, большое вам спасибо. – robins35
Подождите, вы имели в виду функциональность для корней единства или для fft, потому что это для задания, и мне нужно написать часть fft. – robins35