On 29 Sep., 23:51, Mateusz Paprocki <[email protected]> wrote: > Hi, > > On 29 September 2011 05:07, Vinzenz <[email protected]> wrote: > > > > Hi, > > > I'm trying to port a Mathematica project to sympy. Therefore, I would > > like to use an algorithm to decompose an expression using Gröbner > > Bases as described in > > > 8.3 Algebraic Relations, Gröbner Bases: A Short Introduction for > > Systems Theorists (http://people.reed.edu/~davidp/pcmi/buchberger.pdf > > ) > > > I already figured out, that sympy offers a function to compute Gröbner > > Bases. > > However, what could a solution, similar to what Mathematica's > > PolynomialReduce does in this case, look like in sympy? > > Alternatively, I could for now solve my problem with simple variables > > instead of polynomials and use something similar to Mathematica's > > Coefficient[] to pull out the according coefficients from the > > expression. > > You may find this > http://mattpap.github.com/masters-thesis/html/src/groebner.html#algeb... > interesting. > > Coefficient[] can be replaced with either Expr.coeff() (partially) or > Poly.nth(), e.g.: > > In [2]: (x**2 + 2*x + 3).coeff(x**2) > Out[2]: 1 > > In [3]: (x**2 + 2*x + 3).coeff(x**1) > Out[3]: 2 > > Unfortunately (x**2 + 2*x + 3).coeff(x**0) does something different than > expected (seehttp://code.google.com/p/sympy/issues/detail?id=2558). > > In [5]: Poly(x**2 + 2*x + 3).nth(2) > Out[5]: 1 > > In [6]: Poly(x**2 + 2*x + 3).nth(1) > Out[6]: 2 > > In [7]: Poly(x**2 + 2*x + 3).nth(0) > Out[7]: 3 > > > > > > > > > > > > > This is my Mathematica code for the example: > > --------------------------------------------------------------------------- > > pv = {x1^2 + x2^2, x]^2*x2^2, x1^3*x2 - x1*x2^3} > > tau1 = x1^7*x2 - x1*x2^7 > > Vars = {x1, x2, Subscript[j, 3], Subscript[j, 2], Subscript[j, 1]}; > > Table[-Subscript[j, i] + pv[[i]], {i, Length[pv]}] > > G = FullSimplify[ > > GroebnerBasis[ > > Table[-Subscript[j, i] + pv[[i]], {i, Length[pv]}], Vars] > > ]; > > > MatrixForm[G] > > > {Cf, mRest} = PolynomialReduce[tau1, G, Vars]; > > Cf > > mRest > > -------------------------------------------------------------------------- > > Mateusz
On 29 Sep., 16:05, Jeremias Yehdegho <[email protected]> wrote: > Hi, ``reduced`` from polytools.py does this. > > Regards, > Jeremias Thank you very much! "reduced" is what I searched for, "coef"/"nth" is used afterwards. Vinzenz -- 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.
