Sage can compute roots of a univariant polynomial.
sage: x = PolynomialRing(RationalField(), 'x').gen() sage: f = x^3 - 1 sage: f.roots() [(1, 1)] sage: f = (x^3 - 1)^2 sage: f.roots() [(1, 2)] sage: x = PolynomialRing(CyclotomicField(3), 'x').gen() sage: f = x^3 - 1 sage: f.roots() [(1, 1), (zeta3, 1), (-zeta3 - 1, 1)]
There are some situations where GAP does find the roots of a
univariate polynomial but GAP does not do this generally. (The roots must
generate either a finite field or a subfield of a cyclotomic field.)
However, there is a GAP package called RadiRoot
, which must be installed
into Sage's installation of GAP,
which does help to do this for polynomials with rational coefficients
(radiroot
itself requires other packages to be installed; please see
its webpage for more details).
The Factors
command actually has an option which allows you to
increase the groundfield so that a factorization actually returns
the roots. Please see the examples given in section 64.10
``Polynomial Factorization'' of the GAP Reference Manual for more details.
See About this document... for information on suggesting changes.