Merge branch 'master' of riemann.unizar.es:m.gonzalez/Steenbrink
This commit is contained in:
commit
6350a0e67a
@ -354,7 +354,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "SageMath 10.4.rc0",
|
||||
"display_name": "SageMath 10.4.rc1",
|
||||
"language": "sage",
|
||||
"name": "sagemath-devel"
|
||||
},
|
||||
|
||||
@ -1838,7 +1838,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "SageMath 10.4.rc3",
|
||||
"display_name": "SageMath 10.5.beta3",
|
||||
"language": "sage",
|
||||
"name": "sagemath-devel"
|
||||
},
|
||||
@ -1852,7 +1852,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.4"
|
||||
"version": "3.12.5"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@ -673,7 +673,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "SageMath 10.3.rc4",
|
||||
"display_name": "SageMath 10.4.beta6",
|
||||
"language": "sage",
|
||||
"name": "sagemath-devel"
|
||||
},
|
||||
@ -687,7 +687,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.1"
|
||||
"version": "3.12.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
30
Mult3.tex
30
Mult3.tex
@ -391,14 +391,17 @@ $$ \prod_{i=1}^n h_i^{2} \prod_{j=1}^m k_j^3 \left ( \prod_{i=1}^n h_i^{3n_i-2}
|
||||
|
||||
|
||||
\begin{proposition}
|
||||
The singular point is isolated if and only if the disciminant $D_zF$ is reduced.
|
||||
The singular point is isolated if and only if the discriminant $D_zF$ is reduced.
|
||||
\end{proposition}
|
||||
|
||||
\noindent \textcolor{red}{Proof. Ask Enrique.}
|
||||
|
||||
\begin{proposition}\label{prop.non-deg}
|
||||
The monic Weierstrass polynomial $z^3 -3b_2z + 2b_3$ is non degenerate unless $M_1(c_1+A)$ and $b_3 = M_2(c_2 + B)$ with $M_1^3 = M_2^2$ and \textcolor{red}{$2c_1=3c_2$}
|
||||
|
||||
\begin{proposition}\label{prop.non-deg} Let $b_2, b_3 \in \CC[[x, y]]$ with $b_2(0), b_3(0) = 0$. Let us write $b_2= M_2(c_2+A)$ and $b_3 = M_3(c_3 + B)$ with $M_2, M_3 \in \CC[x,y]$ (monic) monomials, $c_2, c_3 \in \CC^\ast$ and $A, B \in \CC[[x,y]]$ such that $A(0), B(0) = 0$.
|
||||
The monic Weierstrass polynomial $z^3 -3b_2z + 2b_3$ is non degenerate unless $(c_2M_2)^3 = (c_3M_3)^2$.
|
||||
\end{proposition}
|
||||
|
||||
\noindent \textcolor{blue}{Proof. The Newton polyhedron of $z^3 -3b_2z + 2b_3$ can be 2-dimensional, polygonal with two segments or polygonal with a unique segment. In the two first cases, it is non degenerate. The compact faces of the Newton polyhedron of $z^3 -3b_2z + 2b_3$ lie on a segment if and only if $(M_2)^3 = (M_3)^2$. The condition of $z^3 -3b_2z + 2b_3$ being non degenerate is equivalent to $z^3 -3b_2z + 2b_3 \in \CC[z]$ having a double root. Notice a triple root is not possible because the degree 2 monomial is zero. Assume that $z^3 -3b_2z + 2b_3 =(z-a)^2(z-b)$ for some $a, b \in \CC^\ast$. Equivalently, we have $2a+b=0$, and therefor $c_2=(\frac{b}{2})^2}$ and $c_3=(\frac{-b}{2})^3$.}
|
||||
|
||||
\section{Jung´s method for power series of multiplicity three }
|
||||
|
||||
@ -585,8 +588,8 @@ N^\Delta_i& 25& {\bf 26}& {\bf 52}& {\bf 78}& {\bf 104}& {\bf 130}& {\bf 156}& {
|
||||
\hline
|
||||
\hline
|
||||
\nu_i&2&3&5&7&9&11&13&6&11\\
|
||||
\chi()&-11&1&-1&0&0&0&-2&1&-1\\
|
||||
E_i^2& -13& -2& -4& -2& -2& -2& -1&-2&-1\\
|
||||
\chi()&-13&1&-1&0&0&0&-2&1&-1\\
|
||||
E_i^2& -11& -2& -4& -2& -2& -2& -1&-2&-1\\
|
||||
\hline
|
||||
\end{array}$$
|
||||
|
||||
@ -967,8 +970,8 @@ In this case, the Newton polyhedra of $F$ contains a unique two dimensional comp
|
||||
|
||||
|
||||
\item If $M_1^3 = M_2^2$, the point corresponding to the monomial $M_1z$ lies in the unique dimensional compact face of the Newton polyhedron of $F$. The face equation is equal to
|
||||
$$z^3 + c_1z + c_2.$$
|
||||
Therefore, $F$ is non degenerate with respect to its Newton polyhedron if and only if $3(c_1)^2 \ne 2(c_2)^3$.
|
||||
$$z^3 -3 c_1z + 2 c_2.$$
|
||||
Therefore, $F$ is non degenerate with respect to its Newton polyhedron if and only if \textcolor{blue}{$(c_1)^3 \ne (c_2)^2$}.
|
||||
|
||||
|
||||
\begin{tikzpicture}
|
||||
@ -1137,7 +1140,7 @@ $$J_{\check \tau_0}=\frac{2}{\nu_1(3m_2s + 2\nu_1+m_2)}$$
|
||||
We remark that this case it is equivalent to $f=z(z^2 - x^{m_2})$.
|
||||
|
||||
|
||||
\subsubsection{Third case $f= z^3 - x^{m_1}z^2 - x^{m_3}$ and $\omega = x^{\nu_1-1}dxdz$ such that $m_3 > m_1$}
|
||||
\subsubsection{Third case $f= z^3 - x^{m_1}z^2 - x^{m_3}$ and $\omega = x^{\nu_1-1}dxdz$ such that $m_3 > 3 m_1$}
|
||||
Newton polyhedra has five compact faces: the 0-dimensional faces $\tau_0$ corresponding to the monomial $z^3$, $\tau_1$ corresponding to the monomial $x^{m_1}z^2$, and $\tau_2$ corresponding to the monomial $ x^{m_3}$, and the 1-dimensional faces $\sigma_1$ contained in the hyperplanes
|
||||
$$p + m_1r = 3m_1$$
|
||||
and $\sigma_2$ contained in the hyperplanes
|
||||
@ -1179,9 +1182,9 @@ $$J_{\check \tau_0}=\frac{m_1}{\nu_1(3m_1s + \nu_1+m_1)}$$
|
||||
|
||||
|
||||
Similarly we have
|
||||
$$\zeta_f (t) = $$
|
||||
|
||||
We remark that this case is equivalent to $f=(z-x^{m_1})(z^2 - x^{m_3-m_2})$
|
||||
$$\zeta_f (t) = \frac{(t^{3m_1}-1)(t^{m_3}-1) }{(t-1)(t^3-1)} $$
|
||||
$$\zeta_f (t) = \frac{(t^{3m_1}-1)(t^{2m_3}-1) }{(t-1)(t^3-1)(t^{m_3}-1)}$$
|
||||
We remark that this case is equivalent to $f=(z-x^{m_1})(z^2 - x^{m_3-m_1})$
|
||||
|
||||
|
||||
\subsection{Trinomial forms for strata $E^\circ_{i,j}$}
|
||||
@ -1286,7 +1289,7 @@ $$Z(F_9, \omega_9)_{o_9}=Z(F_{9,31}, \omega_{9,31})_{o_{9,31}}= Z(F_{17}, \omega
|
||||
$$f_7=f_{15}=z^3 - x^{78}, \quad f_{7,33}=f_{15,34}=z^3 - x^{52}z + x^{78}y,$$
|
||||
and $$\omega_7=\omega_{15}=\omega_{7,33}=\omega_{15,34}= x^{13}yzdxdydz,$$
|
||||
From the formulas given in the previous section; we have
|
||||
$$Z(F_7, \omega_7)_{o_7}=Z(F_{7,33}, \omega_{7,33})_{o_{7,33}}= Z(F_{15}, \omega_{15})_{o_{15}}=Z(F_{15,34}, \omega_{15,34})_{o_{15,34}} = \frac{1}{26(s^2 +3/2 s + 1/2}$$
|
||||
$$Z(F_7, \omega_7)_{o_7}=Z(F_{7,33}, \omega_{7,33})_{o_{7,33}}= Z(F_{15}, \omega_{15})_{o_{15}}=Z(F_{15,34}, \omega_{15,34})_{o_{15,34}} = \frac{1}{26(s^2 +3/2 s + 1/2}.$$
|
||||
\end{example}
|
||||
|
||||
\subsection{Second reduction: Recursive elimination of exceptional $(-1)$-curve not intersecting the strict transform of the discrimiant}
|
||||
@ -1296,6 +1299,9 @@ $$Z(F_7, \omega_7)_{o_7}=Z(F_{7,33}, \omega_{7,33})_{o_{7,33}}= Z(F_{15}, \omega
|
||||
\begin{proposition}\label{red2}
|
||||
\end{proposition}
|
||||
|
||||
\begin{example} The Proposition \ref{red2} can be applied twice to eliminate the curves $E_9$ and $E_8$. First, $E_9$ is an exceptional $(-1)$-curve that does not intersect the strict transform of the discriminant, and $E_8$ is an exceptional with $E_8^2=-2$ After blowing down $E_9$, the exceptional curve $E_8$ becomes a $(-1)$-curve. It does not intersect the strict transform of the discriminant.
|
||||
\end{example}
|
||||
|
||||
|
||||
\subsection{Third reduction: $\QQ$-resolution of the discriminant}
|
||||
|
||||
|
||||
@ -18,8 +18,8 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "cad50def-ecb8-403f-b50c-ce026fbd216d",
|
||||
"execution_count": null,
|
||||
"id": "fdc11d23-4114-49ef-828a-b7a165169c46",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@ -28,8 +28,8 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "5ec9dd77-8118-4439-b8cb-4c475a2a645e",
|
||||
"execution_count": 14,
|
||||
"id": "b67cebe5-4b5a-46be-9055-9ecbdecf96f1",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
@ -38,7 +38,7 @@
|
||||
"((0, 0, 0, 0, 0, 0, 1), (0, 0, 4, 0, 0, 0, 0), (0, 0, 0, 0, 0, 0, 3))"
|
||||
]
|
||||
},
|
||||
"execution_count": 5,
|
||||
"execution_count": 14,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@ -53,27 +53,53 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": 13,
|
||||
"id": "dbf2120c-5214-48e1-a93f-a5079753d5f5",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((0, 0, 0, 0, 1, 0, 0), (0, 0, 0, 1, 1, 0, 0), (0, 0, 0, 0, 1, 0, 2))"
|
||||
]
|
||||
},
|
||||
"execution_count": 13,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Vfa, Vga, Vda = [vector(QQ, 7) for i in (1, 2, 3)]\n",
|
||||
"Vfa[4] = Vga[3] = Vga[4] = Vda[4] = 1\n",
|
||||
"Vda[6] = 2\n",
|
||||
"Vfa, Vga, Vda"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 15,
|
||||
"id": "c5104650-44eb-4c9c-b016-c34994f72f38",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"n, Nf, Ng, Nd, Nhs, Nks, euler, nus, pols = trinomiales_general(A, Vf, Vg, (), (), Vd, total=False)"
|
||||
"n, Nf, Ng, Nd, Nhs, Nks, euler, nus, pols = trinomiales_general(A, Vf, Vg, (), (), Vd, total=False)\n",
|
||||
"na, Nfa, Nga, Nda, Nhsa, Nksa, eulera, nusa, polsa = trinomiales_general(A, Vfa, Vga, (), (), Vda, total=False)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"execution_count": 16,
|
||||
"id": "8dccac88-2fa3-4365-990a-2571f643b9dc",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"zetatop, zetamon, dic = zetas(n, pols, info=True)"
|
||||
"zetatop, zetamon, dic = zetas(n, pols, info=True)\n",
|
||||
"zetatopa, zetamona, dica = zetas(na, polsa, info=True)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": 17,
|
||||
"id": "097214a4-61e4-4939-bad0-4e5b3c8ac716",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -81,16 +107,16 @@
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n",
|
||||
" {1: 1, 2: 1, 6: 1, 4: 1, 3: 1, 12: 1, 8: 1, 7: 1, 24: 1, 21: 1})"
|
||||
" (-43/175) * (s + 16/21)^-1 * (s + 4/5)^-1 * (s + 1)^-1 * (s^2 - 292/129*s - 320/129))"
|
||||
]
|
||||
},
|
||||
"execution_count": 8,
|
||||
"execution_count": 17,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"zetatop.factor(), dic"
|
||||
"zetatop.factor(), zetatopa.factor()"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -129,7 +155,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 25,
|
||||
"execution_count": 8,
|
||||
"id": "558ef7c7-39cf-47bf-b224-479f1ff365d4",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -429,27 +455,6 @@
|
||||
" print(\"=======================\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 26,
|
||||
"id": "8f5e2324-c385-4a99-a4a4-96cc9aa35c12",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"(z^3 + x^8*z^2 + x^24*y, (11, 1, 1), 3)"
|
||||
]
|
||||
},
|
||||
"execution_count": 26,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"pols[6, 'd']"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 27,
|
||||
@ -678,6 +683,377 @@
|
||||
"dic, dic2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 85,
|
||||
"id": "1eda8668-939a-49ff-9741-eecb16b95c29",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"1"
|
||||
]
|
||||
},
|
||||
"execution_count": 85,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"A2 = A1.matrix_from_rows_and_columns([0..5], [0..5])\n",
|
||||
"A2[4, 5] = A2[5, 4] = 1\n",
|
||||
"#A1[4, 6] = A1[6, 4] = A1[5, 6] = A1[6, 5] = 1\n",
|
||||
"#A1[4, 4] = -3\n",
|
||||
"A2[4, 4] = -2\n",
|
||||
"A2[5, 5] = -1\n",
|
||||
"A2.det()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 86,
|
||||
"id": "f79af679-b261-4e6f-9dcb-5775bccb1c8c",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((0, 0, 0, 0, 1, 0), (0, 0, 0, 1, 1, 0), (0, 0, 0, 0, 1, 2))"
|
||||
]
|
||||
},
|
||||
"execution_count": 86,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Vf, Vg, Vd = [vector(QQ, 6) for i in (1, 2, 3)]\n",
|
||||
"Vf[4] = Vg[3] = Vg[4] = Vd[4] = 1\n",
|
||||
"Vd[5] = 2\n",
|
||||
"Vf, Vg, Vd"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 87,
|
||||
"id": "f4f2d497-55d6-42cc-a3c1-6ee815579be8",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"n2b, Nf2b, Ng2b, Nd2b, Nhs2b, Nks2b, euler2b, nus2b, pols2b = trinomiales_general(A2, Vf, Vg, (), (), Vd, total=False)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 88,
|
||||
"id": "6d1f647d-c103-4ffc-97da-bdcac4e0625e",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"(2, 4, 6, 7, 14, 14)\n",
|
||||
"(3, 6, 9, 11, 21, 21)\n",
|
||||
"(6, 12, 18, 21, 42, 44)\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"print(Nf2b)\n",
|
||||
"print(Ng2b)\n",
|
||||
"print(Nd2b)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 89,
|
||||
"id": "27a012cc-2e37-4545-98a4-7f1ffd7f8566",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"zetatop2b, zetamon2b, dic2b = zetas(n2b, pols2b, info=True)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 90,
|
||||
"id": "696efeb0-7276-449a-903d-c2e02cdb16f9",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n",
|
||||
" (-39/161) * (s + 16/21)^-1 * (s + 18/23)^-1 * (s + 1)^-1 * (s^2 - 274/117*s - 32/13))"
|
||||
]
|
||||
},
|
||||
"execution_count": 90,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"zetatop.factor(), zetatop2b.factor()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 92,
|
||||
"id": "7d299478-15d6-439a-a0ee-38557a6e303b",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"({1: 1, 2: 1, 6: 1, 4: 1, 3: 1, 12: 1, 8: 1, 7: 1, 24: 1, 21: 1},\n",
|
||||
" {1: 1, 7: 1, 21: 1, 23: 1})"
|
||||
]
|
||||
},
|
||||
"execution_count": 92,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"dic, dic2b"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 66,
|
||||
"id": "d236b526-d636-455a-8030-301f39e27f96",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"A = Matrix(8, [-2, 1, 0, 0, 0, 0, 0, 0, 1, -2, 1, 0, 0, 0, 0, 0, 0, 1, -3, 0, 1, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 1, 1, -2, 1, 0, 0, 0, 0, 0, 0, 1, -3, 0, 1, 0, 0, 0, 0, 0, 0, -2, 1, 0, 0, 0, 0, 0, 1, 1, -1])\n",
|
||||
"A1 = A.matrix_from_rows_and_columns([0..6], [0..6])\n",
|
||||
"A1[4, 5] = A1[5, 4] = 0\n",
|
||||
"A1[4, 6] = A1[6, 4] = A1[5, 6] = A1[6, 5] = 1\n",
|
||||
"A1[4, 4] = -3\n",
|
||||
"A1[5, 5] = -2\n",
|
||||
"A1[6, 6] = -1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 73,
|
||||
"id": "0f6ae8eb-46d6-4d8b-85ff-8b93432f88f5",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((0, 0, 0, 0, 1, 0, 0), (0, 0, 0, 1, 1, 0, 0), (0, 0, 0, 0, 1, 0, 1))"
|
||||
]
|
||||
},
|
||||
"execution_count": 73,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Vf, Vg, Vd = [vector(QQ, 7) for i in (1, 2, 3)]\n",
|
||||
"Vf[4] = Vg[3] = Vg[4] = Vd[4] = Vd[6] = 1\n",
|
||||
"Vf, Vg, Vd"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 74,
|
||||
"id": "5d18a75f-7a9b-4ada-b28f-f79e9fb69292",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"n2a, Nf2a, Ng2a, Nd2a, Nhs2a, Nks2a, euler2a, nus2a, pols2a = trinomiales_general(A1, Vf, Vg, (), (), Vd, total=False)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 79,
|
||||
"id": "d3af6603-a5ca-45da-8122-5e0973563b88",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"(2, 4, 6, 7, 14, 14, 28)\n",
|
||||
"(3, 6, 9, 11, 21, 21, 42)\n",
|
||||
"(6, 12, 18, 21, 42, 43, 86)\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"print(Nf2a)\n",
|
||||
"print(Ng2a)\n",
|
||||
"print(Nd2a)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 77,
|
||||
"id": "4412f281-4696-4dc1-91ed-0069b58bffa0",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"zetatop2a, zetamon2a, dic2a = zetas(n2a, pols2a, info=True)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 78,
|
||||
"id": "c39bf1b5-1ed0-4d84-8e81-5f4e4bf3fd9b",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n",
|
||||
" (-37/154) * (s + 16/21)^-1 * (s + 17/22)^-1 * (s + 1)^-1 * (s^2 - 265/111*s - 272/111))"
|
||||
]
|
||||
},
|
||||
"execution_count": 78,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"zetatop.factor(), zetatop2a.factor()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 80,
|
||||
"id": "441864d8-5be6-4570-8a30-b9612c0ebcb1",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"({1: 1, 2: 1, 6: 1, 4: 1, 3: 1, 12: 1, 8: 1, 7: 1, 24: 1, 21: 1},\n",
|
||||
" {1: 1, 2: 1, 7: 1, 22: 1, 11: 1, 21: 1})"
|
||||
]
|
||||
},
|
||||
"execution_count": 80,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"dic, dic2a"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 37,
|
||||
"id": "faed71a4-b703-4416-8c86-ce2d989999b0",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((0, 0, 0, 0, 1, 0, 0, 0), (0, 0, 0, 1, 1, 0, 0, 0), (0, 0, 0, 0, 1, 0, 0, 1))"
|
||||
]
|
||||
},
|
||||
"execution_count": 37,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"Vf, Vg, Vd = [vector(QQ, 8) for i in (1, 2, 3)]\n",
|
||||
"Vf[4] = Vg[3] = Vg[4] = Vd[4] = Vd[7] = 1\n",
|
||||
"Vf, Vg, Vd"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 38,
|
||||
"id": "aa0267bd-3f48-4167-94f4-b6079b77cc46",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"n2, Nf2, Ng2, Nd2, Nhs2, Nks2, euler2, nus2, pols2 = trinomiales_general(A, Vf, Vg, (), (), Vd, total=False)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 39,
|
||||
"id": "f819b1f2-2342-4951-99ee-c62a978d2308",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"(6, 12, 18, 21, 42, 42, 42, 84)\n",
|
||||
"(6, 12, 18, 22, 42, 42, 42, 84)\n",
|
||||
"(6, 12, 18, 21, 42, 44, 45, 90)\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"print(3 * Nf2)\n",
|
||||
"print(2 * Ng2)\n",
|
||||
"print(Nd2)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 40,
|
||||
"id": "1a340b4a-c984-46e1-a708-0c962a0912bc",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"zetatop2, zetamon2, dic2 = zetas(n2, pols2, info=True)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 41,
|
||||
"id": "e737e117-0285-429e-8800-eab63eff90fc",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n",
|
||||
" (-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123))"
|
||||
]
|
||||
},
|
||||
"execution_count": 41,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"zetatop.factor(), zetatop2.factor()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 52,
|
||||
"id": "535f3607-b56b-4557-b60b-28889a8795c4",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"({1: 1, 2: 1, 6: 1, 4: 1, 3: 1, 12: 1, 8: 1, 7: 1, 24: 1, 21: 1},\n",
|
||||
" {1: 1, 2: 1, 6: 1, 4: 1, 3: 1, 12: 1, 8: 1, 7: 1, 24: 1, 21: 1})"
|
||||
]
|
||||
},
|
||||
"execution_count": 52,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"dic, dic2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 43,
|
||||
@ -768,24 +1144,24 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 48,
|
||||
"execution_count": 49,
|
||||
"id": "0870be50-c79c-48c9-80b7-24bfd6914737",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"((-41/168) * (s + 16/21)^-1 * (s + 19/24)^-1 * (s + 1)^-1 * (s^2 - 283/123*s - 304/123),\n",
|
||||
"((-5/21) * (s + 16/21)^-1 * (s + 1)^-1 * (s - 16/5),\n",
|
||||
" (-5/21) * (s + 16/21)^-1 * (s + 1)^-1 * (s - 16/5))"
|
||||
]
|
||||
},
|
||||
"execution_count": 48,
|
||||
"execution_count": 49,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"zetatop.factor(), zetatop3.factor()"
|
||||
"zetatop1.factor(), zetatop3.factor()"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -861,7 +1237,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "SageMath 10.4.beta9",
|
||||
"display_name": "SageMath 10.4.rc1",
|
||||
"language": "sage",
|
||||
"name": "sagemath-devel"
|
||||
},
|
||||
|
||||
166
UnLado.ipynb
166
UnLado.ipynb
@ -2,7 +2,7 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 113,
|
||||
"execution_count": 1,
|
||||
"id": "4778e32e-f561-4e4d-b63a-d4d60f91abde",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -12,7 +12,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 115,
|
||||
"execution_count": 2,
|
||||
"id": "f042e81b-abf8-4e09-bc67-a19d778033e6",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -22,7 +22,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 116,
|
||||
"execution_count": 7,
|
||||
"id": "0733b364-bbf6-486c-a5d1-e72c7a5d48ca",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -34,7 +34,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 117,
|
||||
"execution_count": 8,
|
||||
"id": "b81e1db9-883e-4a03-a38c-1ca296c9d25b",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -45,7 +45,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 118,
|
||||
"execution_count": 9,
|
||||
"id": "f97fbf75-4da5-45db-8f66-cdccdd052326",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -60,7 +60,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 119,
|
||||
"execution_count": 10,
|
||||
"id": "04072945-1ada-4d66-b44e-95318f073634",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -70,7 +70,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 120,
|
||||
"execution_count": 11,
|
||||
"id": "d9834ff4-e09f-4cf9-abd0-9b1eea6ca033",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -88,16 +88,32 @@
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<html>\\(\\displaystyle \\nu_{2}^{-1} \\cdot \\nu_{1}^{-1} \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (3 \\mathit{ss} a_{1} a_{2} + a_{1} a_{2} + 3 a_{2} \\nu_{1} + 3 a_{1} \\nu_{2})\\)</html>"
|
||||
],
|
||||
"text/latex": [
|
||||
"$\\displaystyle \\nu_{2}^{-1} \\cdot \\nu_{1}^{-1} \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (3 \\mathit{ss} a_{1} a_{2} + a_{1} a_{2} + 3 a_{2} \\nu_{1} + 3 a_{1} \\nu_{2})$"
|
||||
],
|
||||
"text/plain": [
|
||||
"nu2^-1 * nu1^-1 * (3*ss*a2 + a2 + 3*nu2)^-1 * (3*ss*a1 + a1 + 3*nu1)^-1 * (3*ss*a1*a2 + a1*a2 + 3*a2*nu1 + 3*a1*nu2)"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"vertical = cono3(e1, e2, e3, V1, nu) - cono3(Q1, Q2, e3, V1, nu)\n",
|
||||
"show(vertical.subs(sb).factor())"
|
||||
"show(vertical.subs(sb).factor())\n",
|
||||
"show(vertical.factor())"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 121,
|
||||
"execution_count": 13,
|
||||
"id": "fe5aa4f3-db61-4a38-a1d1-dd100d819937",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -115,12 +131,28 @@
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<html>\\(\\displaystyle \\left(9\\right) \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1}\\)</html>"
|
||||
],
|
||||
"text/latex": [
|
||||
"$\\displaystyle \\left(9\\right) \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1}$"
|
||||
],
|
||||
"text/plain": [
|
||||
"(9) * (3*ss*a2 + a2 + 3*nu2)^-1 * (3*ss*a1 + a1 + 3*nu1)^-1"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"horizontal = cono3(Q1, Q2, e3, V0, nu)\n",
|
||||
"horizontal = (horizontal.numerator() / 9) / (horizontal.denominator() / 9)\n",
|
||||
"show(horizontal.subs(sb).factor())"
|
||||
"show(horizontal.subs(sb).factor())\n",
|
||||
"show(horizontal.factor())"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -151,7 +183,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 123,
|
||||
"execution_count": 14,
|
||||
"id": "29605b7d-37f7-4f22-80bd-1694134cd9b7",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -161,7 +193,7 @@
|
||||
"[9/(alpha1*alpha2), 3*a2/(alpha1*alpha2), (-3*a1)/(alpha1*alpha2)]"
|
||||
]
|
||||
},
|
||||
"execution_count": 123,
|
||||
"execution_count": 14,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@ -172,7 +204,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 124,
|
||||
"execution_count": 15,
|
||||
"id": "83121ff8-547c-424b-b3ce-860a80f0541e",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -182,7 +214,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 125,
|
||||
"execution_count": 16,
|
||||
"id": "b3963226-7397-4cb5-bdff-5382f74df8df",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -192,7 +224,7 @@
|
||||
"(3*a1/alpha1, 3*a1/alpha1, 3*a2/alpha2, 3*a2/alpha2, (a1 + 3*nu1)/alpha1)"
|
||||
]
|
||||
},
|
||||
"execution_count": 125,
|
||||
"execution_count": 16,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
@ -203,7 +235,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 126,
|
||||
"execution_count": 17,
|
||||
"id": "36201bc7-a7e2-4c9e-a8e9-5865cb9686f9",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@ -214,7 +246,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 127,
|
||||
"execution_count": 18,
|
||||
"id": "d77f48f5-2236-4cb6-a211-14f3623539c0",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -241,7 +273,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 128,
|
||||
"execution_count": 19,
|
||||
"id": "c18631c1-f18a-48a2-8e9a-727d347ef89a",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@ -259,12 +291,102 @@
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<html>\\(\\displaystyle \\left(-1\\right) \\cdot \\nu_{2}^{-1} \\cdot \\nu_{1}^{-1} \\cdot (\\mathit{ss} + 1)^{-1} \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (3 \\mathit{ss} \\nu_{1} \\nu_{2} \\mathit{cd}^{2} - 3 \\mathit{ss}^{2} a_{1} a_{2} - 4 \\mathit{ss} a_{1} a_{2} - 3 \\mathit{ss} a_{2} \\nu_{1} - 3 \\mathit{ss} a_{1} \\nu_{2} - 9 \\mathit{ss} \\nu_{1} \\nu_{2} - a_{1} a_{2} - 3 a_{2} \\nu_{1} - 3 a_{1} \\nu_{2} - 9 \\nu_{1} \\nu_{2})\\)</html>"
|
||||
],
|
||||
"text/latex": [
|
||||
"$\\displaystyle \\left(-1\\right) \\cdot \\nu_{2}^{-1} \\cdot \\nu_{1}^{-1} \\cdot (\\mathit{ss} + 1)^{-1} \\cdot (3 \\mathit{ss} a_{2} + a_{2} + 3 \\nu_{2})^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (3 \\mathit{ss} \\nu_{1} \\nu_{2} \\mathit{cd}^{2} - 3 \\mathit{ss}^{2} a_{1} a_{2} - 4 \\mathit{ss} a_{1} a_{2} - 3 \\mathit{ss} a_{2} \\nu_{1} - 3 \\mathit{ss} a_{1} \\nu_{2} - 9 \\mathit{ss} \\nu_{1} \\nu_{2} - a_{1} a_{2} - 3 a_{2} \\nu_{1} - 3 a_{1} \\nu_{2} - 9 \\nu_{1} \\nu_{2})$"
|
||||
],
|
||||
"text/plain": [
|
||||
"(-1) * nu2^-1 * nu1^-1 * (ss + 1)^-1 * (3*ss*a2 + a2 + 3*nu2)^-1 * (3*ss*a1 + a1 + 3*nu1)^-1 * (3*ss*nu1*nu2*cd^2 - 3*ss^2*a1*a2 - 4*ss*a1*a2 - 3*ss*a2*nu1 - 3*ss*a1*nu2 - 9*ss*nu1*nu2 - a1*a2 - 3*a2*nu1 - 3*a1*nu2 - 9*nu1*nu2)"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"prueba = horizontal - arista + vertical\n",
|
||||
"# prueba.numerator().variables() + prueba.denominator().variables()\n",
|
||||
"show(prueba.subs(sb).factor())"
|
||||
"show(prueba.subs(sb).factor())\n",
|
||||
"show(prueba.factor())"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 23,
|
||||
"id": "5c36c8a4-f5f0-43d8-bbfc-35e889012f6e",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<html>\\(\\displaystyle 3 \\mathit{ss} \\nu_{1} \\nu_{2} \\mathit{cd}^{2} - 3 \\mathit{ss}^{2} a_{1} a_{2} - 4 \\mathit{ss} a_{1} a_{2} - 3 \\mathit{ss} a_{2} \\nu_{1} - 3 \\mathit{ss} a_{1} \\nu_{2} - 9 \\mathit{ss} \\nu_{1} \\nu_{2} - a_{1} a_{2} - 3 a_{2} \\nu_{1} - 3 a_{1} \\nu_{2} - 9 \\nu_{1} \\nu_{2}\\)</html>"
|
||||
],
|
||||
"text/latex": [
|
||||
"$\\displaystyle 3 \\mathit{ss} \\nu_{1} \\nu_{2} \\mathit{cd}^{2} - 3 \\mathit{ss}^{2} a_{1} a_{2} - 4 \\mathit{ss} a_{1} a_{2} - 3 \\mathit{ss} a_{2} \\nu_{1} - 3 \\mathit{ss} a_{1} \\nu_{2} - 9 \\mathit{ss} \\nu_{1} \\nu_{2} - a_{1} a_{2} - 3 a_{2} \\nu_{1} - 3 a_{1} \\nu_{2} - 9 \\nu_{1} \\nu_{2}$"
|
||||
],
|
||||
"text/plain": [
|
||||
"3*ss*nu1*nu2*cd^2 - 3*ss^2*a1*a2 - 4*ss*a1*a2 - 3*ss*a2*nu1 - 3*ss*a1*nu2 - 9*ss*nu1*nu2 - a1*a2 - 3*a2*nu1 - 3*a1*nu2 - 9*nu1*nu2"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"uuu= (ss + 1) * ((3 * ss + 1) * a1 * a2 + 3 * (nu1 * a2 + nu2 * a1 + 3 * nu1 * nu2)) - 3 * nu1 * nu2 * cd^2 *ss\n",
|
||||
"show(-uuu)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 28,
|
||||
"id": "52254bac-4ce0-473f-a6c8-9853e4180df9",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"-3 \\mathit{ss} \\nu_{1} \\nu_{2} \\mathit{cd}^{2} + 3 \\mathit{ss}^{2} a_{1} a_{2} + 4 \\mathit{ss} a_{1} a_{2} + 3 \\mathit{ss} a_{2} \\nu_{1} + 3 \\mathit{ss} a_{1} \\nu_{2} + 9 \\mathit{ss} \\nu_{1} \\nu_{2} + a_{1} a_{2} + 3 a_{2} \\nu_{1} + 3 a_{1} \\nu_{2} + 9 \\nu_{1} \\nu_{2}"
|
||||
]
|
||||
},
|
||||
"execution_count": 28,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"latex(uuu)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 27,
|
||||
"id": "b4f731bf-7872-4e7f-a8dc-f1a7666fcd31",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<html>\\(\\displaystyle \\left(-1\\right) \\cdot \\nu_{1}^{-1} \\cdot (\\mathit{ss} + 1)^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (\\mathit{ss} \\nu_{1} \\mathit{cd}^{2} - \\mathit{ss} a_{1} - 3 \\mathit{ss} \\nu_{1} - a_{1} - 3 \\nu_{1})\\)</html>"
|
||||
],
|
||||
"text/latex": [
|
||||
"$\\displaystyle \\left(-1\\right) \\cdot \\nu_{1}^{-1} \\cdot (\\mathit{ss} + 1)^{-1} \\cdot (3 \\mathit{ss} a_{1} + a_{1} + 3 \\nu_{1})^{-1} \\cdot (\\mathit{ss} \\nu_{1} \\mathit{cd}^{2} - \\mathit{ss} a_{1} - 3 \\mathit{ss} \\nu_{1} - a_{1} - 3 \\nu_{1})$"
|
||||
],
|
||||
"text/plain": [
|
||||
"(-1) * nu1^-1 * (ss + 1)^-1 * (3*ss*a1 + a1 + 3*nu1)^-1 * (ss*nu1*cd^2 - ss*a1 - 3*ss*nu1 - a1 - 3*nu1)"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"show(prueba(a2=0, nu2=1).factor())"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -944,9 +1066,9 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "SageMath 10.3.rc3",
|
||||
"display_name": "SageMath 10.4.beta6",
|
||||
"language": "sage",
|
||||
"name": "sagemath-310"
|
||||
"name": "sagemath-devel"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
@ -958,7 +1080,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.1"
|
||||
"version": "3.12.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@ -723,7 +723,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "SageMath 10.4.beta3",
|
||||
"display_name": "SageMath 10.4.rc1",
|
||||
"language": "sage",
|
||||
"name": "sagemath-devel"
|
||||
},
|
||||
@ -737,7 +737,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.2"
|
||||
"version": "3.12.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@ -488,7 +488,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.2"
|
||||
"version": "3.12.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@ -468,7 +468,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "SageMath 10.4.beta3",
|
||||
"display_name": "SageMath 10.4.beta6",
|
||||
"language": "sage",
|
||||
"name": "sagemath-devel"
|
||||
},
|
||||
@ -482,7 +482,7 @@
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.2"
|
||||
"version": "3.12.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@ -987,7 +987,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "SageMath 10.4.beta3",
|
||||
"display_name": "SageMath 10.4.beta4",
|
||||
"language": "sage",
|
||||
"name": "sagemath-devel"
|
||||
},
|
||||
|
||||
458
zetas_triples_trenzas.py
Normal file
458
zetas_triples_trenzas.py
Normal file
@ -0,0 +1,458 @@
|
||||
def trinomiales_general(A, Vf, Vg, Vhs, Vd, total=True):
|
||||
r"""
|
||||
Return data necessary to compute the zeta functions of
|
||||
a triple singularity defined by
|
||||
|
||||
.. math::
|
||||
z^3 -3 \prod_{i=1}^h h_i^{n_i} f z^2
|
||||
+ \prod_{i=1}^h h_i g,
|
||||
|
||||
where :math:`f, g, h_i` are polynomials in two variables,
|
||||
and :math:`n_i \geq 1`.
|
||||
|
||||
We consider an embedded resolution of :math:`fg(f^3 - g^2)` with
|
||||
a stratification of the exceptional divisor:
|
||||
|
||||
- :math:`\check{E}_i`: the smooth part of the total divisor
|
||||
|
||||
- :math:`E_i\cap E_j`: the double points of the divisor
|
||||
|
||||
- :math:`E_i\cap \{f=0\}`: the intersections with the strict
|
||||
transform of :math:`f`
|
||||
|
||||
- :math:`E_i\cap \{g=0\}`: the intersections with the strict
|
||||
transform of :math:`g`
|
||||
|
||||
- :math:`E_i\cap \{f^3=g^2\}`: the intersections with the strict
|
||||
transform of :math:`f^3-g^2`
|
||||
|
||||
It is also possible to forget the strict transforms of :math:`f, g`
|
||||
and even to consider only resolutions of :math:`f^3 - g^2`.
|
||||
|
||||
INPUT:
|
||||
|
||||
- ``A`` -- the incidence matrix of a resolution
|
||||
|
||||
- ``Vf`` -- the vector with the intersection numbers of the strict
|
||||
transform of :math:`f` with the divisors of the resolution
|
||||
|
||||
- ``Vg`` -- the vector with the intersection numbers of the strict
|
||||
transform of :math:`g` with the divisors of the resolution
|
||||
|
||||
- ``Vhs`` -- a list of tuple whose elements are tuples `(h_i, n_i)`
|
||||
|
||||
|
||||
- ``Vd`` -- the vector with the intersection numbers of the strict
|
||||
transform of :math:`f^3 - g^2` with the divisors of the resolution
|
||||
|
||||
- ``total`` -- boolean (default: ``True``), whether we consider also
|
||||
the strata corresponding to the strict transforms of :math:`f, g`.
|
||||
|
||||
OUTPUT:
|
||||
|
||||
Polynomials :math:`z^3 + M_1 z + M_0` or :math:`z^3 + M_2 z^2 + M_0` are
|
||||
assigned to each strata. The monomials are of the form :math:`x^k` for the
|
||||
smooth parts of the divisors and :math:`x^k y^l` for the double points.
|
||||
Each variable is associated to a divisor or to a strict transform
|
||||
|
||||
- ``n`` -- the number of irreducible components of the exceptional divisor
|
||||
|
||||
- ``Nf`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
|
||||
the total transform of :math:`f`
|
||||
|
||||
- ``Ng`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
|
||||
the total transform of :math:`g`
|
||||
|
||||
- ``Nhs`` -- a list of tuple whose elements are tuples, the first element
|
||||
is the vector in :math:`\mathbb{Z}^n` of the multiplicities for
|
||||
the total transform of :math:`h_i` and the second is :math:`n_i`
|
||||
|
||||
- ``Nd`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
|
||||
the total transform of :math:`f^3 - g^2`
|
||||
|
||||
- ``euler`` -- the vector in :math:`\mathbb{Z}^n` of the Euler
|
||||
characteristic of the smooth part of the strata. If ``total=True`` this
|
||||
smooth part does not contain the intersections with total transform
|
||||
of :math:`f, g`
|
||||
|
||||
- ``nus`` -- the vector in :math:`\mathbb{Z}^n` of the canonical
|
||||
multiplicities
|
||||
|
||||
- ``pols`` -- a dictionary with keys ``(i, )``, ``(i, j)``, ``(i, 'f')``
|
||||
(if ``total=True``), ``(i, 'g')`` (if ``total=True``), and ``(i, 'd')``
|
||||
assigning the polynomial of the stratum (non-degenerated with respect
|
||||
to its Newton polytope), the weights ``(nui, nuj, 1)`` coding
|
||||
the form
|
||||
:math:`x^{\nu_i-1}y^{\nu_j-1}\operatorname{d}\! x \operatorname{d}\! y \operatorname{d}\! z`
|
||||
|
||||
EXAMPLES::
|
||||
|
||||
sage: R.<x, y, z> = QQ[]
|
||||
sage: f, g = (x, y)
|
||||
sage: A = Matrix(QQ, 3, [-3, 0, 1, 0, -2, 1, 1, 1, -1])
|
||||
sage: Vf = vector(QQ, [1, 0, 0])
|
||||
sage: Vg = vector(QQ, [0, 1, 0])
|
||||
sage: Vd = vector(QQ, [0, 0, 1])
|
||||
sage: trinomiales_general(A, Vf, Vg, (), Vd)
|
||||
(3, (1, 1, 2), (1, 2, 3), (2, 3, 6), (0, 0, -1), (2, 3, 5),
|
||||
{(0, 'f'): (x + x*y*z + z^3, (2, 1, 1), 1),
|
||||
(0, 2): (z^3 + x*y^3 + x*y^2*z, (2, 5, 1), 1),
|
||||
(1, 'g'): (x*z + x^2*y + z^3, (3, 1, 1), 1),
|
||||
(1, 2): (z^3 + x*y^2*z + x^2*y^3, (3, 5, 1), 1),
|
||||
(2, 'd'): (x*z^2 + z^3 + x^3*y, (5, 1, 1), 1),
|
||||
0: (x + x*z + z^3, (2, 1, 1), 0),
|
||||
1: (x^2 + x*z + z^3, (3, 1, 1), 0),
|
||||
2: (x^3 + x^2*z + z^3, (5, 1, 1), -1)})
|
||||
sage: trinomiales(A, Vf, Vg, Vd, (), total=False)
|
||||
(3, (1, 1, 2), (1, 2, 3), (2, 3, 6), (1, 1, -1), (2, 3, 5),
|
||||
{(0, 2): (z^3 + x*y^3 + x*y^2*z, (2, 5, 1), 1),
|
||||
(1, 2): (z^3 + x*y^2*z + x^2*y^3, (3, 5, 1), 1),
|
||||
(2, 'd'): (x*z^2 + z^3 + x^3*y, (5, 1, 1), 1),
|
||||
0: (x + x*z + z^3, (2, 1, 1), 1),
|
||||
1: (x^2 + x*z + z^3, (3, 1, 1), 1),
|
||||
2: (x^3 + x^2*z + z^3, (5, 1, 1), -1)})
|
||||
"""
|
||||
R = PolynomialRing(QQ, 'x, y, z', order='negdeglex')
|
||||
x, y, z = R.gens()
|
||||
n = A.nrows()
|
||||
A1 = -A ** -1
|
||||
Nf, Ng, Nd = [A1 * N0 for N0 in (Vf, Vg, Vd)]
|
||||
Nhs = [(A1 * N0, h) for N0, h in Vhs]
|
||||
ch = len(Nhs)
|
||||
NNf = Nf + sum(j * V0 for V0, j in Nhs)
|
||||
NNg = Ng + sum(V0 for V0, j in Nhs)
|
||||
NNd = Nd + 2 * sum(V0 for V0, j in Nhs)
|
||||
diag = vector(A.diagonal())
|
||||
unos = vector(n * [1])
|
||||
if total:
|
||||
VV = Vf + Vg
|
||||
else:
|
||||
VV = Vf.parent()(0)
|
||||
resta = VV + Vd + sum(V0 for V0, m in Vhs)
|
||||
euler = (-A + 2 * identity_matrix(n)) * unos + diag - resta
|
||||
nus = A1 * (diag + 2 * unos) + unos
|
||||
expos = {}
|
||||
for j in range(n):
|
||||
a, b = (NNf[j], NNg[j])
|
||||
eq = 3 * a == 2 * NNg[j]
|
||||
nnd = min(3 * a, 2 * b) == NNd[j]
|
||||
if nnd:
|
||||
expos[j] = ((a, b), (a / 2, b), nus[j], eq, nnd)
|
||||
else:
|
||||
expos[j] = ((a, b), (a / 2, NNd[j] - b), nus[j], eq, nnd)
|
||||
cadenas = ('d', )
|
||||
cadenash = tuple(('h', h) for h in range(ch))
|
||||
if total:
|
||||
expos['f'] = ((1, 0), (0, 0), 1, False, True)
|
||||
expos['g'] = ((0, 1), (0, 0), 1, False, True)
|
||||
cadenas = ('f', 'g') + cadenas
|
||||
expos['d'] = ((0, 0), (0, 1), 1, True, False)
|
||||
for h, V0 in enumerate(Vhs):
|
||||
expos['h', h] = ((V0[1], 1), (0, 0), 1, False, True)
|
||||
pols = {}
|
||||
for j in range(n):
|
||||
if expos[j][-1]:
|
||||
a, b = expos[j][0]
|
||||
pols[j] = (z ** 3 + x ** a * z + x ** b, (expos[j][2], 1, 1),
|
||||
euler[j])
|
||||
else:
|
||||
a, b = expos[j][1]
|
||||
pols[j] = (z ** 3 + x ** a * z ** 2 + x ** b,
|
||||
(expos[j][2], 1, 1), euler[j])
|
||||
interdiv = [(i, j) for i, j in Combinations(n, 2) if A[i, j] != 0]
|
||||
interstrict = [(i, j) for i in range(n) for j in cadenas
|
||||
if eval('V' + j)[i] != 0]
|
||||
interh = [(i, j) for i in range(n) for j in cadenash if Vhs[j[1]][0][i] != 0]
|
||||
for i, j in interdiv + interstrict + interh:
|
||||
if isinstance(j, str):
|
||||
ep = eval('V' + j)[i]
|
||||
else:
|
||||
ep = 1
|
||||
eqi, nndi = expos[i][-2:]
|
||||
eqj, nndj = expos[j][-2:]
|
||||
nd = eqi and eqj and not (nndi and nndj)
|
||||
if not nd:
|
||||
ai, bi = expos[i][0]
|
||||
aj, bj = expos[j][0]
|
||||
pols[i, j] = (z ** 3 + x ** ai * y ** aj * z + x ** bi * y ** bj,
|
||||
(expos[i][2], expos[j][2], 1), ep)
|
||||
else:
|
||||
ai, bi = expos[i][1]
|
||||
aj, bj = expos[j][1]
|
||||
pols[i, j] = (z ** 3 + x ** ai * y ** aj * z ** 2 +
|
||||
x ** bi * y ** bj, (expos[i][2], expos[j][2], 1), ep)
|
||||
return n, Nf, Ng, Nd, Nhs, euler, nus, pols
|
||||
|
||||
def exp_trenza_dis(tau):
|
||||
B = tau.parent()
|
||||
m = tau.exponent_sum()
|
||||
a, b = m.quo_rem(6)
|
||||
no = False
|
||||
while not no:
|
||||
no = bool(tau.conjugating_braid(B.delta()**(2 * a) * B.gen(0)**b))
|
||||
if not no:
|
||||
a, b = a - 1, b + 6
|
||||
return (2 * a, None, 3 * a + b)
|
||||
|
||||
def exp_trenza(tau):
|
||||
B = tau.parent()
|
||||
m = tau.exponent_sum()
|
||||
if m.gcd(6) == 1:
|
||||
return exp_trenza_dis(tau)
|
||||
elif m.gcd(6) == 3:
|
||||
polo = bool(tau.conjugating_braid(B.delta()**(m / 3)))
|
||||
if polo:
|
||||
return (None, m / 3, None)
|
||||
else:
|
||||
return exp_trenza_dis(tau)
|
||||
elif m.gcd(6) == 2:
|
||||
cero = bool(tau.conjugating_braid(B([1, 2])**(m / 2)))
|
||||
if cero:
|
||||
return (None, None, m / 2)
|
||||
else:
|
||||
return exp_trenza_dis(tau)
|
||||
else:
|
||||
ct = bool(tau.conjugating_braid(B.delta()**(m / 3)))
|
||||
if ct:
|
||||
return (m / 6, m / 3, m / 2)
|
||||
else:
|
||||
return exp_trenza_dis(tau)
|
||||
|
||||
|
||||
|
||||
|
||||
def trinomiales_trenza(A, trenzas, Vhs, Vd):
|
||||
r"""
|
||||
Return data necessary to compute the zeta functions of
|
||||
a triple singularity defined by
|
||||
|
||||
.. math::
|
||||
z^3 -3 \prod_{i=1}^h h_i^{n_i} f z^2
|
||||
+ \prod_{i=1}^h h_i g,
|
||||
|
||||
where :math:`f, g, h_i` are polynomials in two variables,
|
||||
and :math:`n_i \geq 1`.
|
||||
|
||||
We consider an embedded resolution of :math:`fg(f^3 - g^2)` with
|
||||
a stratification of the exceptional divisor:
|
||||
|
||||
- :math:`\check{E}_i`: the smooth part of the total divisor
|
||||
|
||||
- :math:`E_i\cap E_j`: the double points of the divisor
|
||||
|
||||
- :math:`E_i\cap \{f=0\}`: the intersections with the strict
|
||||
transform of :math:`f`
|
||||
|
||||
- :math:`E_i\cap \{g=0\}`: the intersections with the strict
|
||||
transform of :math:`g`
|
||||
|
||||
- :math:`E_i\cap \{f^3=g^2\}`: the intersections with the strict
|
||||
transform of :math:`f^3-g^2`
|
||||
|
||||
It is also possible to forget the strict transforms of :math:`f, g`
|
||||
and even to consider only resolutions of :math:`f^3 - g^2`.
|
||||
|
||||
INPUT:
|
||||
|
||||
- ``A`` -- the incidence matrix of a resolution
|
||||
|
||||
- ``Vf`` -- the vector with the intersection numbers of the strict
|
||||
transform of :math:`f` with the divisors of the resolution
|
||||
|
||||
- ``Vg`` -- the vector with the intersection numbers of the strict
|
||||
transform of :math:`g` with the divisors of the resolution
|
||||
|
||||
- ``Vhs`` -- a list of tuple whose elements are tuples `(h_i, n_i)`
|
||||
|
||||
|
||||
- ``Vd`` -- the vector with the intersection numbers of the strict
|
||||
transform of :math:`f^3 - g^2` with the divisors of the resolution
|
||||
|
||||
- ``total`` -- boolean (default: ``True``), whether we consider also
|
||||
the strata corresponding to the strict transforms of :math:`f, g`.
|
||||
|
||||
OUTPUT:
|
||||
|
||||
Polynomials :math:`z^3 + M_1 z + M_0` or :math:`z^3 + M_2 z^2 + M_0` are
|
||||
assigned to each strata. The monomials are of the form :math:`x^k` for the
|
||||
smooth parts of the divisors and :math:`x^k y^l` for the double points.
|
||||
Each variable is associated to a divisor or to a strict transform
|
||||
|
||||
- ``n`` -- the number of irreducible components of the exceptional divisor
|
||||
|
||||
- ``Nf`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
|
||||
the total transform of :math:`f`
|
||||
|
||||
- ``Ng`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
|
||||
the total transform of :math:`g`
|
||||
|
||||
- ``Nhs`` -- a list of tuple whose elements are tuples, the first element
|
||||
is the vector in :math:`\mathbb{Z}^n` of the multiplicities for
|
||||
the total transform of :math:`h_i` and the second is :math:`n_i`
|
||||
|
||||
- ``Nd`` -- the vector in :math:`\mathbb{Z}^n` of the multiplicities for
|
||||
the total transform of :math:`f^3 - g^2`
|
||||
|
||||
- ``euler`` -- the vector in :math:`\mathbb{Z}^n` of the Euler
|
||||
characteristic of the smooth part of the strata. If ``total=True`` this
|
||||
smooth part does not contain the intersections with total transform
|
||||
of :math:`f, g`
|
||||
|
||||
- ``nus`` -- the vector in :math:`\mathbb{Z}^n` of the canonical
|
||||
multiplicities
|
||||
|
||||
- ``pols`` -- a dictionary with keys ``(i, )``, ``(i, j)``, ``(i, 'f')``
|
||||
(if ``total=True``), ``(i, 'g')`` (if ``total=True``), and ``(i, 'd')``
|
||||
assigning the polynomial of the stratum (non-degenerated with respect
|
||||
to its Newton polytope), the weights ``(nui, nuj, 1)`` coding
|
||||
the form
|
||||
:math:`x^{\nu_i-1}y^{\nu_j-1}\operatorname{d}\! x \operatorname{d}\! y \operatorname{d}\! z`
|
||||
|
||||
EXAMPLES::
|
||||
|
||||
sage: R.<x, y, z> = QQ[]
|
||||
sage: f, g = (x, y)
|
||||
sage: A = Matrix(QQ, 3, [-3, 0, 1, 0, -2, 1, 1, 1, -1])
|
||||
sage: Vf = vector(QQ, [1, 0, 0])
|
||||
sage: Vg = vector(QQ, [0, 1, 0])
|
||||
sage: Vd = vector(QQ, [0, 0, 1])
|
||||
sage: trinomiales_general(A, Vf, Vg, (), Vd)
|
||||
(3, (1, 1, 2), (1, 2, 3), (2, 3, 6), (0, 0, -1), (2, 3, 5),
|
||||
{(0, 'f'): (x + x*y*z + z^3, (2, 1, 1), 1),
|
||||
(0, 2): (z^3 + x*y^3 + x*y^2*z, (2, 5, 1), 1),
|
||||
(1, 'g'): (x*z + x^2*y + z^3, (3, 1, 1), 1),
|
||||
(1, 2): (z^3 + x*y^2*z + x^2*y^3, (3, 5, 1), 1),
|
||||
(2, 'd'): (x*z^2 + z^3 + x^3*y, (5, 1, 1), 1),
|
||||
0: (x + x*z + z^3, (2, 1, 1), 0),
|
||||
1: (x^2 + x*z + z^3, (3, 1, 1), 0),
|
||||
2: (x^3 + x^2*z + z^3, (5, 1, 1), -1)})
|
||||
sage: trinomiales(A, Vf, Vg, Vd, (), total=False)
|
||||
(3, (1, 1, 2), (1, 2, 3), (2, 3, 6), (1, 1, -1), (2, 3, 5),
|
||||
{(0, 2): (z^3 + x*y^3 + x*y^2*z, (2, 5, 1), 1),
|
||||
(1, 2): (z^3 + x*y^2*z + x^2*y^3, (3, 5, 1), 1),
|
||||
(2, 'd'): (x*z^2 + z^3 + x^3*y, (5, 1, 1), 1),
|
||||
0: (x + x*z + z^3, (2, 1, 1), 1),
|
||||
1: (x^2 + x*z + z^3, (3, 1, 1), 1),
|
||||
2: (x^3 + x^2*z + z^3, (5, 1, 1), -1)})
|
||||
"""
|
||||
R = PolynomialRing(QQ, 'x, y, z', order='negdeglex')
|
||||
x, y, z = R.gens()
|
||||
n = A.nrows()
|
||||
A1 = -A ** -1
|
||||
Nd = A1 * Vd
|
||||
Nhs = [(A1 * N0, h) for N0, h in Vhs]
|
||||
ch = len(Nhs)
|
||||
NNd = Nd + 2 * sum(V0 for V0, j in Nhs)
|
||||
diag = vector(A.diagonal())
|
||||
unos = vector(n * [1])
|
||||
resta = Vd + sum(V0 for V0, m in Vhs)
|
||||
euler = (-A + 2 * identity_matrix(n)) * unos + diag - resta
|
||||
nus = A1 * (diag + 2 * unos) + unos
|
||||
expos = {j: exp_trenza(trenzas[j]) for j in range(n)}
|
||||
cadenas = ('d', )
|
||||
cadenash = tuple(('h', h) for h in range(ch))
|
||||
expos['d'] = (0, 0, 1)
|
||||
for h, V0 in enumerate(Vhs):
|
||||
expos['h', h] = (0, V0[1], 1)
|
||||
pols = {}
|
||||
for j in range(n):
|
||||
p = z**3
|
||||
for k, e in enumerate(expos[j]):
|
||||
if e:
|
||||
p += x**e * z**(2 - k)
|
||||
pols[j] = (p, (nus[j], 1, 1), euler[j])
|
||||
interdiv = [(i, j) for i, j in Combinations(n, 2) if A[i, j] != 0]
|
||||
interstrict = [(i, j) for i in range(n) for j in cadenas
|
||||
if eval('V' + j)[i] != 0]
|
||||
interh = [(i, j) for i in range(n) for j in cadenash if Vhs[j[1]][0][i] != 0]
|
||||
for i, j in interdiv + interstrict + interh:
|
||||
if isinstance(j, str):
|
||||
ep = eval('V' + j)[i]
|
||||
nu = (nus[i], 1, 1)
|
||||
else:
|
||||
ep = 1
|
||||
nu = (nus[i], nus[j], 1)
|
||||
p = z**3
|
||||
for k, (e1, e2) in enumerate(zip(expos[i], expos[j])):
|
||||
if e1 and e2:
|
||||
p += x**e1 * y**e2 * z**(2 - k)
|
||||
pols[i, j] = (p, nu, ep)
|
||||
return n, Nd, Nhs, euler, nus, pols
|
||||
|
||||
def estrato(pol, pesos, euler, info=False):
|
||||
r"""
|
||||
Return the topological and Igusa zeta functions associated to a stratum
|
||||
|
||||
INPUT:
|
||||
|
||||
- ``pol`` -- a trinomial non degenerated with respect to its Newton
|
||||
polyhedron
|
||||
|
||||
- ``pesos`` -- the canonical weights :math:`\nu:i`
|
||||
|
||||
- `euler`` -- the Euler characteristic of the stratum
|
||||
|
||||
- ``info`` -- boolean (default: False), if ``True`` a dictionary giving
|
||||
the powers of cyclotomic polynomials for the monodromy zeta function
|
||||
is given
|
||||
|
||||
EXAMPLES::
|
||||
|
||||
sage: R.<x, y, z> = QQ[]
|
||||
sage: F = z**3 + x**4 * y**6 * z + x**7 * y**9
|
||||
sage: estrato(F, (1, 1, 1), 1, info=True)
|
||||
((1/3*s**2 + 1/2*s + 2/9)/(s^3 + 35/18*s^2 + 7/6*s + 2/9), -t^3 + 1,
|
||||
{1: 1, 3: 1})
|
||||
"""
|
||||
Z1 = ZetaFunctions(pol)
|
||||
zetatop = euler * Z1.topological_zeta(local=True, weights=pesos)
|
||||
zetamon = Z1.monodromy_zeta() ** euler
|
||||
if info:
|
||||
dic = {}
|
||||
for p, j in zetamon.factor():
|
||||
c = p.is_cyclotomic(certificate=True)
|
||||
dic[c] = j
|
||||
return zetatop, zetamon, dic
|
||||
return zetatop, zetamon
|
||||
|
||||
|
||||
def zetas(n, pols, info=False):
|
||||
r"""
|
||||
Return the topological and Igusa zeta functions from the data of
|
||||
a stratification
|
||||
|
||||
INPUT:
|
||||
|
||||
- ``n`` -- the number of exceptional divisors
|
||||
|
||||
- ``pols`` -- a dictionary from ``trinomiales``
|
||||
|
||||
- ``info`` -- boolean (default: False), if ``True`` a dictionary giving
|
||||
the powers of cyclotomic polynomials for the monodromy zeta function
|
||||
is given
|
||||
|
||||
EXAMPLES::
|
||||
|
||||
sage: A = Matrix(QQ, 3, [-3, 0, 1, 0, -2, 1, 1, 1, -1])
|
||||
sage: Vf = vector(QQ, [1, 0, 0])
|
||||
sage: Vg = vector(QQ, [0, 1, 0])
|
||||
sage: Vd = vector(QQ, [0, 0, 1])
|
||||
sage: n, Nf, Ng, Nd, euler, nus, pols = trinomiales(A, Vf, Vg, Vd)
|
||||
sage: zetas(n, pols, info=True)
|
||||
(1/(s + 1), -t + 1, {1: 1})
|
||||
"""
|
||||
zetatop = 0
|
||||
T = PolynomialRing(QQ, 't')
|
||||
t = T.gen(0)
|
||||
zetamon = 1 / (1 - t ** 3) ** n
|
||||
for k in pols:
|
||||
zt, zm = estrato(*pols[k])
|
||||
zetatop += zt
|
||||
zetamon *= zm
|
||||
if info:
|
||||
dic = {}
|
||||
for p, j in zetamon.factor():
|
||||
c = p.is_cyclotomic(certificate=True)
|
||||
dic[c] = j
|
||||
return zetatop, zetamon, dic
|
||||
return zetatop, zetamon
|
||||
Loading…
Reference in New Issue
Block a user