|
Symmetric functions are symmetric polynomials
over some coefficient ring, hence the algebra of symmetric functions
is defined by specifying this ring.
There are five standard bases that can be used to
express symmetric functions. In Magma there are separate constructions for
creating an algebra using each distinct basis.
SFA(R) : Rng -> AlgSym
Basis: MonStgElt Default: "Schur"
Given a ring R, return the algebra of symmetric functions over R.
By default this algebra will use the basis of "Schur" functions,
though the parameter Basis allows the user to specify that
the basis be one of the "Homogeneous", "PowerSum",
"Elementary" or "Monomial" functions.
SFASchur(R) : Rng -> AlgSym
Given a commutative ring with unity R,
create the algebra of symmetric functions (polynomials)
with coefficients from R.
Its elements are expressed in terms of the basis of Schur
symmetric
functions, which
are indexed by partitions.
SFAHomogeneous(R) : Rng -> AlgSym
Given a commutative ring with unity R,
create the algebra of symmetric functions (polynomials)
with coefficients from R.
Its elements are expressed in terms of the basis of Homogeneous
symmetric
functions, which
are indexed by partitions.
SFAPower(R) : Rng -> AlgSym
Given a commutative ring with unity R,
create the algebra of symmetric functions (polynomials)
with coefficients from R.
Its elements are expressed in terms of the basis of Power Sum
symmetric
functions, which
are indexed by partitions.
SFAElementary(R) : Rng -> AlgSym
Given a commutative ring with unity R,
create the algebra of symmetric functions (polynomials)
with coefficients from R.
Its elements are expressed in terms of the basis of Elementary
symmetric
functions, which
are indexed by partitions.
SFAMonomial(R) : Rng -> AlgSym
Given a commutative ring with unity R,
create the algebra of symmetric functions (polynomials)
with coefficients from R.
Its elements are expressed in terms of the basis of Monomial
symmetric
functions, which
are indexed by partitions.
A symmetric polynomial can be expressed in terms of any of the 5
standard bases.
> R := Rationals();
> S := SymmetricFunctionAlgebraSchur(R);
Symmetric Algebra over Rational Field, Schur symmetric functions as basis
> E := SymmetricFunctionAlgebra(R : Basis := "Elementary");
Symmetric Algebra over Rational Field, Elementary symmetric functions as basis
> f1 := S.[2,1];
> f1;
S.[2,1]
>
> f2 := E ! f1;
> f2;
E.[2,1] - E.[3]
> f1 eq f2;
true
>
> P<x,y,z> := PolynomialRing(R, 3);
> P ! f1;
x^2*y + x^2*z + x*y^2 + 2*x*y*z + x*z^2 + y^2*z + y*z^2
> P ! f2;
x^2*y + x^2*z + x*y^2 + 2*x*y*z + x*z^2 + y^2*z + y*z^2
For each of the 5 different standard basis for symmetric functions, basis
elements are indexed via partitions (weakly decreasing positive sequences).
The weight of a partition is the sum of its entries, and gives
the degree of the element.
For example, [3, 1] is a partition of weight 4, hence a symmetric
function basis element corresponding to [3, 1] will be a symmetric
polynomial of degree 4.
General symmetric functions are linear combinations of basis elements and
can be created by taking such linear combinations
or via coercion from either another basis or directly from
a polynomial.
Given a partition P, which is a weakly decreasing positive sequence of
integers, return the basis element of the algebra of symmetric functions A
corresponding to P.
Given a positive integer i, return the basis element of the
algebra of symmetric functions A corresponding to the partition [i].
We can create elements via linear combinations of basis elements.
> R := Rationals();
> M := SFAMonomial(R);
> M.[3,1];
M.[3,1]
> M.4;
M.[4]
> 3 * M.[3,1] - 1/2 * M.4;
3*M.[3,1] - 1/2*M.[4]
Given a multivariate polynomial f which is symmetric in all of its
indeterminates (and hence is a symmetric function), return f
as an element of the algebra of symmetric functions A.
This element returned will be expressed in terms of the symmetric function
basis of A.
Note that polynomials are considered to be identified with their
corresponding representations using the monomial symmetric functions,
so the above coercion may involve a change of basis from the monomial
symmetric functions to the symmetric function basis used by A.
This might appear to introduce unexpected "extra" terms (see the
second example below).
Symmetric polynomials are symmetric functions. These can be coerced
into algebras of symmetric functions and hence expressed in terms
of the relevant basis. Polynomials which are not symmetric
cannot be coerced.
> R := Rationals();
> M := SFAMonomial(R);
> P<[x]> := PolynomialRing(R, 3);
> f := -3*x[1]^3 + x[1]^2*x[2] + x[1]^2*x[3] + x[1]*x[2]^2 + x[1]*x[3]^2 -
> 3*x[2]^3 + x[2]^2*x[3] + x[2]*x[3]^2 - 3*x[3]^3;
> M!f;
M.[2,1] - 3*M.[3]
> M ! (x[1] + x[2]*x[3]);
>> M ! (x[1] + x[2]*x[3]);
^
Runtime error in '!': Polynomial is not symmetric
A symmetric polynomial is identified with its representation using
a monomial basis. (This ensures consistency when coercing through
multiple algebras.) This may cause apparently redundant terms to
appear after a coercion to an algebra using a different basis.
> R := Integers();
> M := SFAMonomial(R);
> S := SFASchur(R);
> P<X, Y> := PolynomialRing(R, 2);
> f := X^2*Y + X*Y^2;
> M!f;
M.[2,1]
> S!f;
- 2*S.[1,1,1] + S.[2,1]
When we coerce S.[1,1,1] back into our polynomial ring, we see that
it evaluates to zero and may seem redundant:
> P!S.[1,1,1];
0
However, when we use a polynomial ring with more variables we can see
the important of that term:
> P<X, Y, Z> := PolynomialRing(R, 3);
> P!M.[2,1];
X^2*Y + X^2*Z + X*Y^2 + X*Z^2 + Y^2*Z + Y*Z^2
> P!S.[2,1];
X^2*Y + X^2*Z + X*Y^2 + 2*X*Y*Z + X*Z^2 + Y^2*Z + Y*Z^2
> P!(S.[2,1] - 2*S.[1,1,1]);
X^2*Y + X^2*Z + X*Y^2 + X*Z^2 + Y^2*Z + Y*Z^2
Create the scalar element r in the symmetric function algebra A.
> R := Rationals();
> P := SFAPower(R);
> m := P!3;
> m;
3
> Parent(m);
Symmetric Algebra over Rational Field, Power sum symmetric functions as basis
> m + P.[3,2];
3 + P.[3,2]
Given a symmetric function algebra A and a symmetric function m
(possibly with a different basis),
return the element m expressed in terms of the basis of A.
A symmetric function can easily be expressed in terms of any of the symmetric
function bases, or as a polynomial.
> R := Rationals();
> S := SFASchur(R);
> H := SFAHomogeneous(R);
> P := SFAPower(R);
> E := SFAElementary(R);
> M := SFAMonomial(R);
>
> m := S.[3,1];
> S!m;
S.[3,1]
> H!m;
H.[3,1] - H.[4]
> P!m;
1/8*P.[1,1,1,1] + 1/4*P.[2,1,1] - 1/8*P.[2,2] - 1/4*P.[4]
> E!m;
E.[2,1,1] - E.[3,1] - E.[2,2] + E.[4]
> M!m;
3*M.[1,1,1,1] + 2*M.[2,1,1] + M.[3,1] + M.[2,2]
>
> PP<[x]> := PolynomialRing(R, 4);
> PP ! m;
x[1]^3*x[2] + x[1]^3*x[3] + x[1]^3*x[4] + x[1]^2*x[2]^2 + 2*x[1]^2*x[2]*x[3] +
2*x[1]^2*x[2]*x[4] + x[1]^2*x[3]^2 + 2*x[1]^2*x[3]*x[4] + x[1]^2*x[4]^2 +
x[1]*x[2]^3 + 2*x[1]*x[2]^2*x[3] + 2*x[1]*x[2]^2*x[4] + 2*x[1]*x[2]*x[3]^2 +
3*x[1]*x[2]*x[3]*x[4] + 2*x[1]*x[2]*x[4]^2 + x[1]*x[3]^3 +
2*x[1]*x[3]^2*x[4] + 2*x[1]*x[3]*x[4]^2 + x[1]*x[4]^3 + x[2]^3*x[3] +
x[2]^3*x[4] + x[2]^2*x[3]^2 + 2*x[2]^2*x[3]*x[4] + x[2]^2*x[4]^2 +
x[2]*x[3]^3 + 2*x[2]*x[3]^2*x[4] + 2*x[2]*x[3]*x[4]^2 + x[2]*x[4]^3 +
x[3]^3*x[4] + x[3]^2*x[4]^2 + x[3]*x[4]^3
We show that the k-th homogeneous symmetric function is defined
as the sum over all monomial symmetric functions indexed by partitions
of weight k.
> R := Rationals();
> M := SFA(R : Basis := "Monomial");
> H := SFA(R : Basis := "Homogeneous");
>
> H ! (M.[1]);
H.[1]
> H ! (M.[2] + M.[1,1]);
H.[2]
> H ! (M.[3] + M.[2,1] + M.[1,1,1]);
H.[3]
> H ! (M.[4] + M.[3,1] + M.[2,2] + M.[2,1,1] + M.[1,1,1,1]);
H.[4]
>
> k := 5;
> H ! &+ [ M.P : P in Partitions(k)];
H.[5]
> k := 10;
> H ! &+ [ M.P : P in Partitions(k)];
H.[10]
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|