MathGroup Archive 1999

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

Search the Archive

RE: Rebuilding polygon from CoefficientList?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg20191] RE: [mg20164] Rebuilding polygon from CoefficientList?
  • From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
  • Date: Tue, 5 Oct 1999 04:04:21 -0400
  • Sender: owner-wri-mathgroup at wolfram.com

Holger Strauss wrote:
------------------------

I have a mixed polynomial poly in several variables vars.
cl = CoefficientList[poly, vars]

gives a multi-dimensional matrix of coefficients.

Can anyone help with an algorithm/expression that
re-constructs the original poly given cl and vars?
(In practice, I'd like to manipulate the coefficients before
reconstructing the polynomial; otherwise this wouldn't
make sense).
-----------------------------

My solution is given below.  It should work quite well.


In[1]:=
terms[coeff_,expon_List,vars_List]:=
  coeff*Times@@MapThread[Power,{vars,expon}]
 
CoefficientsToPolynomial[coeffs_,vars_]/;
  Length[Dimensions[coeffs]]===Length[vars]:=
    Plus@@Flatten[MapIndexed[terms[#1,#2-1,vars]&,coeffs,{-1}]]


In[3]:=
cl=CoefficientList[(2+3x-2y+z)^3, {x,y,z}]

Out[3]=
{{{8, 12, 6, 1}, {-24, -24, -6, 0}, {24, 12, 0, 0}, {-8, 0, 0, 0}}, 
 {{36, 36, 9, 0}, {-72, -36, 0, 0}, {36, 0, 0, 0}, {0, 0, 0, 0}}, 
 {{54, 27, 0, 0}, {-54, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}, 
 {{27, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}}}


In[4]:=
poly=CoefficientsToPolynomial[cl,{a,b,c}];
Factor[poly]

Out[4]=
(2 + 3*a - 2*b + c)^3


You might want to read about CoefficientList, MapIndexed at my web page.
The URL is given below.
--------------------

Regards,
Ted Ersek

For Mathematica tips, tricks see 
http://www.dot.net.au/~elisha/ersek/Tricks.html


  • Prev by Date: Re: Rebuilding polygon from CoefficientList?
  • Next by Date: RE: Re: NonlinearRegress and numerical functions...
  • Previous by thread: Re: Rebuilding polygon from CoefficientList?
  • Next by thread: Re: Rebuilding polygon from CoefficientList?