RFC: extracting coefficients of a multivariate polynomial
Subject: RFC: extracting coefficients of a multivariate polynomial
From: andre maute
Date: Sun, 27 Apr 2008 18:23:09 +0200
On Sunday 27 April 2008, S. Newhouse wrote:
> andre maute wrote:
> > Hi all,
> >
> > I have to extract the coefficients of a multivariate polynomial.
> > The monomials appearing in the multivariate polynomial are given.
> >
> > For now I'm using the following function,
> > which is also the bottleneck of my application.
> >
> > ---------------------------------------------------------------
> > display2d : false;
> >
> > v : [x,y];
> > exps : [[0,2], [0,0], [1,1], [0,1], [1,0], [2,0]];
> > poly : a00 + a10*x + a01*y + a20*x^2 + a11*x*y + a02*y^2;
> >
> > my_coeff(v,exps,poly) := block(
> >
> > [c,k,l,h],
> >
> > c : [],
> > for k : 1 thru length(exps) do block(
> > h : poly,
> > for l : 1 thru length(v) do block(
> > if exps[k][l] # 0 then block(
> > h : coeff(h,v[l],exps[k][l])
> > )
> > ),
> > for l : 1 thru length(v) do block(
> > h : subst(0,v[l],h)
> > ),
> > h : ratsimp(h),
> > c : append(c,[h])
> > ),
> >
> > return(c)
> >
> > )$
> >
> > my_coeff(v,exps,poly);
> > ---------------------------------------------------------------------
> >
> > Does someone know,
> > if Maxima does have such a function, a potentially faster one?
> >
> > The documentation of Maxima revealed nothing for me :-(
>
> Do you really need the whole list of coefficients, or just a particular
> one?
The whole list!
For the moment I'm satisfied, perhaps the degree set exps can be
organized in a tree so you don't need every coeff/ratcoef function call.
Andre