MathGroup Archive 1998

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Extracting polynomial coef




Tom Bell wrote:
|
|I have a very long polynomial that's a function of four variables, a,
b, |c, d.  I would like Mathematica to (1) tell me what combinations of
a, |b, c, and d are in my polynomial, and (2) tell me what the
coefficients |are for each of the variable terms. |
|For example, say I have constant terms r and q.  My polynomial might
|look something like
|
|4 a^2 b^3 c + r q d^5 + a d^3 + q c^2 a^2 + r^2 a d^3 |
|I would like to have Mathematica output something like: |
|a^2 b^3  =>  4
|d^5  => r q
|a d^3  => 1 + r^2
|c^2 a^2  => q
|
|The polynomial is long enough that it would be very time-consuming to
|search through and identify all the combinations of (a,b,c,d). |
|

Tom,
Use CoefficientList[ poly, list] as below.

In[1]:=
ply=4 a^2 b^3 c + r q d^5 + a d^3 + q c^2 a^2 + r^2 a d^3;
coeff=CoefficientList[ply,{a,b,c,d}];

Now the coefficient of (a^na)*(b^nb)*(c^nc)*(d^nd) is Part[coeff,
(na+1),(nb+1),(nc+1),(nd+1)] For example I get the coefficient of 
(a)(d^3)  in the line below.

In[2]:=
Part[coeff, 2,1,1,4]

Out[2]=
1 + r^2

However in the next line the variables in CoeficientList[_,_] are in a 
different order.

In[3]:=
new=CoefficientList[ply, {c,b,a,d}];

Now the coefficient of (a^na)(b^nb)(c^nc)(d^nd) is Part[coeff,
(nc+1),(nb+1),(na+1),(nd+1)] Again I get the coefficient of (a)(d^3) in
the line below.

In[4]:=
Part[new, 1,1,2,4]

Out[4]=
1 + r^2


I hope that takes care of it.

I couldn't find a place where the documentation explains how the result
is  arranged when a list of variables are used.  Because of that it
took a while  to figure out.  I sure wish details like this were better
documented.

Ted Ersek




  • Prev by Date: Re: Extracting polynomial coefficients?
  • Next by Date: Re: About 3Dplot....
  • Prev by thread: Changing fonts between environments
  • Next by thread: RE: Extracting polynomial coef