Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have an expression that I want Mathematica to fully expand without any simplification afterwards. I want the output to look like the following example.

(x+y)^2 ⇒ x^2+xy+yx+y^2

Could you help me to solve this problem?

share|improve this question
Something like Distribute[(x + y) ** (x + y)] /. t_ ** t_ :> t^2? – J. M. Oct 6 '12 at 14:37
By the way, welcome to Mathematica.SE, Parisa! Please consider registering your account. You will then be able to accumulate your reputation points no matter where you post from, and thus be able to do more on the site over time, such as vote up and participate in chat. – Verbeia Oct 6 '12 at 23:46


Expand[(x + y)^2] 

which will give you

$ x^2 + 2 x y + y^2$

Even ExpandAll[] won't separate the $"2 xy"$ into $"xy+yx"$. And this makes sense; what should it make of $"3xy"$? $"xy + yx + xy"$, or $"xy + yx +yx"$? And what about $"10 xy"$ (I don't want to think about $"10000 xy"$)?

J.M.'s solution

Distribute[(x + y) ** (x + y)] /. t_ ** t_ :> t^2  

will give you the $2 x y$ as separate terms, but has to use the symbol for non-commutative multiplication (for example, x and y may be operators):

$ x^2 + y^2 + x ** y + y** x $

and Mathematica won't interpret it as commutative multiplication. Replacing x and y with numerical values

x^2 + y^2 + x ** y + y ** x /. {x -> 2, y -> 3}

will yield

$13 + 2 ** 3 + 3 ** 2$

instead of

$ 25$

share|improve this answer

Your Answer


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.