Как вычислить коэффициенты многочлена по вектору, содержащему корни из R - PullRequest
0 голосов
/ 28 октября 2018

Я хочу вычислить коэффициенты полинома на основе вектора, содержащего корни.Сначала я определил вектор коэффициентов:

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

Чего мне здесь не хватает?

1 Ответ

0 голосов
/ 29 октября 2018

Обратите внимание, что

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

...