Processing math: 100%

First time here? Check out the FAQ!

Ask Your Question
2

Non-Symmetric Macdonald expansion

asked 3 years ago

mathstudent gravatar image

updated 3 years ago

Max Alekseyev gravatar image

I want to expand a given polynomial in n variables, homogeneous of degree k as a linear combination of Non-Symmetric Macdonald polynomials Eα where α varies over Zn0 with αi=k.

Background: We know that these Macdonald polynomials do indeed form a basis of the vector space of homogeneous degree k polynomials in n variables. The Non-Symmetric Macdonald polynomials I am interested in is the type GLn kind. And their sage implementation can be found here: sage documentation

Bottom line is that we have a basis of a vector space already implemented in sage. Now how do we use it to compute coefficients of any vector when written in terms of this basis?

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
1

answered 3 years ago

Max Alekseyev gravatar image

Here is a sample code that find such a representation for a given polynomial pol:

from sage.combinat.sf.ns_macdonald import E

def repM(pol):
    k = pol.degree()
    n = len( pol.variables() )
    E2a = { E(a):a for a in IntegerVectors(k, n) }
    J = ideal( list(E2a.keys()) )
    gens = J.gens()
    return { E2a[g]:c for g,c in zip(gens, pol.change_ring(J.base_ring()).lift(gens)) if c }

It return a dict where each α is mapped to the corresponding coefficient (a function in q,t) of Eα, omitting zero coefficients. For example, running it on elementary symmetric polynomial e2,1 in 3 variables:

e = SymmetricFunctions(QQ).elementary()
repM(e[2,1].expand(3))

returns

{[2, 1, 0]: (q^4*t^4 - 2*q^3*t^4 + q^2*t^4 - q^2*t^3 + 2*q*t^3 - t^3)/(q^4*t^4 - 2*q^3*t^3 + 2*q*t - 1),
 [2, 0, 1]: (q^3*t^3 - q^2*t^3 - q*t^2 + t^2)/(q^3*t^3 - q^2*t^2 - q*t + 1),
 [1, 2, 0]: (q^3*t^3 - q^2*t^3 - q*t^2 + t^2)/(q^3*t^3 - q^2*t^2 - q*t + 1),
 [1, 1, 1]: (q*t^2 + q*t - t^2 + q - t - 1)/(q*t^2 - 1),
 [1, 0, 2]: (q*t - t)/(q*t - 1),
 [0, 2, 1]: (q*t - t)/(q*t - 1),
 [0, 1, 2]: 1}
Preview: (hide)
link

Comments

Can you explain what is happening in the repM definition please?

mathstudent gravatar imagemathstudent ( 3 years ago )
1

Essentially it defines the ideal J generated by the Macdonald polynomials, and computes a representation of the given polynomial in terms of the ideal generators (via function .lift()). To do so, the base ring of the polynomial first needs to be changed to that of the ideal, which is done via .change_ring() function. The rest is just for formatting purposes.

Max Alekseyev gravatar imageMax Alekseyev ( 3 years ago )

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 3 years ago

Seen: 741 times

Last updated: Oct 22 '21