({{, (RefLink[SymmetricReduction, paclet:ref/SymmetricReduction])[f,{(Subscript[x, 1]),…,(Subscript[x, n])}] 
gives a pair of polynomials {p,q} in (Subscript[x, 1]),…,(Subscript[x, n]) such that f==p+q, where p is the symmetric part and q is the remainder.}, {, (RefLink[SymmetricReduction, paclet:ref/SymmetricReduction])[f,{(Subscript[x, 1]),…,(Subscript[x, n])},{(Subscript[s, 1]),…,(Subscript[s, n])}] 
gives the pair {p,q} with the elementary symmetric polynomials in p replaced by (Subscript[s, 1]),…,(Subscript[s, n]).}})

OpenersNotesSection(Spacer1)Details

If f is a symmetric polynomial, then p is the unique polynomial in elementary symmetric polynomials equal to f, and q is zero.

If f  is not a symmetric polynomial, then the output p is not unique, but depends on the ordering of its variables.

For a given ordering, a nonsymmetric polynomial f can be expressed uniquely as a sum of its symmetric part p and a remainder q that does not contain descending monomials. A monomial c (Subscript[x, 1]^(Subscript[e, 1])) … (Subscript[x, n]^(Subscript[e, n])) is called descending if (Subscript[e, 1])≥…≥(Subscript[e, n]).

Changing the ordering of the variables may produce different pairs {p,q}.

(RefLink[SymmetricReduction, paclet:ref/SymmetricReduction]) does not check to see that f is a polynomial, and will attempt to symmetrize the polynomial part of f.

OpenersPrimaryExamplesSection(Spacer1)Examples  (9)

OpenersExampleSection0(Spacer1)Basic Examples  (3)

Write a symmetric polynomial as a sum of elementary symmetric polynomials:

SymmetricReduction[x^2+y^2,{x,y}]

Write a nonsymmetric polynomial as a symmetric part and a remainder:

SymmetricReduction[x^2-y^2,{x,y}]

Name the first two elementary symmetric polynomials s1 and s2:

SymmetricReduction[x^2-y^2,{x,y},{s1,s2}]

OpenersExampleSection1(Spacer1)Scope  (2)

SymmetricReduction[x^10-y^10,{x,y}]

SymmetricReduction[x^10-y^10,{x,y},{s1,s2}]

(RefLink[SymmetricReduction, paclet:ref/SymmetricReduction]) will reduce the polynomial part of an expression:

SymmetricReduction[x y+Sin[x y+x z+y z],{x,y,z},{s1,s2,s3}]

OpenersExampleSection2(Spacer1)Applications  (2)

Let the roots of the equation (x^3)+a (x^2)+b x+c==0 be α, β, γ. The coefficients a, b, c are trivially related to the symmetric polynomials of α, β, γ:

poly1=(x^3)+a (x^2)+b x+c;

SolveAlways[poly1==(x-α)(x-β)(x-γ),x]

SymmetricPolynomial[#,{α,β,γ}]&/@Range[3]

A similar expression holds for the monic polynomial with roots (α^2), (β^2), (γ^2):

SolveAlways[(x^3)+(OverBar[a])(x^2)+(OverBar[b])x+(OverBar[c])==(x-(α^2))(x-(β^2))(x-(γ^2)),x]

Use (RefLink[SymmetricReduction, paclet:ref/SymmetricReduction]) to solve for (OverBar[a]), (OverBar[b]), (OverBar[c]):

{(OverBar[a]),(OverBar[b]),(OverBar[c])}=Part[SymmetricReduction[#,{α,β,γ},{-a,b,-c}]&/@{-(α^2)-(β^2)-(γ^2),(α^2)(β^2)+(α^2)(γ^2)+(β^2)(γ^2),-(α^2)(β^2)(γ^2)},All,1]

The monic polynomial with roots (α^2), (β^2), (γ^2):

poly2=(x^3)+(OverBar[a])(x^2)+(OverBar[b])x+(OverBar[c])

Check:

(x^2)/.NSolve[poly1/.{a->3,b->5,c->7},x]//Sort

x/.NSolve[poly2/.{a->3,b->5,c->7},x]//Sort

Consider solving the following symmetric system of equations:

system={
Cos[(Subscript[a, 1])]+Cos[(Subscript[a, 2])]+Cos[(Subscript[a, 3])]-k==0,
Cos[5(Subscript[a, 1])]+Cos[5(Subscript[a, 2])]+Cos[5(Subscript[a, 3])]==0,
Cos[7(Subscript[a, 1])]+Cos[7(Subscript[a, 2])]+Cos[7(Subscript[a, 3])]==0
};

Use (RefLink[ChebyshevT, paclet:ref/ChebyshevT]) to convert to a symmetric system of polynomials:

eqns=system/.Cos[n_.(Subscript[a, i_])]:>ChebyshevT[n,(Subscript[x, i])]

(RefLink[Solve, paclet:ref/Solve]) is able to solve the equations in the variables (Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3]):

SetOptions[Roots,Cubics->False,Quartics->False];

r1=Solve[eqns,{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])}];//Timing

