MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Rearranging terms - user-defined

  • To: mathgroup at
  • Subject: [mg127163] Re: Rearranging terms - user-defined
  • From: Alexei Boulbitch <Alexei.Boulbitch at>
  • Date: Mon, 2 Jul 2012 22:21:12 -0400 (EDT)
  • Delivered-to:

Does anyone know how to tell mathematica the following:

I have an expression like: a + bx -by
and I want to factorise it like: a + b(x-y)

BUT: I want Mathematica to show the difference (x-y) whenever possible (in the different calculations - not just place b outside the bracket). That's because equations are easier to discuss if they are written in a special way.

Another example would be: using probabilities, I always want to write mathematica -(1-p) instead of -p+1 throughout the notebook.

Sorry, for postig such a beginners question. I know there were similar questions, but it did't help. Thanks a lot!

Yes, somebody does.

You may do the following with your first expression

Expr1 = a + b*x - b*y;

First[expr1] + Factor[ Rest[expr1]]

a + b (x - y)

One may do it shorter using the package "Presentations" of David Park, like follows:

expr1 // MapLevelParts[FactorOut[b], {{2, 3}}]

a + b (x - y)

This package has a number of functions (that are not present in the common Mathematica) that enable you to do such kind of transformations on any expression, but you will need to get the package first. That is what I would advise to do.

Concerning your second question, try this:

-Map[Minus, -p + 1]

1 - p

To have them untransformed through your calculations you may use Hold and its variations, as HoldForm, HoldFirst etc.In Presentation there is a special tool for that, creating and releasing subexpressions.

However, from the point of view of comfortably carrying long calculations I personally prefer to make substitutions instead. That is instead of 1-p use another variable, say, q

-p + 1 /. p -> 1 - q


Have fun, Alexei

Alexei BOULBITCH, Dr., habil.
ZAE Weiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG

Office phone :  +352-2454-2566
Office fax:       +352-2454-3566
mobile phone:  +49 151 52 40 66 44

e-mail: alexei.boulbitch at

  • Prev by Date: Re: Solid modeling using Manipulate
  • Next by Date: Re: An easier functional way to divide each Column of matrix by a row
  • Previous by thread: Re: Rearranging terms - user-defined
  • Next by thread: Re: Rearranging terms - user-defined