The polys module currently pretends like it can handle laurent polynomials, but it really can't. See https://code.google.com/p/sympy/issues/detail?id=2032.
I think there was some talk of support in the new sparse polys (see the ring() function). I don't know how well of even if they work, though. Aaron Meurer On Thu, Aug 15, 2013 at 1:49 PM, Stefan Witzel <[email protected]> wrote: > Hi, > > I'm relatively new to sympy and am trying to work with Laurent polynomials > (i.e. polynomials potentially having monomials of negative degree). This is > in principle supported by sympy by introducing an additional symbol 1/x. > What is a little strange is the following behavior: > >>>> from sympy import * >>>> x = symbols('x') >>>> degree(x,1/x) > 0 > > ... not the answer I would have hoped for, but ok > >>>> degree(1/x,x) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "/usr/lib/python2.7/dist-packages/sympy/polys/polytools.py", line > 3909, in degree > F, opt = poly_from_expr(f, *gens, **args) > File "/usr/lib/python2.7/dist-packages/sympy/polys/polytools.py", line > 3741, in poly_from_expr > return _poly_from_expr(expr, opt) > File "/usr/lib/python2.7/dist-packages/sympy/polys/polytools.py", line > 3763, in _poly_from_expr > rep, opt = _dict_from_expr(expr, opt) > File "/usr/lib/python2.7/dist-packages/sympy/polys/polyutils.py", line > 314, in _dict_from_expr > rep, gens = _dict_from_expr_if_gens(expr, opt) > File "/usr/lib/python2.7/dist-packages/sympy/polys/polyutils.py", line > 260, in _dict_from_expr_if_gens > (poly,), gens = _parallel_dict_from_expr_if_gens((expr,), opt) > File "/usr/lib/python2.7/dist-packages/sympy/polys/polyutils.py", line > 167, in _parallel_dict_from_expr_if_gens > raise PolynomialError("%s contains an element of the generators set" % > factor) > sympy.polys.polyerrors.PolynomialError: 1/x contains an element of the > generators set > > Thinking of these as Laurent polynomials x and 1/x play interchangeable > roles, so it is not clear why they are treated differently. Also, reduction > of the expression x*(1/x) to 1 does not happen after each computation, so I > am wondering whether there is maybe a more appropriate type for Laurent > polynomials? Thanks already for any help! > > Best wishes, > Stefan > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sympy. > For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
