> One thing, is there any way of passing a list/tuple to the function, e.g.
>
> vars = (x,y)
> Poly(x+2*y, vars)

You must unpack a tuple or a list when passing to a constructor:

In [26]: Poly(x+2*y, x, y)
Out[26]: Poly((1, 2), ((1, 0), (0, 1)), (x, y), 'grlex')

In [27]: symbols = (x, y)

In [28]: Poly(x+2*y, *symbols)
Out[28]: Poly((1, 2), ((1, 0), (0, 1)), (x, y), 'grlex')

In [29]: symbols = [x, y]

In [30]: Poly(x+2*y, *symbols)
Out[30]: Poly((1, 2), ((1, 0), (0, 1)), (x, y), 'grlex')

See info in Python Tutorial:

http://docs.python.org/tut/node6.html#SECTION006740000000000000000

Mateusz

2008/3/29, Colin Gillespie <[EMAIL PROTECTED]>:
>
>  OK I've found Poly - it's exactly what I want. One thing, is there any
>  way of passing a list/tuple to the function, e.g.
>
>  vars = (x,y)
>  Poly(x+2*y, vars)
>
>  Cheers
>
>  Colin
>
>
>
>
>  On Mar 29, 4:33 pm, "Mateusz Paprocki" <[EMAIL PROTECTED]> wrote:
>  > > I don't have a function Poly . I presume I should use Polynomial
>  >
>  > Poly, and 'polys' module was added after 0.5.13 release, so if
>  > you wish to use this you would need latest HG repository.
>  >
>  > Of course you can use Polynomial, however the interface
>  > is a bit different. Note also that 'polynomials' module is
>  > no longer maintained.
>  >
>  > In [19]: f=2*x**3+3*x*y+1
>  >
>  > In [20]: p = Polynomial(f, var=x)
>  >
>  > In [21]: p.degree()
>  > Out[21]: 3
>  >
>  > In [22]: q = Polynomial(f, var=(x,y))
>  >
>  > In [23]: q.degree()
>  > Out[23]: 3
>  >
>  > Mateusz
>  >
>
> > 2008/3/29, Colin Gillespie <[EMAIL PROTECTED]>:
>
> >
>  >
>  >
>  > >  Thanks for the quick response.
>  >
>  > >  When I do
>  > >  from sympy import *
>  > >  I don't have a function Poly . I presume I should use Polynomial
>  > >  instead?
>  >
>  > >  Cheers
>  >
>  > >  Colin
>  >
>  > >  On Mar 29, 3:54 pm, "Mateusz Paprocki" <[EMAIL PROTECTED]> wrote:
>  > >  > Hi,
>  >
>  > >  > given the following input
>  >
>  > >  > In [1]: f=2*x**3+3*x*y+1
>  >
>  > >  > we get an expression:
>  >
>  > >  > In [2]: type(f)
>  > >  > Out[2]: <class 'sympy.core.add.Add'>
>  >
>  > >  > You can convert this to a polynomial:
>  >
>  > >  > In [3]: p = Poly(f, x)
>  >
>  > >  > In [4]: p
>  > >  > Out[4]: Poly((2, 3*y, 1), ((3,), (1,), (0,)), (x,), 'grlex')
>  >
>  > >  > and then:
>  >
>  > >  > In [5]: p.degree
>  > >  > Out[5]: 3
>  >
>  > >  > In [6]: p.coeff(0)
>  > >  > Out[6]: 1
>  >
>  > >  > In [7]: p.coeff(1)
>  > >  > Out[7]: 3*y
>  >
>  > >  > In [8]: p.coeff(2)
>  > >  > Out[8]: 0
>  >
>  > >  > In [9]: p.coeff(3)
>  > >  > Out[9]: 2
>  >
>  > >  > The same way you can work with MV polynomials:
>  >
>  > >  > In [10]: q = Poly(f, x, y)
>  >
>  > >  > In [11]: q
>  > >  > Out[11]: Poly((2, 3, 1), ((3, 0), (1, 1), (0, 0)), (x, y), 'grlex')
>  >
>  > >  > In [12]: q.degree
>  > >  > Out[12]: 3
>  >
>  > >  > In [13]: q.coeff(3, 0)
>  > >  > Out[13]: 2
>  >
>  > >  > In [14]: q.coeff(2, 1)
>  > >  > Out[14]: 0
>  >
>  > >  > For more information refer to 'polys' module docstrings, eg. Poly? in 
> ipython.
>  >
>  > >  > Mateusz
>  >
>  > > > 2008/3/29, Colin Gillespie <[EMAIL PROTECTED]>:
>  >
>  > >  > >  Dear All,
>  >
>  > >  > >  Are there any inbuilt function to work with degrees of polynomials?
>  > >  > >  For example,
>  >
>  > >  > >  x=Symbol('x')
>  > >  > >  y=symbol('y')
>  >
>  > >  > >  f=2*x**3+3*x*y+1
>  >
>  > >  > >  So
>  >
>  > >  > >  f.highestDegree(x) would return 3
>  > >  > >  f.coeff(x**1) would return 3*y
>  >
>  > >  > >  Many thanks
>  >
>  > >  > >  Colin
>  >
>

--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sympy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to