2
$\begingroup$

Consider the multivariable polynomial $g(x,y,z,w)=a_1xyw+a_2xy^2+a_3xyz+a_4x^3z+a_5z^3+a_6y^2z+a_7w^4\;,$ where $a_1,\cdots, a_7$ are constants. I would like to use Maple to extract the coefficients of all the terms of total degree 3 in the above expression. As a first step, I sorted the terms of the polynomial by total degree, using $>\mbox{sort}(g, '\mbox{tdeg}');$ but then I have no idea how to use coeff to collect the coefficients of interest. Any help is welcome!

2 Answers 2

1

Just do the following:

p:="your_polynomial";

vars:=[x,y,z,w];

varset:={op(map(i->op(map(j->op(map(k->i*j*k,vars)),vars)),vars))};

coeffs:=map(i->coeff(p,i),varset);

and you have got everything. There are also powerset methods, but I have no maple here to look them up.

  • 0
    You can easily save this. I do not know if maple can truncate polynomials, there is this algsubs command, but I really don't know. To save the monomial, do the following command: map(i->[coeff(coeff(coeff(coeff(expand(p/i),x,0),y,0),z,0),w,0),i],varset);2012-11-06
0

I would replace each variable x by x*h, then do coeff(f,h,3);

f := randpoly([x,y,z],terms=30); S := {seq(i=i*h, i=indets(f))}; g := subs(S, f); g := coeff(g, h, 3); 

Then get the coefficients with coeffs.

[coeffs(g, indets(g))];