returns a set of q-hypergeometric solutions of a given q-difference equation with polynomial coefficients
QHypergeometricSolution(eq, var, inits, output=type, n, qf)
function variable to solve for, such as y⁡x
set of initial conditions
(optional) where type is either one of basis[C] or onesol or one of Certificate, Product, or QPochhammer or set or list of one value from the first row and the other one form the second row. "C" is a name. The words output, basis, onesol, Certificate, Product and QPochhammer must be used literally.
(optional) where qf is quick for factorization over the field implied by the coefficients (by default), or full for complete factorization with coefficients over the complex number field
The QHypergeometricSolution command uses the algorithm of S. Abramov, P. Paule, and M. Petkovsek (see References).
The command first determines all factors of the leading and trailing coefficient of the equation eq. The optional argument opt, which is either 'quick' or 'full' (the default value is 'quick'), specifies whether the factorization of the leading and trailing coefficient should be over the field implied by the coefficients (through the procedure factor) or the factorization should be complete, over the complex number field (through the procedure PolynomialTools[Split]). The command executes more rapidly in the first case but some solutions may be lost.
The command executes enumeration of each couple of the factors. The command constructs the q-difference equation eq1 with coefficients as linear combinations from the current couple of the factors.
If the polynomial solution c(x) of the q-difference equation eq1 exists, a q-hypergeometric solution h(x) of the given equation eq exists too and the certificate r⁡x=h⁡q⁢xh⁡x computes as r⁡x=z⁡x⁢a⁡x⁢c⁡xb⁡x⁢c⁡q⁢x,where c(x) is the polynomial solution of the q-difference equation eq1, a(x) and b(x) are the couple of the factors, and z(x) is the solution of the linear equation.
If a q-hypergeometric solution does not exist, then empty set is returned.
The parameter q in a scalar q-difference equation can be either a name or a rational number.
Optionally, you can specify output=basis[var], output=onesol, output=gensol, or output=anysol.
The rational certificates of the q-hypergeometric solutions are the output. It can be combined with one of basis[C] or onesol.
The multiplicative product forms of the q-hypergeometric solutions are the output. The default value from the row Certificate, Product and QPochhammer is Product. It can be combined with one of basis[C] or onesol.
The q-hypergeometric solutions usually in terms of q-Pochhammer symbols are returned. It can be combined with one of basis[C] or onesol.
The output is provided as a single algebraic expression that is a C-linear combination of the independent solutions plus any particular solution for the inhomogeneous case. The independent solutions will have indexed coefficients of the form C0,C1,...,Cn, where var is as provided in the output=basis[C] option. It can be combined with one of Certificate, Product or QPochhammer.
This specifies that only a single solution be provided as output. It can be combined with one of Certificate, Product or QPochhammer.
The inits argument is in fact ignored and allowed in the calling sequence for compatibility with the other solvers in the package.
Abramov, S.A.; Paule, P.; and Petkovsek, M. "q-Hypergeometric solutions of q-difference equations." Discrete Math. Vol. 180. (1998): 3-22.
Abramov, S.A., and Petkovsek, M. "Finding all q-hypergeometric solutions of q-difference equations." Proc. FPSAC '95, Univ.de Marne-la-Vall'ee, Noisy-le-Grand, pp. 1-10. 1995.
Download Help Document
What kind of issue would you like to report? (Optional)