Hi, On 16 July 2011 06:05, Chris Smith <[email protected]> wrote:
> > > On Sat, Jul 16, 2011 at 8:58 AM, Matthew Rocklin <[email protected]>wrote: > >> How can I separate an expression like >> a*(x+y) + x >> into terms involving only x and only y >> (a+1)*x , a*y >> >> This seems like the kind of function SymPy probably has. I'm having >> trouble finding it. >> > > >>> eq > a*(x + y) + x > >>> collect(eq.expand(), x, y) > a*y + x*(a + 1) > collect() requires x, y to be passed as [x, y] or (x, y), and otherwise you set evaluate keyword to y. To get the coefficients, use evaluate=False. This problem can be also solved with polys: In [1]: var('a') Out[1]: a In [2]: f = a*(x + y) + x In [3]: factor(f, x, y) Out[3]: a⋅y + x⋅(a + 1) In [4]: Poly(f, x, y).nth(1, 0) Out[4]: a + 1 In [5]: Poly(f, x, y).nth(0, 1) Out[5]: a > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > Mateusz -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
