Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

I want to order lexicographically the monomials in a "parametrized polynomial", i.e. polynomials whose "symbolic bits" may be either "variables" or "parameters". For example:

In[1]:= Expand[(x + a y + a^2 z)^3] /. a^n_ -> a^Mod[n, 3]

Out[1]= x^3 + y^3 + 6 x y z + z^3 + 3 x^2 y a + 3 y^2 z a + 3 x z^2 a +  3 x y^2 a^2 +
 3 x^2 z a^2 + 3 y z^2 a^2

In the polynomial above x, y, and z are intended as "variables", whereas a is intended as a "parameter".

The documentation for Mathematica states that monomials in a polynomial are ordered lexicographically by default, but if so, I don't understand why the two terms with x^2 come after the y^3 term in the polynomial above, for example.

So my question is: how can I force a lexicographic ordering of the monomials with respect to the "variables" (i.e. x, y, and z). (In particular, for the polynomial above, the symbol a should be disregarded for the ordering.)

For example, the desired ordering for the polynomial above would be

x^3 + 3 x^2 y a + 3 x^2 z a^2 + 3 x y^2 a^2 + 3 x z^2 a + 6 x y z + y^3 + 3 y^2 z a + 3 y z^2 a^2 + z^3
share|improve this question
    
something like: TraditionalForm[Expand[(x+a y+a^2 z)^3]/.a^n_->a^Mod[n,3], ParameterVariables->{a}] ? –  chuy Jan 15 at 17:02
    
@chuy: thanks! (I was thrown off by the fact that the docs describe ParameterVariables as "an option for GroebnerBasis and PolynomialReduce.") If you care to post your comment as an answer, I'll be glad to accept it as such. –  kjo Jan 15 at 17:10
add comment

1 Answer

up vote 2 down vote accepted

In this case you can use something like:

TraditionalForm[Expand[(x+a y+a^2 z)^3]/.a^n_->a^Mod[n,3], ParameterVariables:>{a}] 

This information can be found in the following: http://reference.wolfram.com/mathematica/tutorial/PolynomialOrderings.html (toward the bottom)

share|improve this answer
    
Sorry, unfortunately, since my last comment I discovered some serious problems with this approach. I describe them in an EDIT to my post. –  kjo Jan 15 at 20:08
    
I suppose I don't understand your question well enough then. I thought this was primarily for display purposes. What is wrong with using MonomialList[expr, {x, y, z}, "Lexicographic"] where exp is the polynomial? –  chuy Jan 15 at 20:25
    
OK, now I see what's going on: the output of the original expression I posted does not reflect the internal ordering. –  kjo Jan 15 at 20:50
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.