
Nathan S. answered 08/11/19
College Math Lecturer, Game Designer
If you want to think about complex roots it probably best to first get a handle on what complex numbers do when they multiply.
Every complex number can be written as reiθ for some positive real number r and some angle θ. If you plot the complex number on the plane, the complex number can be drawn as a vector with r being the distance from the origin and θ being the angle made with the x axis.
When you multiply two complex numbers, you add the angles and you multiply the distances: reiθ * r'eiθ' = (r+r')ei(θ+θ') . So then what is an nth root of reiθ? Its a complex number whose distance from the origin is the positive nth root of r (in the real sense), and whose angle φ becomes θ when stuck end to end n times.
Now, it sounds like you already understood this next subtlety: I did not say that φ = θ/n is the only solution. That's one solution, but there are n of them. This is the fundamental theorem of algebra: there will always be exactly n roots. Lets try to figure out where they are.
For just a moment, lets look at the nth roots of 1. These are called the nth roots of unity. Their position on the complex plane forms a regular polygon, with one of the corners sitting at (1,0). You can look at a picture here http://mathworld.wolfram.com/RootofUnity.html
All other complex numbers are going to follow the exact same pattern, but with a small caveat: the "radius" of the polygon will no longer be 1. It will be the nth root of r as we said before. And the tip of one of the corners will no longer be at (1,0) all of the time, i.e. φ=0. Instead it will be at φ=θ/n.
Why? We already know one of the roots: its nthroot(r)*eiθ/n . And using that we can play this little trick:
nthroot(r*eiθ ) = nthroot(1*r*eiθ ) = nthroot(1)*nthroot(r*eiθ )
so we can get all the other roots by multiplying nthroot(r)*eiθ/n by the nth roots of unity. And multiplying by a root of unity just adds the angle, meaning just rotate by 2π/n.
So, to summarize, the nth roots of r*eiθ form a regular n-gon with a radius of nthroot(r), and one of the corners sits at an angle of θ/n from the positive x axis. Algebraically they can be written as nthroot(r)*ei(2π + θ)/n , nthroot(r)*ei(4π + θ)/n , and so on up to nthroot(r)*ei(2(n-1)π + θ)/n .
Hope that helps!