Постройте умножение комплексных корней дробных многочленов

Я думаю, что ответ @GGrothendieck на запрос решения дробных корней из отрицательных чисел заслуживает графического дополнения:

Может ли кто-нибудь построить корни в единичном сложном круге. а также сложить "графическую сумму" некоторых корней, т.е. последовательных произведений тех же 5 корней из -8, умноженных последовательно на векторы?

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)

Первоначально я думал, что это будет какая-то иллюстрация головы к хвосту, но сложное умножение — это серия расширений и вращений вокруг начала координат.

введите здесь описание изображения


person IRTFM    schedule 24.03.2014    source источник
comment
Я не видел вашего комментария, когда публиковал свои усилия. Умножение каждого корня также увеличивает модуль результата на 8 ^ (1/3). Это могло бы улучшить эвристическое значение, если бы я нарисовал единичный круг, поскольку каждый из корней выходит за его пределы. Я был бы рад проверить ваш ответ, если вы опубликуете его.   -  person IRTFM    schedule 24.03.2014


Ответы (2)


Центр окружности находится в точках 0, 0. Все корни имеют одинаковый радиус, и при выборе любого из них радиус равен

r <- Mod(xroot[1])

Ниже приведен график, который похож на график в вопросе, за исключением того, что мы установили соотношение сторон 1, чтобы правильно его нарисовать, и через 5 точек проведен круг:

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

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

Умножение любого корня на

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

повернет его в следующий корень. Например, это отображает xroot5[1] красным цветом:

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

а затем повторите последнюю строку для i = 1, 2, 3, 4, чтобы увидеть, как остальные последовательно становятся красными.

person G. Grothendieck    schedule 24.03.2014
comment
Мне нравится идея рисовать расширяющиеся круги модуля. Каждая из n-х степеней корней будет лежать на таких окружностях. - person IRTFM; 24.03.2014

Функция Reduce с accumulate=TRUE выдаст последовательность промежуточных степеней каждого из корней x^5 = -8 до пятой степени:

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")

введите здесь описание изображения

person IRTFM    schedule 24.03.2014