Ask Your Question

Revision history [back]

Unfortunately i can not see any method about this for polynomials, but you can use sympy shich is shipped with Sage, though not imported by default (nor completely interfaced):

sage: R.<x> = PolynomialRing(QQ)
sage: f = 27*x^4 - 27/5*x^3 + 1737/100*x^2 - 171/100*x + 37/10
sage: from sympy import decompose
 sage: decompose(f)
[27*x**2 + 171*x/10 + 37/10, x**2 - x/10]
sage: a,b = _
sage: a
27*x**2 + 171*x/10 + 37/10
sage: type(a)
<class 'sympy.core.add.Add'>
sage: a = R(SR(a))
sage: b = R(SR(b))
sage: a
27*x^2 + 171/10*x + 37/10
sage: a.parent()
Univariate Polynomial Ring in x over Rational Field
sage: a(b) == f
True