Re: Canonical Polynomial Form w. resp. to certain Variables
- To: mathgroup at smc.vnet.net
- Subject: [mg34089] Re: [mg34067] Canonical Polynomial Form w. resp. to certain Variables
- From: Andrzej Kozlowski <andrzej at platon.c.u-tokyo.ac.jp>
- Date: Thu, 2 May 2002 03:49:32 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
How about this: In[1]:= CanonicalForm[poly_,vars_List]:= With[{v=Internal`DistributedTermsList[poly,vars]}, Plus@@((Last[#] Times@@(Last[v]^First[#])& /@First[v]))] In[2]:= CanonicalForm[(a+b+n+x)*n,{x,n}] Out[2]= (a + b)*n + n^2 + n*x ? Andrzej Kozlowski Toyama International University JAPAN http://platon.c.u-tokyo.ac.jp/andrzej/ On Wednesday, May 1, 2002, at 09:00 PM, Detlef Mueller wrote: > Hello, > > I face the following Problem: > > Given a polynomial, say (a + b + n + x)*n, > and a List of given Variables, say: > OreVariables={x,n}. > > I want to have the same Polynomial in canonical > form as a Sum of Monomials in the given > Variables. > > The desired Result is > (a+b) n + n x + n^2 > > where the given Variables are expanded and the > coefficients independent of this Variables are > collected as coefficients of the Monomials. > > but > > Collect[(a + b + n + x)*n, x_ /; MemberQ[OreVariables, x]] > yields > n^2 + n(a + b + x) > > wich is "not expanded enough" > > and > > Expand[(a + b + n + x)*n, x_ /; MemberQ[OreVariables, x]] > yields > a n + b n + n^2 + n x > > wich is "to expanded". > > (To make Things worse, this is an Operation that will be used > often (and on big Polynomials) and hence is a bit > time-critical ...) > > ( The Goal is, do isolate the canonical Summands of an Expression, i.e. > Ex2Pol[(x+n+b)^3-(x-n+b)^3] -> > Poly[Summand[2 n^2],Summand[6 n x^2], Summand[12 b n x],Summand[6 b^2 > n]]) > > Any Ideas? > > Greetings, > Detlef > > >