But that only groups together one variety of M**(n+1). If you want
them all together you have to give them a common coefficient that can
be used for collection:

>>> u = Dummy('u')

These are the quantities that may have the n+1 power
>>> expr2.atoms(IndexedElement)
set([M(1, 2), M(1, 1), M(2, 1)])

So we replace them with u*M**(n+1) and colelct on u
>>> collect(expr2.subs([(a**(n+1), u*a**(n+1)) for a in _]), u)
_u*(B*M(2, 1)**(1 + n) - D*M(1, 1)**(1 + n) - E*M(2, 1)**(1 + n)) +
A*M(1, 1)**n - C*M(1, 2)**n

Then split the expression into u-independent and u-dependent pieces
with as_independent and feed that back to Eq with the *prefix and
remove the u by replacing with 1.
>>> Eq(*_.as_independent(u)).subs(u, 1)
A*M(1, 1)**n - C*M(1, 2)**n == B*M(2, 1)**(1 + n) - D*M(1, 1)**(1 + n)
- E*M(2, 1)**(1 + n)

All the n+1 powers are on the right now.

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to sy...@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to