2
$\begingroup$

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$$

$\endgroup$
5
$\begingroup$
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 *)
|improve this answer|||||
$\endgroup$
  • $\begingroup$ A very nice solution, that is with the complexity function. $\endgroup$ – Alexei Boulbitch Mar 3 '15 at 13:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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