Get a list of zeros of a polynomial using factor, baby version of rationalPoints.
i1 : QQ[x]; p = (x-2)^2 * (x^2-2) * (x^3-x-1); zeros p o3 = {2} o3 : List |
i4 : F = toField(QQ[q]/(q^2-2)); zeros_F p o5 = {2, q, -q} o5 : List |
i6 : F = splittingField p; #zeros_F p o7 = 6 |
Note that when the degree is big, the expression of each zero in terms of a primitive element is usually complicated.
i8 : last zeros_F p 2918037 11 43736 10 176511427 9 1742239 8 o8 = - ------------a + ----------a + ------------a - ----------a - 194598748990 3926880585 194598748990 2617920390 ------------------------------------------------------------------------ 7776041337 7 54520588 6 38282000079 5 50576753 4 ------------a + ----------a + ------------a - ---------a - 389197497980 3926880585 194598748990 436320065 ------------------------------------------------------------------------ 382379122373 3 1544138762 2 456488667029 137345843 ------------a + ----------a + ------------a + ---------- 389197497980 3926880585 389197497980 1308960195 o8 : F |
i9 : (map(F, ring p, {oo})) p o9 = 0 o9 : F |
Over finite fields.
i10 : q = baseChange_13 p; zeros q o11 = {2} o11 : List |
i12 : F = splittingField q; describe F o13 = GF 4826809 |
i14 : #zeros_F q o14 = 6 |
The object zeros is a method function with options.