在 Julia 中计算单位的 n 根

Calculating n-roots of unity in Julia

我希望在 Julia 中有一个基于 $n$ 的算法,这样它就可以生成 n 个单位根。

(1,w^{1}, w^{2}, ..., w^{n-1}。这样对于每个 1\leq i\leq n,我们有那 (w^{i})^{n}-1=0 )

非常感谢您的合作,

julia> roots(n) = map(cispi, range(0, 2, length=n+1)[1:end-1])
roots (generic function with 1 method)

julia> roots(8)
8-element Vector{ComplexF64}:
                 1.0 + 0.0im
  0.7071067811865476 + 0.7071067811865476im
                 0.0 + 1.0im
 -0.7071067811865476 + 0.7071067811865476im
                -1.0 + 0.0im
 -0.7071067811865476 - 0.7071067811865476im
                 0.0 - 1.0im
  0.7071067811865476 - 0.7071067811865476im

你可以写成roots_exp(n) = exp.(im .* range(0, 2pi, length=n+1)[1:end-1]),但是对于纯虚构的论证,cisexp稍微更有效率。并且 cispi 稍微更准确一些,或者至少更有可能在您期望的时候为您提供漂亮的整数,如上所示。