RFC: extracting coefficients of a multivariate polynomial
Subject: RFC: extracting coefficients of a multivariate polynomial
From: S. Newhouse
Date: Thu, 24 Apr 2008 14:04:23 -0400
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 :-(
>
> Kind Regards,
> Andre
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>
>
You can use the 'coeff' function, perhaps several times. Of course, you
can write a little routine to apply to any polynomial automatically and
do what your my_coeff does. Don't know if it will be faster, but you can
try.
Because my mail program does not easily format the exponents in maxima
screen output, I am sending an example of the manual use of 'coeff' as
an attachment.
HTH,
-sen
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: coeff_example.txt
Url: http://www.math.utexas.edu/pipermail/maxima/attachments/20080424/952c4813/attachment.txt