给定包含 R 中的根的向量,如何计算多项式的系数

How to compute the coefficients of a polynomial given a vector containing the roots in R

我想根据包含根的向量计算多项式的系数。我首先定义了一个系数向量:

pol <- c(0,1,2,3,4) 

并计算根

roots <- polyroot(pol)

要有测试结果。 然后我尝试了以下操作:

result <- 1
for (n in 1:(length(roots))){
result <- c(result, 0) + c(0,-roots[n]*result)
}

但我的结果如下:

result 
[1] 1.00+0i 0.75+0i 0.50+0i 0.25+0i 0.00+0i

我在这里错过了什么?

注意

identical(polyroot(pol), polyroot(pol / 4))
# [1] TRUE

也就是说,通过从多项式求其根,您会丢失有关最高阶项(在本例中为 4)的系数的信息。例如,2x^2-x=2x(x-1/2),还有 x^2-x/2=x(x-1/2),所以根是相同的,我们只是归一化关于二次项的第一个多项式。所以,

Re(result) * 4
# [1] 4 3 2 1 0

给出结果但还需要tail(pol, 1)的知识。