Homogeneous symmetric functions#
By this we mean the basis formed of the complete homogeneous
symmetric functions
- class sage.combinat.sf.homogeneous.SymmetricFunctionAlgebra_homogeneous(Sym)#
Bases:
sage.combinat.sf.multiplicative.SymmetricFunctionAlgebra_multiplicative
A class of methods specific to the homogeneous basis of symmetric functions.
INPUT:
self
– a homogeneous basis of symmetric functionsSym
– an instance of the ring of symmetric functions
- class Element#
Bases:
sage.combinat.sf.classical.SymmetricFunctionAlgebra_classical.Element
- expand(n, alphabet='x')#
Expand the symmetric function
self
as a symmetric polynomial inn
variables.INPUT:
n
– a nonnegative integeralphabet
– (default:'x'
) a variable for the expansion
OUTPUT:
A monomial expansion of
self
in the variables labelled byalphabet
.EXAMPLES:
sage: h = SymmetricFunctions(QQ).h() sage: h([3]).expand(2) x0^3 + x0^2*x1 + x0*x1^2 + x1^3 sage: h([1,1,1]).expand(2) x0^3 + 3*x0^2*x1 + 3*x0*x1^2 + x1^3 sage: h([2,1]).expand(3) x0^3 + 2*x0^2*x1 + 2*x0*x1^2 + x1^3 + 2*x0^2*x2 + 3*x0*x1*x2 + 2*x1^2*x2 + 2*x0*x2^2 + 2*x1*x2^2 + x2^3 sage: h([3]).expand(2,alphabet='y') y0^3 + y0^2*y1 + y0*y1^2 + y1^3 sage: h([3]).expand(2,alphabet='x,y') x^3 + x^2*y + x*y^2 + y^3 sage: h([3]).expand(3,alphabet='x,y,z') x^3 + x^2*y + x*y^2 + y^3 + x^2*z + x*y*z + y^2*z + x*z^2 + y*z^2 + z^3 sage: (h([]) + 2*h([1])).expand(3) 2*x0 + 2*x1 + 2*x2 + 1 sage: h([1]).expand(0) 0 sage: (3*h([])).expand(0) 3
- exponential_specialization(t=None, q=1)#
Return the exponential specialization of a symmetric function (when
), or the -exponential specialization (when ).The exponential specialization
at is a -algebra homomorphism from the -algebra of symmetric functions to another -algebra . It is defined whenever the base ring is a -algebra and is an element of . The easiest way to define it is by specifying its values on the powersum symmetric functions to be and for . Equivalently, on the homogeneous functions it is given by ; see Proposition 7.8.4 of [EnumComb2].By analogy, the
-exponential specialization is a -algebra homomorphism from the -algebra of symmetric functions to another -algebra that depends on two elements and of for which the elements for all positive integers are invertible. It can be defined by specifying its values on the complete homogeneous symmetric functions to bewhere
is the -factorial. Equivalently, for and a homogeneous symmetric function of degree , we havewhere
is the stable principal specialization of (seeprincipal_specialization()
). (See (7.29) in [EnumComb2].)The limit of
as is .INPUT:
t
(default:None
) – the value to use for ; the default is to create a ring of polynomials int
.q
(default: ) – the value to use for . Ifq
isNone
, then a ring (or fraction field) of polynomials inq
is created.
EXAMPLES:
sage: h = SymmetricFunctions(QQ).h() sage: x = h[5,3] sage: x.exponential_specialization() 1/720*t^8 sage: factorial(5)*factorial(3) 720 sage: x = 5*h[1,1,1] + 3*h[2,1] + 1 sage: x.exponential_specialization() 13/2*t^3 + 1
We also support the
-exponential_specialization:sage: factor(h[3].exponential_specialization(q=var("q"), t=var("t"))) t^3/((q^2 + q + 1)*(q + 1))
- omega()#
Return the image of
self
under the omega automorphism.The omega automorphism is defined to be the unique algebra endomorphism
of the ring of symmetric functions that satisfies for all positive integers (where stands for the -th elementary symmetric function, and stands for the -th complete homogeneous symmetric function). It furthermore is a Hopf algebra endomorphism and an involution, and it is also known as the omega involution. It sends the power-sum symmetric function to for every positive integer .The images of some bases under the omega automorphism are given by
where
is any partition, where denotes the length (length()
) of the partition , where denotes the conjugate partition (conjugate()
) of , and where the usual notations for bases are used ( = elementary, = complete homogeneous, = powersum, = Schur).omega_involution()
is a synonym for theomega()
method.OUTPUT:
the image of
self
under the omega automorphism
EXAMPLES:
sage: h = SymmetricFunctions(QQ).h() sage: a = h([2,1]); a h[2, 1] sage: a.omega() h[1, 1, 1] - h[2, 1] sage: e = SymmetricFunctions(QQ).e() sage: e(h([2,1]).omega()) e[2, 1]
- omega_involution()#
Return the image of
self
under the omega automorphism.The omega automorphism is defined to be the unique algebra endomorphism
of the ring of symmetric functions that satisfies for all positive integers (where stands for the -th elementary symmetric function, and stands for the -th complete homogeneous symmetric function). It furthermore is a Hopf algebra endomorphism and an involution, and it is also known as the omega involution. It sends the power-sum symmetric function to for every positive integer .The images of some bases under the omega automorphism are given by
where
is any partition, where denotes the length (length()
) of the partition , where denotes the conjugate partition (conjugate()
) of , and where the usual notations for bases are used ( = elementary, = complete homogeneous, = powersum, = Schur).omega_involution()
is a synonym for theomega()
method.OUTPUT:
the image of
self
under the omega automorphism
EXAMPLES:
sage: h = SymmetricFunctions(QQ).h() sage: a = h([2,1]); a h[2, 1] sage: a.omega() h[1, 1, 1] - h[2, 1] sage: e = SymmetricFunctions(QQ).e() sage: e(h([2,1]).omega()) e[2, 1]
- principal_specialization(n=+ Infinity, q=None)#
Return the principal specialization of a symmetric function.
The principal specialization of order
at is the ring homomorphism from the ring of symmetric functions to another commutative ring given by for and for . Here, is a given element of , and we assume that the variables of our symmetric functions are . (To be more precise, is a -algebra homomorphism, where is the base ring.) See Section 7.8 of [EnumComb2].The stable principal specialization at
is the ring homomorphism from the ring of symmetric functions to another commutative ring given by for all . This is well-defined only if the resulting infinite sums converge; thus, in particular, setting in the stable principal specialization is an invalid operation.INPUT:
n
(default:infinity
) – a nonnegative integer orinfinity
, specifying whether to compute the principal specialization of ordern
or the stable principal specialization.q
(default:None
) – the value to use for ; the default is to create a ring of polynomials inq
(or a field of rational functions inq
) over the given coefficient ring.
We use the formulas from Proposition 7.8.3 of [EnumComb2] (using Gaussian binomial coefficients
):EXAMPLES:
sage: h = SymmetricFunctions(QQ).h() sage: x = h[2,1] sage: x.principal_specialization(3) q^6 + 2*q^5 + 4*q^4 + 4*q^3 + 4*q^2 + 2*q + 1 sage: x = 3*h[2] + 2*h[1] + 1 sage: x.principal_specialization(3, q=var("q")) 2*(q^3 - 1)/(q - 1) + 3*(q^4 - 1)*(q^3 - 1)/((q^2 - 1)*(q - 1)) + 1
- coproduct_on_generators(i)#
Return the coproduct on
.INPUT:
self
– a homogeneous basis of symmetric functionsi
– a nonnegative integer
OUTPUT:
the sum
EXAMPLES:
sage: Sym = SymmetricFunctions(QQ) sage: h = Sym.homogeneous() sage: h.coproduct_on_generators(2) h[] # h[2] + h[1] # h[1] + h[2] # h[] sage: h.coproduct_on_generators(0) h[] # h[]