16 KiB
Hay que cargar estos dos ficheros. Yo he comentado el segundo, pero vosotros no.
load("zetas_triples.py") # load("ZetaFunctionsNewtonND.py")
Datos de una resolución y anillos
R.<x, y, z> = QQ[] S.<s> = QQ[] T.<t> = QQ[] A = Matrix(QQ, 17, [-13, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -4, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -4, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1]) Vf = vector(4 * [0] + [1] + 7 * [0] + [1] + 4 * [0]) Vg = vector(8 * [0] + [1] + 7 * [0] + [1]) Vd = vector([13] + 7 * [0] + [1] + 7 * [0] + [1])
Aquí se dan el número de explosiones, las multiplicidades de cada función, el vector de las características de Euler, el divisor canónico y el diccionario con los datos de cada estratificación
n, Nf, Ng, Nd, euler, nus, pols = trinomiales(A, Vf, Vg, Vd)
Mostramos los polinomios de cada estrato, con los pesos y las características de Euler
for k in pols: p, w, e = pols[k] print(k) print("Polinomio:", p) print("Pesos:", w) print("Característica de Euler:", e) print("====================")
0 Polinomio: z^3 + x^4*z^2 + x^13 Pesos: (2, 1, 1) Característica de Euler: -13 ==================== 1 Polinomio: z^3 + x^10*z + x^13 Pesos: (3, 1, 1) Característica de Euler: 1 ==================== 2 Polinomio: z^3 + x^20*z + x^26 Pesos: (5, 1, 1) Característica de Euler: -1 ==================== 3 Polinomio: z^3 + x^21*z + x^26 Pesos: (6, 1, 1) Característica de Euler: 1 ==================== 4 Polinomio: z^3 + x^42*z + x^52 Pesos: (11, 1, 1) Característica de Euler: -1 ==================== 5 Polinomio: z^3 + x^28*z + x^39 Pesos: (7, 1, 1) Característica de Euler: 0 ==================== 6 Polinomio: z^3 + x^36*z + x^52 Pesos: (9, 1, 1) Característica de Euler: 0 ==================== 7 Polinomio: z^3 + x^44*z + x^65 Pesos: (11, 1, 1) Característica de Euler: 0 ==================== 8 Polinomio: z^3 + x^52*z + x^78 Pesos: (13, 1, 1) Característica de Euler: -2 ==================== 9 Polinomio: z^3 + x^10*z + x^13 Pesos: (3, 1, 1) Característica de Euler: 1 ==================== 10 Polinomio: z^3 + x^20*z + x^26 Pesos: (5, 1, 1) Característica de Euler: -1 ==================== 11 Polinomio: z^3 + x^21*z + x^26 Pesos: (6, 1, 1) Característica de Euler: 1 ==================== 12 Polinomio: z^3 + x^42*z + x^52 Pesos: (11, 1, 1) Característica de Euler: -1 ==================== 13 Polinomio: z^3 + x^28*z + x^39 Pesos: (7, 1, 1) Característica de Euler: 0 ==================== 14 Polinomio: z^3 + x^36*z + x^52 Pesos: (9, 1, 1) Característica de Euler: 0 ==================== 15 Polinomio: z^3 + x^44*z + x^65 Pesos: (11, 1, 1) Característica de Euler: 0 ==================== 16 Polinomio: z^3 + x^52*z + x^78 Pesos: (13, 1, 1) Característica de Euler: -2 ==================== (0, 8) Polinomio: z^3 + x^4*y^26*z^2 + x^13*y^78 Pesos: (2, 13, 1) Característica de Euler: 1 ==================== (0, 16) Polinomio: z^3 + x^4*y^26*z^2 + x^13*y^78 Pesos: (2, 13, 1) Característica de Euler: 1 ==================== (1, 2) Polinomio: z^3 + x^10*y^20*z + x^13*y^26 Pesos: (3, 5, 1) Característica de Euler: 1 ==================== (2, 4) Polinomio: z^3 + x^20*y^42*z + x^26*y^52 Pesos: (5, 11, 1) Característica de Euler: 1 ==================== (2, 5) Polinomio: z^3 + x^20*y^28*z + x^26*y^39 Pesos: (5, 7, 1) Característica de Euler: 1 ==================== (3, 4) Polinomio: z^3 + x^21*y^42*z + x^26*y^52 Pesos: (6, 11, 1) Característica de Euler: 1 ==================== (5, 6) Polinomio: z^3 + x^28*y^36*z + x^39*y^52 Pesos: (7, 9, 1) Característica de Euler: 1 ==================== (6, 7) Polinomio: z^3 + x^36*y^44*z + x^52*y^65 Pesos: (9, 11, 1) Característica de Euler: 1 ==================== (7, 8) Polinomio: z^3 + x^44*y^52*z + x^65*y^78 Pesos: (11, 13, 1) Característica de Euler: 1 ==================== (9, 10) Polinomio: z^3 + x^10*y^20*z + x^13*y^26 Pesos: (3, 5, 1) Característica de Euler: 1 ==================== (10, 12) Polinomio: z^3 + x^20*y^42*z + x^26*y^52 Pesos: (5, 11, 1) Característica de Euler: 1 ==================== (10, 13) Polinomio: z^3 + x^20*y^28*z + x^26*y^39 Pesos: (5, 7, 1) Característica de Euler: 1 ==================== (11, 12) Polinomio: z^3 + x^21*y^42*z + x^26*y^52 Pesos: (6, 11, 1) Característica de Euler: 1 ==================== (13, 14) Polinomio: z^3 + x^28*y^36*z + x^39*y^52 Pesos: (7, 9, 1) Característica de Euler: 1 ==================== (14, 15) Polinomio: z^3 + x^36*y^44*z + x^52*y^65 Pesos: (9, 11, 1) Característica de Euler: 1 ==================== (15, 16) Polinomio: z^3 + x^44*y^52*z + x^65*y^78 Pesos: (11, 13, 1) Característica de Euler: 1 ==================== (0, 'd') Polinomio: z^3 + x^4*z^2 + x^13*y Pesos: (2, 1, 1) Característica de Euler: 13 ==================== (4, 'f') Polinomio: z^3 + x^42*y*z + x^52 Pesos: (11, 1, 1) Característica de Euler: 1 ==================== (8, 'g') Polinomio: z^3 + x^52*z + x^78*y Pesos: (13, 1, 1) Característica de Euler: 1 ==================== (8, 'd') Polinomio: z^3 + x^26*z^2 + x^78*y Pesos: (13, 1, 1) Característica de Euler: 1 ==================== (12, 'f') Polinomio: z^3 + x^42*y*z + x^52 Pesos: (11, 1, 1) Característica de Euler: 1 ==================== (16, 'g') Polinomio: z^3 + x^52*z + x^78*y Pesos: (13, 1, 1) Característica de Euler: 1 ==================== (16, 'd') Polinomio: z^3 + x^26*z^2 + x^78*y Pesos: (13, 1, 1) Característica de Euler: 1 ====================
Y ahora calculamos las funciones zeta.
zt, zm, dic = zetas(n, pols, info=True)
Lo siguiente es la descomposición en fracciones parciales de la función zeta topológica
quo, desc = zt.partial_fraction_decomposition(decompose_powers=True) print("el cociente es ", quo) for p in desc: show(p.factor())
el cociente es 0
for j in dic: print("El factor ciclotómico de ", j, "tiene multiplicidad ", dic[j])
El factor ciclotómico de 1 tiene multiplicidad 3 El factor ciclotómico de 2 tiene multiplicidad 15 El factor ciclotómico de 3 tiene multiplicidad 1 El factor ciclotómico de 6 tiene multiplicidad 2 El factor ciclotómico de 13 tiene multiplicidad 2 El factor ciclotómico de 26 tiene multiplicidad 15 El factor ciclotómico de 78 tiene multiplicidad 2
Ahora se calcula usando la estratificación sin las transformadas estrictas de $f, g$ y se comprueba que el resultado es el mismo (total=False).
n1, Nf1, Ng1, Nd1, euler1, nus1, pols1 = trinomiales(A, Vf, Vg, Vd, total=False)
zt1, zm1, dic1 = zetas(n1, pols1, info=True)
zt == zt1 and zm == zm1 and dic == dic1
True
Consideramos ahora solo la resolución del discriminante.
B = A.delete_columns([3, 4, 11, 12]).delete_rows([3, 4, 11, 12]) B[2, 2] = -2 B[8, 8] = -2 Wf = vector(Vf.list()[:2] + [2] + Vf.list()[5:10] + [2] + Vf.list()[13:]) Wg = vector(Vg.list()[:3] + Vg.list()[5:11] + Vg.list()[13:]) Wd = vector(Vd.list()[:3] + Vd.list()[5:11] + Vd.list()[13:])
Ahora total=False es obligatorio. También sale lo mismo.
n2, Nf2, Ng2, Nd2, euler2, nus2, pols2 = trinomiales(B, Wf, Wg, Wd, total=False)
zt2, zm2, dic2 = zetas(n2, pols2, info=True)
zt == zt1 and zm == zm1 and dic == dic1
True