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
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.
EXAMPLES :
> findhom([theta3(q,100),theta4(q,100),theta3(q^2,100),
theta4(q^2,100)],q,1,0);
# of terms , 25
-----RELATIONS----of order---, 1
{{}}
> 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] - 2 X[3] , - X[1] X[2] + X[4] }
>
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