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?
Try
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$
Distribute[(x + y) ** (x + y)] /. t_ ** t_ :> t^2
? $\endgroup$