Setting t=0 in a non-symmetric E-Macdonald polynomial

Suppose I have a non-symmetric E-Macdonald polynomial indexed by, say, $\mu=(0,1,1)$. Then I can write

from sage.combinat.sf.ns_macdonald import E
E([0,1,1])


and I get a polynomial in three variables and with coefficients in $\mathbb{Q}(q,t)$:

((-t + 1)/(-q*t + 1))*x0*x1 + ((-t + 1)/(-q*t + 1))*x0*x2 + x1*x2


However, I am confused about how I can work with this polynomial. For my purposes, I would like to study the specialization $t=0$. It would be really neat if there were some way to get write something like

Epoly(x_0,x_1,x_2,q,t) =...


so I could easily specialize variables as I go along.

edit retag close merge delete

Sort by » oldest newest most voted

You can find out what you're dealing with by looking at the object's parent:

sage: my_E = E([0,1,1]); my_E
((-t + 1)/(-q*t + 1))*x0*x1 + ((-t + 1)/(-q*t + 1))*x0*x2 + x1*x2
sage: my_E.parent()
Multivariate Polynomial Ring in x0, x1, x2 over Fraction Field of Multivariate Polynomial Ring in q, t over Rational Field


So you can read about multivariate polynomials in the reference manual. In this case you can do

sage: q, t = my_E.parent().base_ring().gens()
sage: my_E.map_coefficients(lambda c: c.subs({t : 0}))
x0*x1 + x0*x2 + x1*x2


This last polynomial still belongs to the same ring as my_E, but you could change that using the change_ring() method if you want. You can also get at the x's:

sage: x = my_E.parent().gens()
sage: x[0]
x0
sage: my_E.subs({x[0] : 0})
x1*x2


Alternatively you can convert the whole thing into the symbolic ring:

sage: var('t')
sage: SR(my_E).subs(t=0)
x0*x1 + x0*x2 + x1*x2

more

1

Big thanks for this very pedagogical answer!

( 2019-04-11 08:42:31 -0500 )edit