| Singular https://www.singular.uni-kl.de/forum/ | |
| Roots of rational polynomials https://www.singular.uni-kl.de/forum/viewtopic.php?f=10&t=2597 | Page 1 of 1 | 
| Author: | jcapco [ Mon Apr 24, 2017 8:49 am ] | 
| Post subject: | Roots of rational polynomials | 
| Consider this code: Code: ring A=0,x,lp; poly f=(x-3/17)*(x+2/3); I don't see a straightforward way to find the exact (as rational numbers) roots of f. I looked a bit at the documentation and if I use the command laguerre(f,5,1), I obtain roots up to 5 digits (decimal) precision and not really the rational roots 3/17 and -2/3. Of course I can use factorize(f) and write a code that extracts the rational roots, but I am sure (I hope) there is a cleaner way to do this. Any hints would be much appreciated. Thanks! | |
| Author: | jcapco [ Mon Apr 24, 2017 9:36 am ] | 
| Post subject: | Re: Roots of rational polynomials | 
| So far I am using this procedure. It could exist in some library already? Code: //rational roots of a rational polynomial proc Qroots(poly f) { ideal l = factorize(f,1); list ret; for (int i=1;i<=size(l);i++) { if (deg(l[i])==1) { //roots are rational if (size(l[i])==1) { ret=ret+list(0);} else { ret = ret + list(-leadcoef(l[i][2])/leadcoef(l[i][1])); } } } return(ret); } | |
| Page 1 of 1 | All times are UTC + 1 hour [ DST ] | 
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ | |