| Download
Project: Teaching
Path: basics_of_Sym.sagews
Views: 137Visibility: Unlisted (only visible to those who know the link)
Image: ubuntu2004Init OK!
To specify a basis element, supply a partition in the form [lambda_1,lambda_2,...] as an argument:
h[2, 2]
expanded in a different basis: h[2, 2] = 6*m[1, 1, 1, 1] + 4*m[2, 1, 1] + 3*m[2, 2] + 2*m[3, 1] + m[4]
Cycle through all partitions like this:
h[3] = m[1, 1, 1] + m[2, 1] + m[3]
h[2, 1] = 3*m[1, 1, 1] + 2*m[2, 1] + m[3]
h[1, 1, 1] = 6*m[1, 1, 1] + 3*m[2, 1] + m[3]
You can also get directly the transition matrix:
[1 1 1]
[1 2 3]
[1 3 6]
Expand a symmetric polynomial in some number of variables:
h_2(x_0,x_1,x_2) = x0^2 + x0*x1 + x1^2 + x0*x2 + x1*x2 + x2^2
Inverse operation is also sometimes useful:
x0^2 + x0*x1 + x1^2 + x0*x2 + x1*x2 + x2^2 = m[1, 1] + m[2] = h[2]
Scalar product: <m[2, 2],h[2, 2]>=1, but <m[2, 2],h[2, 1, 1]>=0
Omega involution: omega(h[2, 2]) = h[1, 1, 1, 1] - 2*h[2, 1, 1] + h[2, 2] = e[2, 2]
Useful functions for partitions:
lambda= [5, 3, 1, 1, 1]
size (sum of parts)= 11 ; length (number of nonzero parts)= 5
z_lambda = 1^3 * 3! * 3^1 * 1! * 5^1 * 1! = 90
epsilon_lambda = (-1)^{number of even parts of lambda} = 1
Let's check that p_lambda's are orthogonal.
<p[3],p[3]>=3
z_lambda= 3
<p[3],p[2, 1]>=0
<p[3],p[1, 1, 1]>=0
<p[2, 1],p[3]>=0
<p[2, 1],p[2, 1]>=2
z_lambda= 2
<p[2, 1],p[1, 1, 1]>=0
<p[1, 1, 1],p[3]>=0
<p[1, 1, 1],p[2, 1]>=0
<p[1, 1, 1],p[1, 1, 1]>=6
z_lambda= 6
And now let's check that p_lambda's are eigenvectors of omega:
omega(p[4]) = -p[4]; epsilon_[4] = -1
omega(p[3, 1]) = p[3, 1]; epsilon_[3, 1] = 1
omega(p[2, 2]) = p[2, 2]; epsilon_[2, 2] = 1
omega(p[2, 1, 1]) = -p[2, 1, 1]; epsilon_[2, 1, 1] = -1
omega(p[1, 1, 1, 1]) = p[1, 1, 1, 1]; epsilon_[1, 1, 1, 1] = 1
Exercise: do the same for Schur functions and see what happens!
To get quick help on a function, place a question mark right next to it and evaluate:
9 5 4 2 1
6 2 1
3
2
1