Given a list (or a Vector) v of n real numbers, the PSLQ(v) command outputs a list (or a Vector) u of n integers such that &Sum;i&equals;1nui&InvisibleTimes;vi is minimized. Thus the PSLQ function finds an integer relation between a vector of linearly dependent real numbers if the input has enough precision.

•

Given a list (or a Vector) v of n complex numbers, the PSLQ(v) command outputs a list (or a vector) u of n complex integers (Gaussian integers) such that the norm of &Sum;i&equals;1nui&InvisibleTimes;vi is minimized.

•

This is an implementation of Bailey and Ferguson's PSLQ algorithm. You can also use the Lenstra-Lenstra-Lovasz (LLL) lattice reduction algorithm to find a linear relation. For more information, see IntegerRelations[LLL]. Generally speaking, PSLQ is faster.

•

One application of PSLQ is to find the minimal polynomial of an algebraic number given a decimal approximation of the algebraic number. The examples below illustrate this. Generally speaking, if the height of the minimal polynomial is m and its degree is n, then you need more than n&InvisibleTimes;log10m correct decimal digits for the algebraic number. If the input has d digits and this is insufficient, the output of PSLQ will typically be a list of n integers each with approximately d/n digits long.

Here is what happens if we mistakenly assume that algebraic number r is of degree 6 or less. The output of PSLQ looks like random 7 digit integers, which indicates that it has not found anything interesting.