Merge branch 'master' of riemann.unizar.es:m.gonzalez/Steenbrink
This commit is contained in:
commit
6350a0e67a
@ -354,7 +354,7 @@
|
|||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "SageMath 10.4.rc0",
|
"display_name": "SageMath 10.4.rc1",
|
||||||
"language": "sage",
|
"language": "sage",
|
||||||
"name": "sagemath-devel"
|
"name": "sagemath-devel"
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1838,7 +1838,7 @@
|
|||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "SageMath 10.4.rc3",
|
"display_name": "SageMath 10.5.beta3",
|
||||||
"language": "sage",
|
"language": "sage",
|
||||||
"name": "sagemath-devel"
|
"name": "sagemath-devel"
|
||||||
},
|
},
|
||||||
@ -1852,7 +1852,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.12.4"
|
"version": "3.12.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|||||||
@ -673,7 +673,7 @@
|
|||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "SageMath 10.3.rc4",
|
"display_name": "SageMath 10.4.beta6",
|
||||||
"language": "sage",
|
"language": "sage",
|
||||||
"name": "sagemath-devel"
|
"name": "sagemath-devel"
|
||||||
},
|
},
|
||||||
@ -687,7 +687,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.11.1"
|
"version": "3.12.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"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}
|
\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}
|
\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}
|
\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 }
|
\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
|
||||||
\hline
|
\hline
|
||||||
\nu_i&2&3&5&7&9&11&13&6&11\\
|
\nu_i&2&3&5&7&9&11&13&6&11\\
|
||||||
\chi()&-11&1&-1&0&0&0&-2&1&-1\\
|
\chi()&-13&1&-1&0&0&0&-2&1&-1\\
|
||||||
E_i^2& -13& -2& -4& -2& -2& -2& -1&-2&-1\\
|
E_i^2& -11& -2& -4& -2& -2& -2& -1&-2&-1\\
|
||||||
\hline
|
\hline
|
||||||
\end{array}$$
|
\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
|
\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.$$
|
$$z^3 -3 c_1z + 2 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$.
|
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}
|
\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})$.
|
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
|
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$$
|
$$p + m_1r = 3m_1$$
|
||||||
and $\sigma_2$ contained in the hyperplanes
|
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
|
Similarly we have
|
||||||
$$\zeta_f (t) = $$
|
$$\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_2})$
|
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}$}
|
\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,$$
|
$$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,$$
|
and $$\omega_7=\omega_{15}=\omega_{7,33}=\omega_{15,34}= x^{13}yzdxdydz,$$
|
||||||
From the formulas given in the previous section; we have
|
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}
|
\end{example}
|
||||||
|
|
||||||
\subsection{Second reduction: Recursive elimination of exceptional $(-1)$-curve not intersecting the strict transform of the discrimiant}
|
\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}
|
\begin{proposition}\label{red2}
|
||||||
\end{proposition}
|
\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}
|
\subsection{Third reduction: $\QQ$-resolution of the discriminant}
|
||||||
|
|
||||||
|
|||||||
@ -18,8 +18,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 2,
|
"execution_count": null,
|
||||||
"id": "cad50def-ecb8-403f-b50c-ce026fbd216d",
|
"id": "fdc11d23-4114-49ef-828a-b7a165169c46",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"source": [
|
||||||
@ -28,8 +28,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 5,
|
"execution_count": 14,
|
||||||
"id": "5ec9dd77-8118-4439-b8cb-4c475a2a645e",
|
"id": "b67cebe5-4b5a-46be-9055-9ecbdecf96f1",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"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))"
|
"((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": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@ -53,27 +53,53 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"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",
|
"id": "c5104650-44eb-4c9c-b016-c34994f72f38",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"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",
|
"cell_type": "code",
|
||||||
"execution_count": 7,
|
"execution_count": 16,
|
||||||
"id": "8dccac88-2fa3-4365-990a-2571f643b9dc",
|
"id": "8dccac88-2fa3-4365-990a-2571f643b9dc",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
"source": [
|
"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",
|
"cell_type": "code",
|
||||||
"execution_count": 8,
|
"execution_count": 17,
|
||||||
"id": "097214a4-61e4-4939-bad0-4e5b3c8ac716",
|
"id": "097214a4-61e4-4939-bad0-4e5b3c8ac716",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
@ -81,16 +107,16 @@
|
|||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"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),\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": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"zetatop.factor(), dic"
|
"zetatop.factor(), zetatopa.factor()"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -129,7 +155,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 25,
|
"execution_count": 8,
|
||||||
"id": "558ef7c7-39cf-47bf-b224-479f1ff365d4",
|
"id": "558ef7c7-39cf-47bf-b224-479f1ff365d4",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
@ -429,27 +455,6 @@
|
|||||||
" print(\"=======================\")"
|
" 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",
|
"cell_type": "code",
|
||||||
"execution_count": 27,
|
"execution_count": 27,
|
||||||
@ -678,6 +683,377 @@
|
|||||||
"dic, dic2"
|
"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",
|
"cell_type": "code",
|
||||||
"execution_count": 43,
|
"execution_count": 43,
|
||||||
@ -768,24 +1144,24 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 48,
|
"execution_count": 49,
|
||||||
"id": "0870be50-c79c-48c9-80b7-24bfd6914737",
|
"id": "0870be50-c79c-48c9-80b7-24bfd6914737",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"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))"
|
" (-5/21) * (s + 16/21)^-1 * (s + 1)^-1 * (s - 16/5))"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 48,
|
"execution_count": 49,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"zetatop.factor(), zetatop3.factor()"
|
"zetatop1.factor(), zetatop3.factor()"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -861,7 +1237,7 @@
|
|||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "SageMath 10.4.beta9",
|
"display_name": "SageMath 10.4.rc1",
|
||||||
"language": "sage",
|
"language": "sage",
|
||||||
"name": "sagemath-devel"
|
"name": "sagemath-devel"
|
||||||
},
|
},
|
||||||
|
|||||||
166
UnLado.ipynb
166
UnLado.ipynb
@ -2,7 +2,7 @@
|
|||||||
"cells": [
|
"cells": [
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 113,
|
"execution_count": 1,
|
||||||
"id": "4778e32e-f561-4e4d-b63a-d4d60f91abde",
|
"id": "4778e32e-f561-4e4d-b63a-d4d60f91abde",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@ -12,7 +12,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 115,
|
"execution_count": 2,
|
||||||
"id": "f042e81b-abf8-4e09-bc67-a19d778033e6",
|
"id": "f042e81b-abf8-4e09-bc67-a19d778033e6",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@ -22,7 +22,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 116,
|
"execution_count": 7,
|
||||||
"id": "0733b364-bbf6-486c-a5d1-e72c7a5d48ca",
|
"id": "0733b364-bbf6-486c-a5d1-e72c7a5d48ca",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@ -34,7 +34,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 117,
|
"execution_count": 8,
|
||||||
"id": "b81e1db9-883e-4a03-a38c-1ca296c9d25b",
|
"id": "b81e1db9-883e-4a03-a38c-1ca296c9d25b",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@ -45,7 +45,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 118,
|
"execution_count": 9,
|
||||||
"id": "f97fbf75-4da5-45db-8f66-cdccdd052326",
|
"id": "f97fbf75-4da5-45db-8f66-cdccdd052326",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@ -60,7 +60,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 119,
|
"execution_count": 10,
|
||||||
"id": "04072945-1ada-4d66-b44e-95318f073634",
|
"id": "04072945-1ada-4d66-b44e-95318f073634",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@ -70,7 +70,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 120,
|
"execution_count": 11,
|
||||||
"id": "d9834ff4-e09f-4cf9-abd0-9b1eea6ca033",
|
"id": "d9834ff4-e09f-4cf9-abd0-9b1eea6ca033",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
@ -88,16 +88,32 @@
|
|||||||
},
|
},
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "display_data"
|
"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": [
|
"source": [
|
||||||
"vertical = cono3(e1, e2, e3, V1, nu) - cono3(Q1, Q2, e3, V1, nu)\n",
|
"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",
|
"cell_type": "code",
|
||||||
"execution_count": 121,
|
"execution_count": 13,
|
||||||
"id": "fe5aa4f3-db61-4a38-a1d1-dd100d819937",
|
"id": "fe5aa4f3-db61-4a38-a1d1-dd100d819937",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
@ -115,12 +131,28 @@
|
|||||||
},
|
},
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "display_data"
|
"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": [
|
"source": [
|
||||||
"horizontal = cono3(Q1, Q2, e3, V0, nu)\n",
|
"horizontal = cono3(Q1, Q2, e3, V0, nu)\n",
|
||||||
"horizontal = (horizontal.numerator() / 9) / (horizontal.denominator() / 9)\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",
|
"cell_type": "code",
|
||||||
"execution_count": 123,
|
"execution_count": 14,
|
||||||
"id": "29605b7d-37f7-4f22-80bd-1694134cd9b7",
|
"id": "29605b7d-37f7-4f22-80bd-1694134cd9b7",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
@ -161,7 +193,7 @@
|
|||||||
"[9/(alpha1*alpha2), 3*a2/(alpha1*alpha2), (-3*a1)/(alpha1*alpha2)]"
|
"[9/(alpha1*alpha2), 3*a2/(alpha1*alpha2), (-3*a1)/(alpha1*alpha2)]"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 123,
|
"execution_count": 14,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@ -172,7 +204,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 124,
|
"execution_count": 15,
|
||||||
"id": "83121ff8-547c-424b-b3ce-860a80f0541e",
|
"id": "83121ff8-547c-424b-b3ce-860a80f0541e",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@ -182,7 +214,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 125,
|
"execution_count": 16,
|
||||||
"id": "b3963226-7397-4cb5-bdff-5382f74df8df",
|
"id": "b3963226-7397-4cb5-bdff-5382f74df8df",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
@ -192,7 +224,7 @@
|
|||||||
"(3*a1/alpha1, 3*a1/alpha1, 3*a2/alpha2, 3*a2/alpha2, (a1 + 3*nu1)/alpha1)"
|
"(3*a1/alpha1, 3*a1/alpha1, 3*a2/alpha2, 3*a2/alpha2, (a1 + 3*nu1)/alpha1)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 125,
|
"execution_count": 16,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
@ -203,7 +235,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 126,
|
"execution_count": 17,
|
||||||
"id": "36201bc7-a7e2-4c9e-a8e9-5865cb9686f9",
|
"id": "36201bc7-a7e2-4c9e-a8e9-5865cb9686f9",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@ -214,7 +246,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 127,
|
"execution_count": 18,
|
||||||
"id": "d77f48f5-2236-4cb6-a211-14f3623539c0",
|
"id": "d77f48f5-2236-4cb6-a211-14f3623539c0",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
@ -241,7 +273,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 128,
|
"execution_count": 19,
|
||||||
"id": "c18631c1-f18a-48a2-8e9a-727d347ef89a",
|
"id": "c18631c1-f18a-48a2-8e9a-727d347ef89a",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
@ -259,12 +291,102 @@
|
|||||||
},
|
},
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "display_data"
|
"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": [
|
"source": [
|
||||||
"prueba = horizontal - arista + vertical\n",
|
"prueba = horizontal - arista + vertical\n",
|
||||||
"# prueba.numerator().variables() + prueba.denominator().variables()\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": {
|
"metadata": {
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "SageMath 10.3.rc3",
|
"display_name": "SageMath 10.4.beta6",
|
||||||
"language": "sage",
|
"language": "sage",
|
||||||
"name": "sagemath-310"
|
"name": "sagemath-devel"
|
||||||
},
|
},
|
||||||
"language_info": {
|
"language_info": {
|
||||||
"codemirror_mode": {
|
"codemirror_mode": {
|
||||||
@ -958,7 +1080,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.11.1"
|
"version": "3.12.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|||||||
@ -723,7 +723,7 @@
|
|||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "SageMath 10.4.beta3",
|
"display_name": "SageMath 10.4.rc1",
|
||||||
"language": "sage",
|
"language": "sage",
|
||||||
"name": "sagemath-devel"
|
"name": "sagemath-devel"
|
||||||
},
|
},
|
||||||
@ -737,7 +737,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.12.2"
|
"version": "3.12.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|||||||
@ -488,7 +488,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.12.2"
|
"version": "3.12.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|||||||
@ -468,7 +468,7 @@
|
|||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "SageMath 10.4.beta3",
|
"display_name": "SageMath 10.4.beta6",
|
||||||
"language": "sage",
|
"language": "sage",
|
||||||
"name": "sagemath-devel"
|
"name": "sagemath-devel"
|
||||||
},
|
},
|
||||||
@ -482,7 +482,7 @@
|
|||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython3",
|
"pygments_lexer": "ipython3",
|
||||||
"version": "3.12.2"
|
"version": "3.12.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|||||||
@ -987,7 +987,7 @@
|
|||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"kernelspec": {
|
"kernelspec": {
|
||||||
"display_name": "SageMath 10.4.beta3",
|
"display_name": "SageMath 10.4.beta4",
|
||||||
"language": "sage",
|
"language": "sage",
|
||||||
"name": "sagemath-devel"
|
"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