Steenbrink/Tutorial.ipynb
2024-04-18 23:08:55 +02:00

16 KiB

Hay que cargar estos dos ficheros. Yo he comentado el segundo, pero vosotros no.

In [1]:
load("zetas_triples.py")
# load("ZetaFunctionsNewtonND.py")

Datos de una resolución y anillos

In [2]:
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

In [3]:
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

In [4]:
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.

In [5]:
zt, zm, dic = zetas(n, pols, info=True)

Lo siguiente es la descomposición en fracciones parciales de la función zeta topológica

In [16]:
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
<html>\(\displaystyle \left(-\frac{1580}{1521}\right) \cdot (s + 1)^{-1}\)</html>
<html>\(\displaystyle \left(\frac{3043}{3042}\right) \cdot (s + \frac{1}{2})^{-1}\)</html>
<html>\(\displaystyle \left(\frac{19}{2028}\right) \cdot (s + \frac{1}{2})^{-2}\)</html>
<html>\(\displaystyle \left(\frac{1}{12168}\right) \cdot (s + \frac{1}{2})^{-3}\)</html>
In [17]:
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).

In [18]:
n1, Nf1, Ng1, Nd1, euler1, nus1, pols1 = trinomiales(A, Vf, Vg, Vd, total=False)
In [19]:
zt1, zm1, dic1 = zetas(n1, pols1, info=True)
In [20]:
zt == zt1 and zm == zm1 and dic == dic1
Out[20]:
True

Consideramos ahora solo la resolución del discriminante.

In [21]:
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.

In [22]:
n2, Nf2, Ng2, Nd2, euler2, nus2, pols2 = trinomiales(B, Wf, Wg, Wd, total=False)
In [23]:
zt2, zm2, dic2 = zetas(n2, pols2, info=True)
In [24]:
zt == zt1 and zm == zm1 and dic == dic1
Out[24]:
True
In [ ]: