SymmetricReduction[f,{x1,…,xn}]
gives a pair of polynomials
in
such that
, where
is the symmetric part and
is the remainder.
SymmetricReduction[f,{x1,…,xn},{s1,…,sn}]
gives the pair
with the elementary symmetric polynomials in
replaced by
.
SymmetricReduction
SymmetricReduction[f,{x1,…,xn}]
gives a pair of polynomials
in
such that
, where
is the symmetric part and
is the remainder.
SymmetricReduction[f,{x1,…,xn},{s1,…,sn}]
gives the pair
with the elementary symmetric polynomials in
replaced by
.
Details
- If
is a symmetric polynomial, then
is the unique polynomial in elementary symmetric polynomials equal to
, and
is zero. - If
is not a symmetric polynomial, then the output
is not unique, but depends on the ordering of its variables. - For a given ordering, a nonsymmetric polynomial
can be expressed uniquely as a sum of its symmetric part
and a remainder
that does not contain descending monomials. A monomial
is called descending if
. - Changing the ordering of the variables may produce different pairs
. - SymmetricReduction does not check to see that
is a polynomial, and will attempt to symmetrize the polynomial part of
.
Examples
open all close allBasic 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}]Scope (3)
For symmetric polynomials, the result does not depend on the ordering of variables:
SymmetricReduction[x ^ 5 + 2x y ^ 2 + 2y x ^ 2 + y ^ 5, {x, y}, {s1, s2}]SymmetricReduction[x ^ 5 + 2x y ^ 2 + 2y x ^ 2 + y ^ 5, {y, x}, {s1, s2}]For nonsymmetric polynomials, the result depends on the ordering of variables:
SymmetricReduction[x ^ 3 - 3x y ^ 2 + y ^ 5, {x, y}, {s1, s2}]SymmetricReduction[x ^ 3 - 3x y ^ 2 + y ^ 5, {y, x}, {s1, s2}]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}]Applications (2)
Let the roots of the equation
be
,
,
. The coefficients
,
,
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
,
,
:
SolveAlways[x^3 + Overscript[a, _]x^2 + Overscript[b, _]x + Overscript[c, _] == (x - α^2)(x - β^2)(x - γ^2), x]Use SymmetricReduction to solve for
,
,
:
{Overscript[a, _], Overscript[b, _], Overscript[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
,
,
:
poly2 = x^3 + Overscript[a, _]x^2 + Overscript[b, _]x + Overscript[c, _]x^2 /. NSolve[poly1 /. {a -> 3, b -> 5, c -> 7}, x]//Sortx /. NSolve[poly2 /. {a -> 3, b -> 5, c -> 7}, x]//SortConsider solving the following symmetric system of equations:
system = {
Cos[Subscript[a, 1]] + Cos[Subscript[a, 2]] + Cos[Subscript[a, 3]] - k == 0,
Cos[5Subscript[a, 1]] + Cos[5Subscript[a, 2]] + Cos[5Subscript[a, 3]] == 0,
Cos[7Subscript[a, 1]] + Cos[7Subscript[a, 2]] + Cos[7Subscript[a, 3]] == 0
};Use ChebyshevT to convert to a symmetric system of polynomials:
eqns = system /. Cos[n_.Subscript[a, i_]] :> ChebyshevT[n, Subscript[x, i]]Solve is able to solve the equations in the variables x1,x2,x3:
SetOptions[Solve, Cubics -> False, Quartics -> False];r1 = Solve[eqns, {Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}];//TimingThe leaf count of the solution is enormous:
LeafCount[r1]Convert to a system of equations of symmetric polynomials
:
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]}];//TimingThe leaf count of the symmetric solution is much smaller:
LeafCount[r2]Solving for the variables x1,x2,x3 in terms of the symmetric polynomials
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]}];//TimingProperties & 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 Product[1-xit,{i,n}]-1:
complete = Solve[1 + Subscript[h, 1]t + Subscript[h, 2]t^2 + Subscript[h, 3]t^3 + O[t]^4 == (1/Underoverscript[∏, 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[| | |
| -- | -- |
| h1 | h2 |
| 1 | h1 |], Det[| | | |
| -- | -- | -- |
| h1 | h2 | h3 |
| 1 | h1 | h2 |
| 0 | 1 | h1 |]}%[[2]] /. complete//ExpandSymmetricPolynomial[#, {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[| | |
| -- | -- |
| h1 | h2 |
| 1 | h1 |], Subscript[e, 3] -> Det[| | | |
| -- | -- | -- |
| h1 | h2 | h3 |
| 1 | h1 | h2 |
| 0 | 1 | h1 |]}//ExpandSee Also
Tech Notes
Related Guides
History
Introduced in 2007 (6.0)
Text
Wolfram Research (2007), SymmetricReduction, Wolfram Language function, https://reference.wolfram.com/language/ref/SymmetricReduction.html.
CMS
Wolfram Language. 2007. "SymmetricReduction." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SymmetricReduction.html.
APA
Wolfram Language. (2007). SymmetricReduction. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SymmetricReduction.html
BibTeX
@misc{reference.wolfram_2026_symmetricreduction, author="Wolfram Research", title="{SymmetricReduction}", year="2007", howpublished="\url{https://reference.wolfram.com/language/ref/SymmetricReduction.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_symmetricreduction, organization={Wolfram Research}, title={SymmetricReduction}, year={2007}, url={https://reference.wolfram.com/language/ref/SymmetricReduction.html}, note=[Accessed: 13-June-2026]}