|
D.13.6.32 tropicalSubst
Procedure from library tropical.lib (see tropical_lib).
- Usage:
- parameterSubstitute(f,N,L); f poly, N int, L list
- Assume:
- f is a polynomial in Q(t)[x_1,...,x_k]
and L is a list of the form var(i_1),poly_1,...,v(i_k),poly_k
- Return:
- list, the list is the tropical polynomial which we get from f
by replacing the i-th variable be the i-th polynomial
but in the i-th polynomial the parameter t is replaced by t^1/N
Example:
| LIB "tropical.lib";
ring r=(0,t),(x,y),dp;
poly f=t2x+1/t*y-1;
tropicalSubst(f,2,x,x+t,y,tx+y+t2);
==> [1]:
==> x-1/2
==> [2]:
==> y-1
==> [3]:
==> 5/2
// The procedure can be used to study the effect of a transformation of
// the form x -> x+t^b, with b a rational number, on the tropicalisation and
// the j-invariant of a cubic over the Puiseux series.
f=t7*y3+t3*y2+t*(x3+xy2+y+1)+xy;
// - b=3/2, then the cycle length of the tropical cubic equals -val(j-inv)
list g32=tropicalSubst(f,2,x,x+t3,y,y);
tropicalJInvariant(g32);
==> // ** int division with `/`: use `div` instead in line >> genus=-genus/2\
; // we have counted each bounded edge twice<<
==> 5
// - b=1, then it is still true, but only just ...
list g1=tropicalSubst(f,1,x,x+t,y,y);
tropicalJInvariant(g1);
==> // ** int division with `/`: use `div` instead in line >> genus=-genus/2\
; // we have counted each bounded edge twice<<
==> 5
// - b=2/3, as soon as b<1, the cycle length is strictly less than -val(j-inv)
list g23=tropicalSubst(f,3,x,x+t2,y,y);
tropicalJInvariant(g23);
==> // ** int division with `/`: use `div` instead in line >> genus=-genus/2\
; // we have counted each bounded edge twice<<
==> 14/3
|
|