Artifact 6d0f600c2d19241ad40bcf7a8b3b09bb91a42210dac98dc5ebd04f5ecd91dc51:
- Executable file
r38/packages/qsum/qsum.rlg
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 9394) [annotate] [blame] [check-ins using] [more...]
Tue Feb 10 12:28:23 2004 run on Linux % Test file for the REDUCE package QSUM % % Copyright (c) Wolfram Koepf, Harald Boeing, Konrad-Zuse-Zentrum Berlin, 1997 % % Implementation of the q-Gosper and q-Zeilberger algorithms % % Reference: % % Koornwinder, T. H.: % On Zeilberger's algorithm and its q-analogue: a rigorous description. % J. of Comput. and Appl. Math. 48, 1993, 91-111. % % Some examples are from % % Koekoek, R. and Swarttouw, R.F.: % The Askey-scheme of Hypergeometric Orthogonal Polynomials and its q-analogue. % Report 94-05, Technische Universiteit Delft, Faculty of Technical Mathematics % and Informatics, Delft, 1994. % % Gasper, G. and Rahman, M.: % Basic Hypergeometric Series. % Encyclopedia of Mathematics and its Applications 35. % Ed. by G.-C. Rota, Cambridge University Press, London and New York, 1990. % Results of manual qsum.tex % load qsum; qgosper(qpochhammer(a,q,k)*q^k/qpochhammer(q,q,k),q,k); k (q *a - 1)*qpochhammer(a,q,k) ------------------------------- (a - 1)*qpochhammer(q,q,k) qgosper(qpochhammer(a,q,k)*qpochhammer(a*q^2,q^2,k)* qpochhammer(q^(-n),q,k)*q^(n*k)/(qpochhammer(a,q^2,k)* qpochhammer(a*q^(n+1),q,k)*qpochhammer(q,q,k)),q,k); k*n k k n 1 2 2 ( - q *(q *a - 1)*(q - q )*qpochhammer(----,q,k)*qpochhammer(a*q ,q ,k) n q 2*k n n *qpochhammer(a,q,k))/((q *a - 1)*(q - 1)*qpochhammer(q *a*q,q,k) 2 *qpochhammer(a,q ,k)*qpochhammer(q,q,k)) qgosper(qpochhammer(q^(-n),q,k)*z^k/qpochhammer(q,q,k)*z^n,q,k); ***** No q-hypergeometric antidifference exists. off qgosper_down; qgosper(q^k*qbrackets(k,q),q,k); k k - q *(q + 1 - q )*qbrackets(k,q) ----------------------------------- k (q - 1)*(q + 1)*(q - 1) on qgosper_down; qgosper(q^k,q,k,0,n); n q *q - 1 ---------- q - 1 qsumrecursion(qpochhammer(q^(-n),q,k)*z^k/qpochhammer(q,q,k),q,k,n); n n - ((q - z)*summ(n - 1) - q *summ(n)) on qsumrecursion_certificate; proof:=qsumrecursion(qpochhammer(q^(-n),q,k)*z^k/qpochhammer(q,q,k),q,k,n); n n proof := { - ((q - z)*summ(n - 1) - q *summ(n)), k n - (q - q )*z ----------------, n q - 1 k 1 z *qpochhammer(----,q,k) n q --------------------------, qpochhammer(q,q,k) k, downward_antidifference} off qsumrecursion_certificate; % proof of statement lhside:= qsimpcomb(sub(summ(n)=part(proof,3), summ(n-1)=sub(n=n-1,part(proof,3)),part(proof,1))); k k n n 1 z *(q *(q - z) + q *(z - 1))*qpochhammer(----,q,k) n q lhside := ----------------------------------------------------- n (q - 1)*qpochhammer(q,q,k) rhside:= qsimpcomb((part(proof,2)*part(proof,3)- sub(k=k-1,part(proof,2)*part(proof,3)))); k k n n k 1 - z *((q - q )*z - q *(q - 1))*qpochhammer(----,q,k) n q rhside := --------------------------------------------------------- n (q - 1)*qpochhammer(q,q,k) qsimpcomb((rhside-lhside)/part(proof,3)); 0 % proof done operator qlaguerre, qcharlier; % q-Laguerre polynomials, Koekoek, Swarttouw (3.21) qsumrecursion(qpochhammer(q^(alpha+1),q,n)/qpochhammer(q,q,n), {q^(-n)}, {q^(alpha+1)}, q, -x*q^(n+alpha+1), qlaguerre(n)); n alpha + n n ((q + 1 - q )*q - q *(q *x + q))*qlaguerre(n - 1) alpha + n n + ((q - q)*qlaguerre(n - 2) + (q - 1)*qlaguerre(n))*q % q-Charlier polynomials, Koekoek, Swarttouw (3.23) qsumrecursion({q^(-n),q^(-x)},{0},q,-q^(n+1)/a,qcharlier(n)); x n n 2*n - ((q *((q + 1 - q )*a + q )*q - q )*qcharlier(n - 1) x n n + q *((q + a*q)*(q - q)*qcharlier(n - 2) - qcharlier(n)*a*q)) % continuous q-Jacobi polynomials, Koekoek, Swarttouw (3.10) %% on qsum_nullspace; %% term:= qpochhammer(q^(alpha+1),q,n)/qpochhammer(q,q,n)* %% qphihyperterm({q^(-n),q^(n+alpha+beta+1), %% q^(alpha/2+1/4)*exp(I*theta), q^(alpha/2+1/4)*exp(-I*theta)}, %% {q^(alpha+1), -q^((alpha+beta+1)/2), -q^((alpha+beta+2)/2)}, %% q, q, k)$ %% qsumrecursion(term,q,k,n,2); %% off qsum_nullspace; % Some more qgosper results with proof % % Gasper, Rahman (2.3.4) term:=qpochhammer(a,q,k)*qpochhammer(a*q^2,q^2,k)*qpochhammer(q^(-n),q,k)* q^(n*k)/(qpochhammer(a,q^2,k)*qpochhammer(a*q^(n+1),q,k)*qpochhammer(q,q,k)); k*n 1 2 2 q *qpochhammer(----,q,k)*qpochhammer(a*q ,q ,k)*qpochhammer(a,q,k) n q term := ---------------------------------------------------------------------- n 2 qpochhammer(q *a*q,q,k)*qpochhammer(a,q ,k)*qpochhammer(q,q,k) result:=qgosper(qpochhammer(a,q,k)*qpochhammer(a*q^2,q^2,k)* qpochhammer(q^(-n),q,k)*q^(n*k)/ (qpochhammer(a,q^2,k)*qpochhammer(a*q^(n+1),q,k)*qpochhammer(q,q,k)),q,k); k*n k k n 1 result := ( - q *(q *a - 1)*(q - q )*qpochhammer(----,q,k) n q 2 2 2*k n *qpochhammer(a*q ,q ,k)*qpochhammer(a,q,k))/((q *a - 1)*(q - 1) n 2 *qpochhammer(q *a*q,q,k)*qpochhammer(a,q ,k)*qpochhammer(q,q,k)) qsimpcomb(result-sub(k=k-1,result)-term); 0 % Gasper, Rahman (3.8.16) term:=(1-a*c*q^(4*k))*(1-b/c*q^(-2*k))*qpochhammer(a,q,k)*qpochhammer(b,q,k)* qpochhammer(q^(-3*n),q^3,k)*qpochhammer(a*c^2/b*q^(3*n),q^3,k)*q^(3*k)/ ((1-a*c)*(1-b/c)*qpochhammer(c*q^3,q^3,k)*qpochhammer(a*c/b*q^3,q^3,k)* qpochhammer(a*c*q^(3*n+1),q,k)*qpochhammer(b/c*q^(1-3*n),q,k)); 3*n 2 k q *a*c 3 1 3 term := (q *qpochhammer(-----------,q ,k)*qpochhammer(------,q ,k) b 3*n q *qpochhammer(a,q,k)*qpochhammer(b,q,k) 3 6*k 2 4*k 2*k a*c*q 3 *( - q *a*c + q *a*b*c + q *c - b))/(qpochhammer(--------,q ,k) b b*q 3*n *qpochhammer(--------,q,k)*qpochhammer(q *a*c*q,q,k) 3*n q *c 3 3 2 *qpochhammer(c*q ,q ,k)*(a*b*c - a*c - b + c)) result:=qgosper((1-a*c*q^(4*k))*(1-b/c*q^(-2*k))*qpochhammer(a,q,k)* qpochhammer(b,q,k)*qpochhammer(q^(-3*n),q^3,k)*qpochhammer(a*c^2/ b*q^(3*n),q^3,k)*q^(3*k)/((1-a*c)*(1-b/c)*qpochhammer(c*q^3,q^3,k)* qpochhammer(a*c/b*q^3,q^3,k)*qpochhammer(a*c*q^(3*n+1),q,k)* qpochhammer(b/c*q^(1-3*n),q,k)),q,k); 3*k + 3*n 2 2*k k + n 2*n k k result := ( - (q *a*c - b)*(q + q + q )*(q *a - 1)*(q *b - 1) 3*n 2 k n q *a*c 3 1 3 *(q - q )*qpochhammer(-----------,q ,k)*qpochhammer(------,q ,k) b 3*n q 3*n *qpochhammer(a,q,k)*qpochhammer(b,q,k)*c)/((q *a*c - b) 3 3*n a*c*q 3 *(q *c - 1)*(a*c - 1)*(b - c)*qpochhammer(--------,q ,k) b b*q 3*n *qpochhammer(--------,q,k)*qpochhammer(q *a*c*q,q,k) 3*n q *c 3 3 *qpochhammer(c*q ,q ,k)) qsimpcomb(result-sub(k=k-1,result)-term); 0 end; Time for test: 570 ms, plus GC time: 10 ms