On Fri, Apr 3, 2009 at 9:37 AM, Mateusz Paprocki <matt...@gmail.com> wrote: > Hi, > > On Fri, Apr 03, 2009 at 08:41:05AM -0700, Colin Gillespie wrote: >> >> Dear All, >> >> Quick question. I have a polynomial: >> >> p =Poly(2*x*y+y, x, y) >> >> and I want to substitute in y = y+5 and x= x+1 How would I do this? >> >> I've tried things like: >> >> p.subs((y, y+5), (x, x+1)) >> >> but this doesn't work. >> >> Cheers >> >> Colin >> > > you should refer to Basic.subs() docstring: > > In [1]: p = Poly(2*x*y+y, x, y) > > In [2]: p.subs? > Type: instancemethod > Base Class: <type 'instancemethod'> > String Form: <bound method Poly.subs of Poly(2*x*y + y, x, y)> > Namespace: Interactive > File: /home/matt/repo/git/sympy/sympy/core/basic.py > Definition: p.subs(self, *args) > Docstring: > Substitutes an expression. > > Calls either _subs_old_new, _subs_dict or _subs_list depending > if you give it two arguments (old, new), a dictionary or a list. > > Examples: > > >>> from sympy import * > >>> x,y = symbols('xy') > >>> (1+x*y).subs(x, pi) > 1 + pi*y > >>> (1+x*y).subs({x:pi, y:2}) > 1 + 2*pi > >>> (1+x*y).subs([(x,pi), (y,2)]) > 1 + 2*pi > > > In [3]: p.subs({y:y+5,x:x+1}) > Out[3]: Poly(2*x*y + 10*x + 3*y + 15, x, y) > > In [4]: p.subs([(y, y+5), (x, x+1)]) > Out[4]: Poly(2*x*y + 10*x + 3*y + 15, x, y) > > In [5]: p.as_basic().subs({y:y+5,x:x+1}) > Out[5]: 5 + y + 2⋅(1 + x)⋅(5 + y) > > In [6]: expand(_) == _4.as_basic() > Out[6]: True
Right, it actually works directly with Poly, no need to convert to Basic. Ondrej --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sympy@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 -~----------~----~----~----~------~----~------~--~---