Ask Your Question

Jack Symmetric function and expansion in power symmetric basis

asked 2022-02-16 23:23:24 +0200

Anupamsage gravatar image

updated 2022-02-17 01:37:39 +0200

The question involves SageMath and its Symmetric functions package. Particularly I am interested in Jack symmetric functions. So to define Jack symmetric functions in SageMath:

sage: Sym = SymmetricFunctions(QQ)
sage: Zonal = Sym.jack(t=2).J()
sage: Schur = Sym.jack(t=2).J()
sage: s = Sym.schur()

My interest in all these functions as expansion in power symmetric basis hence

sage: P = Sym.p()  # to expand symmetric functions in power symmetric basis

sage: P(Zonal([2,2]))
p[1, 1, 1, 1] + 2*p[2, 1, 1] + 7*p[2, 2] - 8*p[3, 1] - 2*p[4]


sage: P(Schur([2,2]))
1/12*p[1, 1, 1, 1] + 1/4*p[2, 2] + (-1/3)*p[3, 1]

Now the problem is that p[2,1,1] is equal to $p_2 p_1^2$ but with the Sage representation I cannot work by replacing $p_i$ with $p_i/h$ for example. As I know the character formula for Schur functions, I wrote my own programme using symmetrica.charvalue and for shur([2,1,1]) it returns $$ 1/8p_1^4/h^4 - 1/4p_1^2p_2/h^3 - 1/8p_2^2/h^2 + 1/4*p_4/h $$

My question is: can I do it without writing a whole code just by using the predefined Schur function that is jack symmetric function for $t = 1$?

The second question is about the same thing for $t = 2$ Zonal polynomials. The zonal polynomial can be written in a power symmetric basis in SageMath, but I want it as a product of the $p_i$, not p[Partition]. Is there a formula that exists in literature to do that or can I just do it in SageMath using the existing Jack function?

I can rewrite the code if I have a reference for zonal polynomial in a power symmetric basis.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2022-02-17 10:43:43 +0200

rburing gravatar image

These objects created by SageMath are iterable in a nice way, containing exactly the information you need:

sage: P(Schur([2,1,1]))
p[1, 1, 1, 1] - p[2, 1, 1] - 2*p[2, 2] - 2*p[3, 1] + 4*p[4]
sage: list(P(Schur([2,1,1])))
[([2, 1, 1], -1), ([3, 1], -2), ([2, 2], -2), ([4], 4), ([1, 1, 1, 1], 1)]

So you can do e.g. the following:

sage: var('h')
sage: sum(coeff*prod(var('p_{}'.format(k))/h for k in partition) for partition, coeff in P(Schur([2,1,1])))
p_1^4/h^4 - p_1^2*p_2/h^3 - 2*p_2^2/h^2 - 2*p_1*p_3/h^2 + 4*p_4/h

Or e.g. with generators of a polynomial ring:

sage: P_ring = PolynomialRing(QQ, names=['p_{}'.format(k+1) for k in range(4)] + ['h'])
sage: p = P_ring.gens()[:-1]
sage: h = P_ring.gens()[-1]
sage: sum(coeff*prod(p[k-1]/h for k in partition) for partition, coeff in P(Schur([2,1,1])))
(p_1^4 - p_1^2*p_2*h - 2*p_2^2*h^2 - 2*p_1*p_3*h^2 + 4*p_4*h^3)/h^4
edit flag offensive delete link more


Thanks a lot, I think you meant P(Zonal([2,1,1]) it for zonal polynomial.

Anupamsage gravatar imageAnupamsage ( 2022-02-18 07:41:36 +0200 )edit

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


Asked: 2022-02-16 23:23:24 +0200

Seen: 251 times

Last updated: Feb 17 '22