15 KiB
15 KiB
In [59]:
# load("ZetaFunctionsNewtonND.py") load("zetas_triples_general.py") R.<x, y, z> = QQ[] f=(y^2-x^3)^2+x^5*y g=(y^2-x^3)^3+x^10 d=f^3-g^2
In [2]:
d
Out[2]:
-x^20 + 2*x^19 + 3*x^17*y - 3*x^16*y^2 + x^15*y^3 - 12*x^14*y^3 + 18*x^11*y^5 + x^10*y^6 - 12*x^8*y^7 + 3*x^5*y^9
In [34]:
Zd=ZetaFunctions(d) Zd.give_info_newton(faces=False, cones=False, compact = False)
Newton's polyhedron of -x^20 + 2*x^19 + 3*x^17*y - 3*x^16*y^2 + x^15*y^3 - 12*x^14*y^3 + 18*x^11*y^5 + x^10*y^6 - 12*x^8*y^7 + 3*x^5*y^9:
support points = [(20, 0, 0), (19, 0, 0), (17, 1, 0), (16, 2, 0), (15, 3, 0), (14, 3, 0), (11, 5, 0), (10, 6, 0), (8, 7, 0), (5, 9, 0)]
vertices = [(5, 9, 0), (19, 0, 0), (17, 1, 0)]
number of proper faces = 15
Facet 0: x + 2*y - 19 >= 0
Facet 1: 2*x + 3*y - 37 >= 0
Facet 2: x - 5 >= 0
Facet 3: y >= 0
Facet 4: z >= 0
In [35]:
f1 = R(f(x=x^2, y=x^3 * (y + 1)) / x^12) g1 = R(g(x=x^2, y=x^3 * (y - 1)) / x^18) d1 = R(d(x=x^2, y=x^3 * (y - 1)) / x^37)
In [36]:
f1
Out[36]:
y^4 + 4*y^3 + x*y + 4*y^2 + x
In [37]:
g1
Out[37]:
y^6 - 6*y^5 + 12*y^4 - 8*y^3 + x^2
In [38]:
d1
Out[38]:
3*y^9 - 27*y^8 + x*y^6 + 96*y^7 - 6*x*y^5 - 168*y^6 + x^2*y^3 + 15*x*y^4 + 144*y^5 - 3*x^2*y^2 - 20*x*y^3 - 48*y^4 - x^3 + 3*x^2*y + 12*x*y^2 - x^2
In [39]:
Zd1=ZetaFunctions(d1) Zd1.give_info_newton(faces=False, cones=False, compact = False)
Newton's polyhedron of 3*y^9 - 27*y^8 + x*y^6 + 96*y^7 - 6*x*y^5 - 168*y^6 + x^2*y^3 + 15*x*y^4 + 144*y^5 - 3*x^2*y^2 - 20*x*y^3 - 48*y^4 - x^3 + 3*x^2*y + 12*x*y^2 - x^2:
support points = [(0, 9, 0), (0, 8, 0), (1, 6, 0), (0, 7, 0), (1, 5, 0), (0, 6, 0), (2, 3, 0), (1, 4, 0), (0, 5, 0), (2, 2, 0), (1, 3, 0), (0, 4, 0), (3, 0, 0), (2, 1, 0), (1, 2, 0), (2, 0, 0)]
vertices = [(0, 4, 0), (2, 0, 0)]
number of proper faces = 11
Facet 0: 2*x + y - 4 >= 0
Facet 1: x >= 0
Facet 2: y >= 0
Facet 3: z >= 0
In [40]:
A = Matrix(QQ, 6, [ [-3, 0, 1, 0, 0, 0], [0, -2, 1, 0, 0, 0], [1, 1, -3, 0, 1, 0], [0, 0, 0, -3, 0, 1], [0, 0, 1, 0, -2, 1], [0, 0, 0, 1, 1, -1] ]) Vf = vector(4 * [0] + [1] + [0] ) Vg = vector( 5 * [0] + [1] ) Vd = vector([5] + [1] + 2 * [0] + [2] + [0] )
In [41]:
det(-A)
Out[41]:
1
In [45]:
n, Nf, Ng, Nd, Nhs, euler, nus, pols = trinomiales_general(A, Vf, Vg, [], Vd, total=False)
In [46]:
Nf, Ng, Nd
Out[46]:
((4, 6, 12, 13, 26, 39), (6, 9, 18, 20, 39, 60), (14, 19, 37, 39, 78, 117))
In [47]:
pols
Out[47]:
{0: (z^3 + x^2*z^2 + x^8, (2, 1, 1), -4),
1: (z^3 + x^3*z^2 + x^10, (3, 1, 1), 0),
2: (z^3 + x^6*z^2 + x^19, (5, 1, 1), -1),
3: (z^3 + x^13*z + x^20, (6, 1, 1), 1),
4: (z^3 + x^26*z + x^39, (11, 1, 1), -2),
5: (z^3 + x^39*z + x^60, (17, 1, 1), 0),
(0, 2): (z^3 + x^2*y^6*z^2 + x^8*y^19, (2, 5, 1), 1),
(1, 2): (z^3 + x^3*y^6*z^2 + x^10*y^19, (3, 5, 1), 1),
(2, 4): (z^3 + x^6*y^13*z^2 + x^19*y^39, (5, 11, 1), 1),
(3, 5): (z^3 + x^13*y^39*z + x^20*y^60, (6, 17, 1), 1),
(4, 5): (z^3 + x^26*y^39*z + x^39*y^60, (11, 17, 1), 1),
(0, 'd'): (z^3 + x^2*z^2 + x^8*y, (2, 1, 1), 5),
(1, 'd'): (z^3 + x^3*z^2 + x^10*y, (3, 1, 1), 1),
(4, 'd'): (z^3 + x^13*z^2 + x^39*y, (11, 1, 1), 2)}
In [48]:
zt, zm, dic = zetas(n, pols, info=True)
In [49]:
zt.factor()
Out[49]:
(1357/2223) * (s + 23/38)^-1 * (s + 11/18)^-1 * (s + 8/13)^-1 * (s + 5/8)^-1 * (s + 1)^-1 * (s^4 + 182245/65136*s^3 + 126929/43424*s^2 + 175993/130272*s + 55/236)
In [50]:
dic
Out[50]:
{1: 5, 2: 5, 3: 1, 4: 4, 8: 4, 18: 1, 13: 1, 38: 1, 39: 1}
In [51]:
for j in dic: print("El factor ciclotómico de ", j, "tiene multiplicidad ", dic[j])
El factor ciclotómico de 1 tiene multiplicidad 5 El factor ciclotómico de 2 tiene multiplicidad 5 El factor ciclotómico de 3 tiene multiplicidad 1 El factor ciclotómico de 4 tiene multiplicidad 4 El factor ciclotómico de 8 tiene multiplicidad 4 El factor ciclotómico de 18 tiene multiplicidad 1 El factor ciclotómico de 13 tiene multiplicidad 1 El factor ciclotómico de 38 tiene multiplicidad 1 El factor ciclotómico de 39 tiene multiplicidad 1
In [60]:
componentes = zetas_components(n, pols, A, Vf, Vg, Vd, Nf, Ng, Nd, info=True)
In [61]:
for a in componentes: zetatop, zetamon, dic = componentes[a] print(a) print(zetatop.factor()) print(dic) print("=================")
('polos', (3, 5, (3, 5), (4, 5)))
(5/143) * (s + 8/13)^-1 * (s + 1)^-1 * (s + 16/5)
{13: -1, 39: -1}
=================
('unos', (0, 2, 1, (0, 2), (1, 2), (2, 4), (0, 'd'), (1, 'd')))
(986/1881) * (s + 23/38)^-1 * (s + 11/18)^-1 * (s + 8/13)^-1 * (s + 5/8)^-1 * (s + 1)^-1 * (s^4 + 99233/36192*s^3 + 119869/42432*s^2 + 265381/205088*s + 11385/51272)
{1: 4, 2: 5, 4: 4, 8: 4, 18: 1, 38: 1}
=================
('unos', ((4, 'd'),))
(4/429) * (s + 8/13)^-1 * (s + 1)^-1 * (s + 12)
{13: -2, 39: -2}
=================
('dic', (4,))
(6/143) * (s + 8/13)^-1 * (s + 1)^-1 * (s - 8/3)
{1: 1, 3: 1, 13: 4, 39: 4}
=================
In [22]:
Vd
Out[22]:
(5, 1, 0, 0, 2, 0)
In [18]:
f2=z^3 + x^6*z^2 + x^19 zf2=ZetaFunctions(f2) zf2.topological_zeta(local=true, weights=[5,1,1])
Out[18]:
(32/855*s^2 + 491/3420*s + 253/3420)/(s^3 + 379/171*s^2 + 1085/684*s + 253/684)
In [19]:
(s^3 + 379/171*s^2 + 1085/684*s + 253/684).factor()
Out[19]:
(s + 23/38) * (s + 11/18) * (s + 1)
In [20]:
f4=z^3 + x^26*z + x^39 zf4=ZetaFunctions(f4) zf4.topological_zeta(local=true, weights=[11,1,1])
Out[20]:
(-3/143*s + 8/143)/(s^2 + 21/13*s + 8/13)
In [21]:
f5=z^3 + x^39*z + x^60 zf5=ZetaFunctions(f5) zf5.topological_zeta(local=true, weights=[17,1,1])
Out[21]:
(22/1989*s + 73/1989)/(s^2 + 190/117*s + 73/117)
In [22]:
f3=z^3 + x^13*z + x^20 zf3=ZetaFunctions(f3) zf3.topological_zeta(local=true, weights=[6,1,1])
Out[22]:
(7/234*s + 25/234)/(s^2 + 64/39*s + 25/39)
In [23]:
f0=z^3 + x^2*z^2 + x^8 zf0=ZetaFunctions(f0) zf0.topological_zeta(local=true, weights=[2,1,1])
Out[23]:
(-1/8*s + 5/16)/(s^2 + 13/8*s + 5/8)
In [24]:
f1=z^3 + x^3*z^2 + x^10 zf1=ZetaFunctions(f1) zf1.topological_zeta(local=true, weights=[3,1,1])
Out[24]:
(1/20*s + 13/60)/(s^2 + 33/20*s + 13/20)
In [ ]: