Question

I'm thinking that @GGrothendieck's answer to the request for solutions to fractional roots of negative numbers deserves a graphical addendum:

Can someone plot the roots in a unit complex circle. as well as add the "graphical sum" of some of the roots, i.e. the sequential products of the same 5 roots of -8, vectors multiplied in sequence?

x <- as.complex(-8)  # or x <- -8 + 0i
      # find all three cube roots
xroot5 <- (x^(1/5) * exp(2*c(0:4)*1i*pi/5))
plot(xroot5, xlim=c(-8, 2),  ylim=c(-5,5))
abline(h=0,v=0,lty=3)

Originally I was thinking this would be some sort of head to tail illustration but complex multiplication is a series of expansions and rotations around the origin.

enter image description here

Was it helpful?

Solution 2

The circle is centered at 0, 0. The roots all have the same radius and picking any one of them, the radius is

r <- Mod(xroot[1])

The following gives a plot which looks similar to the plot in the question except we have imposed an aspect ratio of 1 in order to properly draw it and there is a circle drawn through the 5 points:

plot(Re(xroot5), Im(xroot5), asp = 1)

library(plotrix)
draw.circle(0, 0, r) 

Multiplying any root by

e <- exp(2*pi*1i/5) 

will rotate it into the next root. For example, this plots xroot5[1] in red:

i <- 0
points(Re(xroot5[1] * e^i), Im(xroot5[1] * e^i), pch = 20, col = "red") 

and then repeat the last line for i = 1, 2, 3, 4 to see the others successively turn red.

OTHER TIPS

The Reduce function with accumulate=TRUE will deliver the sequence of intermediate powers of each of the roots of x^5 = -8 up to the fith power:

x <- as.complex(-8)  # or x <- -8 + 0i
# find all five roots
xroot5 <- (x^(1/5) * exp(2*c(0:4)*1i*pi/5))
xroot5
#[1]  1.226240+0.890916i -0.468382+1.441532i -1.515717+0.000000i -0.468382-1.441532i  
#[5] 1.226240-0.890916i
(Reduce("*", rep( xroot5[4], 5),acc=TRUE) )
#[1] -0.468382-1.441532i -1.858633+1.350376i  2.817161+2.046787i  1.631001-5.019706i 
#[5] -8.000000+0.000000i
# Using the fourth root:
beg <- (Reduce("*", rep( xroot5[4], 5),acc=TRUE) )[-5]
ends <- (Reduce("*", rep( xroot5[4], 5),acc=TRUE) )[-1]
# Need more space
plot(xroot5, xlim=c(-8, 2),  ylim=c(-6,6))
abline(h=0,v=0,lty=3)
arrows(Re(beg),Im(beg), Re(ends), Im(ends), col="red")

   # Plot sequence of powers of first root:
   beg <- Reduce("*", rep( xroot5[1], 5),acc=TRUE)[-5]
   ends <- Reduce("*", rep( xroot5[1], 5),acc=TRUE)[-1]
   arrows(Re(beg),Im(beg), Re(ends), Im(ends), col="blue")

enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top