Getting the coefficients of a polynomial



Sorry to interfere. What about this:

kill(x,t,n)$
pw(t,n):=block(
     if t=x then L:endcons(n-2,L),
     x^(n-2)
)$
p:3*x^2-4*x^3-5*x^11+7*x+1;
p:subst(pw,"^",expand(x^2*p))$
L:[]$
''p$
L;


17.04.2013 0:40, Stavros Macrakis ?????:
> How can I get the coefficients of a polynomial in x?
>
> Clearly I first put into into CRE form with main variable x:
>
>       poly: rat(input_poly,x)$
>
> Then what?  The internal form of the CRE lets you just "read off" the
> coefficients at this point, but I can't think of any Maxima function
> that lets you access that.
>
> I can loop like this:
>
>       coefs(p,v):=block([l:[]],while p # 0 do
> (l:cons(r:ratcoef(p,v,0),l),p:(p-r)/v),l)
>
> but that seems like an awful lot of work (/n/ polynomial divisions).  It
> also isn't very efficient for sparse polynomials like x^20000.  You
> could do similar things with bothcoef or ratcoef, but again you end up
> building /n/ intermediate polynomials as you remove terms.
>
> You might think you could use ratcoef for i:0../n/, but how do you
> determine /n/?  hipow is inefficient in that it converts the expression
> into general representation first (!).
>
> Am I missing some obvious solution, or do we need to add rat_hipow and
> rat_coeffs or something?
>
>        rat_hipow(x^3+a*x+1,x) => 3
>        rat_coeffs(x^3+a*x+1,x) => [[3,1],[1,a],[0,1]]
>
> Edge cases to think about: CREs with negative powers, cf.
> ratcoef(1/x^3,x,-3) => 1, ratcoef(a/(b-x),x,-5) => -a*b^4, etc.
>
>             -s
>
>
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>