问题描述
我想在 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])
,但对于纯虚参数,cis
比 exp
稍微高效一些。并且 cispi
稍微更准确,或者至少更有可能在您期望的时候为您提供漂亮的整数,如上所示。