Question: How to eliminate roots of unity in polynomials and bound above

Hi all,

 

I have a bunch of polynomials in q that involve unknown roots of unity and I want to bound them above by another polynomial.

For example: f(q):=q3-a*q2+b*q2-5.

Here a and b are powers of some roots of unity. These roots/powers depend on some variables which are unimportant.

My incorrect method up until now was to let all root of unity equal 1 so they vanish, and then run a short script that finds all coefficients of the poly f and makes them positive. 

But in this case it returns an answer of q^3+5 as the quadratic terms vanish - I don;t want this to happen! I really want the bound q3+2*q2+5.

If I run the script that changes the coefficients first, then maple can't  recognise if -a is positive or negative and so this doesn't work. If it helps this is it:

f:=g[i,j]; 
coffs:=[];
for m from 0 to degree(f) do
   coffs:=[op(coffs), abs(coeff(f,q,m))] end do;
fabs:=0;
for m from 1 to degree(f,q)+1 do
   fabs:=fabs+coffs[m]*q^(m-1) end do;
      g[i,j]:=fabs end do;
                     end do;
Any ideas would be great. Thanks!

 

EDIT: to perhaps make it clearer. The kind of roots of unity i'm dealing with are things like z2*j*k+q*k+(1/2)*l where z is a (q-1)th root of unity, and j,k,l are unknown integer variables. 

Please Wait...