[R] polyroot behaviour

Lukas Schneiderbauer |uk@@@@chne|derb@uer @end|ng |rom gm@||@com
Thu Oct 2 18:56:34 CEST 2025


Dear Thomas,

How can f be strictly positive if the leading term is an odd power of x?
For large negative x, x^11 will dominate, and f should become quite
negative. This argument is also supported by a graphical plot of f.
Assuming that f can indeed be negative, my suspicion is that the 11th root
is still a reasonable approximation to the actual root, but the gradient in
this region is high and so f(x) evaluated numerically is too sensitive to
small errors (that is why f(roots[[11]]) evaluates to a seemingly huge
number).

Best,
Lukas


On Thu, Oct 2, 2025 at 6:14 PM tgs77m--- via R-help <r-help using r-project.org>
wrote:

> Colleagues,
>
> g <- function(x) ( x^11 + 1000*x^10 + 500 *x^9 + 1 )
> coeffs <- c(1, rep(0, 8), 500, 1000, 1)
> roots <- polyroot(coeffs)
>
> Output
>
> [1]    0.25770068+3.958197e-01i
>  [2]   -0.34615184+3.782848e-01i
>  [3]   -0.04089779-4.838134e-01i
>  [4]    0.44124314-1.517731e-01i
>  [5]   -0.04089779+4.838134e-01i
>  [6]   -0.56201931-1.282822e-01i
>  [7]   -0.34615184-3.782848e-01i
>  [8]    0.44124314+1.517731e-01i
>  [9]   -0.56201931+1.282822e-01i
> [10]    0.25770068-3.958197e-01i
> [11] -999.49974975+1.110223e-16i
>
> [11] -999.49974975+1.110223e-16i  makes  no sense since f>0 for all x
>
> Why does polyroot do this?
>
> Thomas Subia
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list