# Arrange equation in normal form

Is there a way, or if not, how could one define a function which takes an equation in any form (for example as given by FullSimplify):

$$(A+X_0) x+By=3x$$

and rearranges it in the more compact and tidy form:

$$(A+X_0-3) x+By=0$$

## 1 Answer

ClearAll[a, b, c, d, x, y]
expr = a x + b y + c x == d x;


You can use any of

Collect[(expr /. Equal -> Subtract) == 0, x]
Collect[Subtract @@ expr == 0, x]
FullSimplify[(expr /. Equal -> Subtract) ] == 0
FullSimplify[Subtract @@ expr] == 0


to get

(* (a + c - d) x + b y == 0 *)


Alternatively, use a custom ComplexityFunction that makes non-zero expressions on the right-hand-side of == more expensive:

cf[e_] := 100 Count[e, Equal[_, Except[0, _]], {0, Infinity}] + LeafCount[e]
FullSimplify[expr, ComplexityFunction -> cf]
(* (a + c - d) x + b y == 0 *)

• A very nice solution, that is with the complexity function. – Alexei Boulbitch Mar 3 '15 at 13:40