У меня возникли проблемы с поиском сложного решения из сложного массива, предоставленного polyroot().R - Поиск некомплексного решения из функции «polyroot»() с «Im()»
coef1 = c(-10000,157.07963267949,0,0.523598775598299)
roots=polyroot(coef1)
возвращает
##[1] 23.01673- 0.00000i -11.50837+26.40696i -11.50837-26.40696i
, и я хотел бы индекс, который не имеет мнимую часть. В этом случае:
roots[1]
## [1] 23.01673-0i
Я собираюсь применить этот процесс в цикле, и хотел бы использовать Im() изолировать несложное решение, однако, когда я пытаюсь с помощью:
Im(roots)
## [1] -2.316106e-23 2.640696e+01 -2.640696e+01
и, следовательно, не может использовать что-то вроде:
which(Im(roots)==0)
который возвращает
##integer(0)
Я уверен, есть реальный корень данного участка от: там
plot(function(x) -10000 + 157.07963267949*x + 0.523598775598299*x^3,xlim=c(0,50))
abline(0,0,col='red')
ли какое-нибудь смешное округление происходит? Я бы предпочел решение, которое не связано с потоком () или что-нибудь подобное. У любого из вас эксперты R есть идеи? Приветствия, парни и девушки!
проверить функцию 'zapsmall' –