The leaf count of the solution is enormous:

LeafCount[r1]

Convert to a system of equations of symmetric polynomials (Subscript[s, 1]),(Subscript[s, 2]),(Subscript[s, 3]):

symeqns=Map[SymmetricReduction[#,{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])},{(Subscript[e, 1]),(Subscript[e, 2]),(Subscript[e, 3])}][[1]]&,eqns,{2}]

Solve the new system of equations:

r2=Solve[symeqns,{(Subscript[e, 1]),(Subscript[e, 2]),(Subscript[e, 3])}];//Timing

The leaf count of the symmetric solution is much smaller:

LeafCount[r2]

Solving for the variables (Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3]) in terms of the symmetric polynomials (Subscript[s, 1]),(Subscript[s, 2]),(Subscript[s, 3]) is also quick:

Solve[Table[SymmetricPolynomial[k,{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])}]==(Subscript[e, k]),{k,3}],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])}];//Timing

OpenersExampleSection3(Spacer1)Properties & Relations  (2)

The order of variables can affect the decomposition into symmetric and nonsymmetric parts:

SymmetricReduction[x^2-y^2,{x,y}]

SymmetricReduction[x^2-y^2,{y,x}]

Another basis for the symmetric polynomials consists of the complete symmetric polynomials. They are the sum of all monomials of a given degree, and can be defined by the generating function (((RefLink[Product, paclet:ref/Product])[1-(Subscript[x, i])t,{i,n}])^(-1)):

complete=Solve[1+(Subscript[h, 1])t+(Subscript[h, 2])(t^2)+(Subscript[h, 3])(t^3)+((O[t])^4)==(1/((∏_(i=1)^3)(1-(Subscript[x, i])t)))+((O[t])^4),{(Subscript[h, 1]),(Subscript[h, 2]),(Subscript[h, 3])}][[1]]

A determinant formula expresses the elementary symmetric polynomials in the basis of the complete symmetric polynomials:

{(Subscript[e, 1]),(Subscript[e, 2]),(Subscript[e, 3])}=={(Subscript[h, 1]),Det[({{(Subscript[h, 1]), (Subscript[h, 2])}, {1, (Subscript[h, 1])}})],Det[({{(Subscript[h, 1]), (Subscript[h, 2]), (Subscript[h, 3])}, {1, (Subscript[h, 1]), (Subscript[h, 2])}, {0, 1, (Subscript[h, 1])}})]}

Check:

%[[2]]/.complete//Expand

SymmetricPolynomial[#,{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])}]&/@Range[3]

Any symmetric polynomial can also be expressed in terms of the complete symmetric polynomials:

SymmetricReduction[x y z(x+y)(x+z)(y+z),{x,y,z},{(Subscript[e, 1]),(Subscript[e, 2]),(Subscript[e, 3])}]/.{(Subscript[e, 1])->(Subscript[h, 1]),(Subscript[e, 2])->Det[({{(Subscript[h, 1]), (Subscript[h, 2])}, {1, (Subscript[h, 1])}})],(Subscript[e, 3])->Det[({{(Subscript[h, 1]), (Subscript[h, 2]), (Subscript[h, 3])}, {1, (Subscript[h, 1]), (Subscript[h, 2])}, {0, 1, (Subscript[h, 1])}})]}//Expand

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[SymmetricPolynomial, paclet:ref/SymmetricPolynomial])  ▪  (RefLink[PolynomialReduce, paclet:ref/PolynomialReduce])}})}})

({{DocumentationFooterIconsRelatedTutorial.png, ({{Tutorials}, {▪(RefLinkPlain[Symmetric Polynomials, paclet:tutorial/SymmetricPolynomials])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Polynomial Factoring & Decomposition, paclet:guide/PolynomialFactoring])}, {▪(RefLinkPlain[Polynomial Algebra, paclet:guide/PolynomialAlgebra])}})}})