FUNCTION : qseries[findhom] - finds a set of potential homogeneous relations among a list of q-series. CALLING SEQUENCE : findhom(L,q,n,topshift) PARAMETERS : L - list of q-series q - variable n - positive integer topshift - integer greater than -20 GLOBAL VARIABLE : X, xprint (default=false) SYNOPSIS : findhom(L,q,n,topshift) returns a set of potential homogenous relations of order n among the q-series in the list L. The value of topshift is usually taken to be zero. Howeverm if it appears that spurious relations are being generated then a higher value of topshift should be taken. This program converts the list of q-series into a list of polynomials of a certain degree and then converts these into a matrix. The entries in a given row correspond to coefficients of the corrresponding the polynomial. The set of relations is then found by computing the kernel of the transpose of this matrix. NOTE: There is a global variable X that is reassigned each time the function is called. This variable is used to display the relations. When xprint=true more info is printed. CHANGES : 1.3: o changed taylor to series so can handle negative exponents o works properly when nops(L)=1 EXAMPLES : > with(qseries): > findhom([theta3(q,100),theta4(q,100),theta3(q^2,100), theta4(q^2,100)],q,1,0); {{}} > findhom([theta3(q,100),theta4(q,100),theta3(q^2,100), theta4(q^2,100)],q,2,0); 2 2 2 2 {-X[1] X[2] + X[4] , X[1] + X[2] - 2 X[3] } > xprint:=true: > findhom([theta3(q,100),theta4(q,100),theta3(q^2,100), theta4(q^2,100)],q,2,0); # of terms , 31 -----RELATIONS----of order---, 2 2 2 2 2 {-X[1] X[2] + X[4] , X[1] + X[2] - 2 X[3] } DISCUSSION : From the session above we see that there is no linear relation between the functions theta3(q), theta4(q), theta3(q^2) and theta4(q^2). However, it appears that there are two quadratic relations. / 2 2\1/2 2 |theta3(q) + theta4(q) | theta3(q ) = |-----------------------| \ 2 / and 2 1/2 theta4(q ) = (theta3(q) theta4(q)). SEE ALSO : findnonhom