Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Brute force works well here : Let's first get these roots of the unity as algebraics :

sage: Rt.<t>=PolynomialRing(QQbar)
sage: Lc=[s[0] for s in (t^3-1).roots()];Lc
[1,
 -0.500000000000000? - 0.866025403784439?*I,
 -0.500000000000000? + 0.866025403784439?*I]

Use those coefficients to create the needed polynomials :

sage: Rx.<x>=PolynomialRing(QQbar)
sage: L=3
sage: Lp=[(1+c*x)^L for c in Lc];Lp
[x^3 + 3*x^2 + 3*x + 1,
 (1.000000000000000? + 0.?e-18*I)*x^3 + (-1.500000000000000? + 2.598076211353316?*I)*x^2 + (-1.500000000000000? - 2.598076211353316?*I)*x + 1,
 (1.000000000000000? + 0.?e-18*I)*x^3 + (-1.500000000000000? - 2.598076211353316?*I)*x^2 + (-1.500000000000000? + 2.598076211353316?*I)*x + 1]

But of course :

sage: reduce(lambda a,b:gcd(a,b), Lp)
1

Now, you can also do the same in SR :

sage: var("x")
x

Coefficients :

sage: Lc=[s.rhs() for s in solve(x^3-1,x)]
sage: Lc
[1/2*I*sqrt(3) - 1/2, -1/2*I*sqrt(3) - 1/2, 1]

Polynomials :

sage: Lp=[(1+c*x)^L for c in Lc];Lp
[-1/8*(x*(-I*sqrt(3) + 1) - 2)^3, -1/8*(x*(I*sqrt(3) + 1) - 2)^3, (x + 1)^3]

And again :

sage: reduce(lambda a,b:gcd(a,b), Lp)
1

HTH,