Gordon Royle on Thu, 07 Jun 2018 08:37:27 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Counting real roots of integer polynomials |
Hi, I have a large number (hundreds of millions) of integer polynomials of moderate degree (about 15-20) and coefficients (less than 6 digits each). They may have complex roots, but I just want to collect data about certain real roots. In particular, I want to know (1) How many roots the polynomial has in the open interval (1,2) (2) The multiplicity (possibly 0) of 2 as a root For other reasons, I am sure that x=1 is a simple root of each of these polynomials. At the moment I do the following: - count the roots in the closed interval [1,2] with “polrootsreal” with argument [1,2] - count the roots at 2 by using polrootsreal again with argument [2,2] - subtract the second value from the first value and take off another 1 I am not sure if I should do something else instead - maybe factor the polynomial to find the multiplicity of the root at 2, and save one call to polrootsreal? Being primarily an end-user of polynomial routines, I do not have a feel for the relative costs for factoring versus solving etc; though I could probably try some simple experiments there may be a more sophisticated way of addressing my problem that I would just never come across. Any advice will be gratefully received. Thanks Gordon