I agree with Deepayan.

This example reveals an opportunity for improving the polyroot algorithm:


** Any polynomial of odd degree with real coefficients must have at least one real root. This example has only one, which is reported as -999.49974975+1.110223e-16i: The imaginary part is clearly round-off.


** Moreover, any complex roots must come in complex conjugate pairs. In this example, roots [1] and [10] are complex conjugates, as are roots [2] and [7], etc. It's interesting to me that the roots are not sorted to put complex conjugates together.


However, improving this algorithm is probably not worth the time of anyone who might know enough to actually do it with a reasonable effort ;-)


Spencer Graves


On 10/2/25 12:49, Deepayan Sarkar wrote:
How can an odd degree polynomial be positive for all x?


Deepayan

On Thu, 2 Oct, 2025, 6:14 pm tgs77m--- via R-help, <[email protected]>
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

______________________________________________
[email protected] 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]]

______________________________________________
[email protected] 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.

______________________________________________
[email protected] 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.

Reply via email to