简体   繁体   English

绘制分数多项式的复数根的乘法

[英]Plot the multiplication of complex roots of fractional polynomials

I'm thinking that @GGrothendieck's answer to the request for solutions to fractional roots of negative numbers deserves a graphical addendum: 我在想@GGrothendieck对负数的分数根求解答的要求的答案应该用图形来补充:

Can someone plot the roots in a unit complex circle. 有人可以绘制单位复数圆中的根吗? as well as add the "graphical sum" of some of the roots, ie the sequential products of the same 5 roots of -8, vectors multiplied in sequence? 以及加上某些根的“图形和”,即-8的相同5个根的顺序乘积,矢量是否按顺序相乘?

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. 本来我以为这是从头到尾的说明,但是复杂的乘法是围绕原点的一系列扩展和旋转。

在此处输入图片说明

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: 具有accumulate=TRUEReduce函数将传递x^5 = -8的每个根的中间幂的序列,直至the fith幂:

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

在此处输入图片说明

The circle is centered at 0, 0. The roots all have the same radius and picking any one of them, the radius is 圆以0,0为中心。所有根都具有相同的半径,并选择其中任意一个,半径为

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: 以下给出了一个看起来与问题中的图相似的图,不同的是我们为了正确绘制而将纵横比设置为1,并且通过5个点绘制了一个圆:

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: 例如,这将xroot5[1]绘制为红色:

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. 然后针对i = 1、2、3、4重复最后一行,以查看其他相继变为红色。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM