给定包含 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)
的知识。
我想根据包含根的向量计算多项式的系数。我首先定义了一个系数向量:
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)
的知识。