Artifact 506cd2320fbafc2bedbf916bcda6cae59c86c70a4897bed46475dbd472a8c5c9:
- Executable file
r38/packages/sum/sum.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: 14785) [annotate] [blame] [check-ins using] [more...]
Tue Feb 10 12:28:54 2004 run on Linux % Tests of the SUM package. % Author: Fujio Kako (kako@kako.math.sci.hiroshima-u.ac.jp) % 1) Summations. sum(n,n); n*(n + 1) ----------- 2 for i:=2:10 do write sum(n**i,n); 2 n*(2*n + 3*n + 1) -------------------- 6 2 2 n *(n + 2*n + 1) ------------------- 4 4 3 2 n*(6*n + 15*n + 10*n - 1) ------------------------------ 30 2 4 3 2 n *(2*n + 6*n + 5*n - 1) ----------------------------- 12 6 5 4 2 n*(6*n + 21*n + 21*n - 7*n + 1) ------------------------------------- 42 2 6 5 4 2 n *(3*n + 12*n + 14*n - 7*n + 2) -------------------------------------- 24 8 7 6 4 2 n*(10*n + 45*n + 60*n - 42*n + 20*n - 3) ----------------------------------------------- 90 2 8 7 6 4 2 n *(2*n + 10*n + 15*n - 14*n + 10*n - 3) ----------------------------------------------- 20 10 9 8 6 4 2 n*(6*n + 33*n + 55*n - 66*n + 66*n - 33*n + 5) ------------------------------------------------------- 66 sum((n+1)**3,n); 3 2 n*(n + 6*n + 13*n + 12) --------------------------- 4 sum(x**n,n); n x *x ------- x - 1 sum(n**2*x**n,n); n 2 2 2 2 x *x*(n *x - 2*n *x + n - 2*n*x + 2*n + x + 1) -------------------------------------------------- 3 2 x - 3*x + 3*x - 1 sum(1/n,n); 1 sum(---,n) n sum(1/n/(n+2),n); n*(3*n + 5) ------------------ 2 4*(n + 3*n + 2) sum(log (n/(n+1)),n); 1 log(-------) n + 1 % 2) Expressions including trigonometric functions. sum(sin(n*x),n); 2*n*x + x - cos(-----------) 2 --------------------- x 2*sin(---) 2 sum(n*sin(n*x),n,1,k); sin(k*x + x)*k - sin(k*x)*k - sin(k*x) ---------------------------------------- 2*(cos(x) - 1) sum(cos((2*r-1)*pi/n),r); 2*pi*r sin(--------) n --------------- pi 2*sin(----) n sum(cos((2*r-1)*pi/n),r,1,n); 0 sum(cos((2*r-1)*pi/(2*n+1)),r); 2*pi*r sin(---------) 2*n + 1 ------------------ pi 2*sin(---------) 2*n + 1 sum(cos((2*r-1)*pi/(2*n+1)),r,1,n); 2*n*pi sin(---------) 2*n + 1 ------------------ pi 2*sin(---------) 2*n + 1 sum(sin((2*r-1)*x),r,1,n); - cos(2*n*x) + 1 ------------------- 2*sin(x) sum(cos((2*r-1)*x),r,1,n); sin(2*n*x) ------------ 2*sin(x) sum(sin(n*x)**2,n); - sin(2*n*x + x) + 2*sin(x)*n -------------------------------- 4*sin(x) sum(cos(n*x)**2,n); sin(2*n*x + x) + 2*sin(x)*n ----------------------------- 4*sin(x) sum(sin(n*x)*sin((n+1)*x),n); - sin(2*n*x + 2*x) + sin(2*x)*n ---------------------------------- 4*sin(x) sum(sec(n*x)*sec((n+1)*x),n); sum(sec(n*x + x)*sec(n*x),n) sum(1/2**n*tan(x/2**n),n); x tan(----) n 2 sum(-----------,n) n 2 sum(sin(r*x)*sin((r+1)*x),r,1,n); - sin(2*n*x + 2*x) + sin(2*x)*n + sin(2*x) --------------------------------------------- 4*sin(x) sum(sec(r*x)*sec((r+1)*x),r,1,n); sum(sec(r*x + x)*sec(r*x),r,1,n) sum(1/2**r*tan(x/2**r),r,1,n); x tan(----) r 2 sum(-----------,r,1,n) r 2 sum(k*sin(k*x),k,1,n - 1); - sin(n*x - x)*n + sin(n*x)*n - sin(n*x) ------------------------------------------- 2*(cos(x) - 1) sum(k*cos(k*x),k,1,n - 1); - cos(n*x - x)*n + cos(n*x)*n - cos(n*x) + 1 ----------------------------------------------- 2*(cos(x) - 1) sum(sin((2k - 1)*x),k,1,n); - cos(2*n*x) + 1 ------------------- 2*sin(x) sum(sin(x + k*y),k,0,n); 2*n*y + 2*x + y 2*x - y - cos(-----------------) + cos(---------) 2 2 -------------------------------------------- y 2*sin(---) 2 sum(cos(x + k*y),k,0,n); 2*n*y + 2*x + y 2*x - y sin(-----------------) - sin(---------) 2 2 ----------------------------------------- y 2*sin(---) 2 sum((-1)**(k - 1)*sin((2k - 1)*x),k,1,n + 1); n ( - 1) *sin(2*n*x + 2*x) -------------------------- 2*cos(x) sum((-1)**(k - 1)*cos((2k - 1)*x),k,1,n + 1); n ( - 1) *cos(2*n*x + 2*x) + 1 ------------------------------ 2*cos(x) sum(r**k*sin(k*x),k,1,n - 1); n n - r *sin(n*x - x)*r + r *sin(n*x) - sin(x)*r ----------------------------------------------- 2 2*cos(x)*r - r - 1 sum(r**k*cos(k*x),k,0,n - 1); n n - r *cos(n*x - x)*r + r *cos(n*x) + cos(x)*r - 1 --------------------------------------------------- 2 2*cos(x)*r - r - 1 sum(sin(k*x)*sin((k + 1)*x),k,1,n); - sin(2*n*x + 2*x) + sin(2*x)*n + sin(2*x) --------------------------------------------- 4*sin(x) sum(sin(k*x)*sin((k + 2)*x),k,1,n); - sin(2*n*x + 3*x) + sin(3*x)*n + sin(3*x) - sin(x)*n -------------------------------------------------------- 4*sin(x) sum(sin(k*x)*sin((2k - 1)*x),k,1,n); 6*n*x + x 2*n*x - 3*x 2*n*x - x 2*n*x + x ( - sin(-----------) + sin(-------------) + sin(-----------) + sin(-----------) 2 2 2 2 3*x x 3*x + sin(-----) + sin(---))/(4*sin(-----)) 2 2 2 % The next examples cannot be summed in closed form. sum(1/(cos(x/2**k)*2**k)**2,k,1,n); 1 sum(-----------------,k,1,n) 2*k x 2 2 *cos(----) k 2 sum((2**k*sin(x/2**k)**2)**2,k,1,n); 2*k x 4 sum(2 *sin(----) ,k,1,n) k 2 sum(tan(x/2**k)/2**k,k,0,n); x tan(----) k 2 sum(-----------,k,0,n) k 2 sum(cos(k**2*2*pi/n),k,0,n - 1); 2 2*k *pi sum(cos(---------),k,0,n - 1) n sum(sin(k*pi/n),k,1,n - 1); 2*n*pi - pi pi - cos(-------------) + cos(-----) 2*n 2*n ------------------------------------ pi 2*sin(-----) 2*n % 3) Expressions including the factorial function. for all n,m such that fixp m let factorial(n+m)=if m > 0 then factorial(n+m-1)*(n+m) else factorial(n+m+1)/(n+m+1); sum(n*factorial(n),n); factorial(n)*(n + 1) sum(n/factorial(n+1),n); - 1 ---------------------- factorial(n)*(n + 1) sum((n**2+n-1)/factorial(n+2),n); - 1 ---------------------- factorial(n)*(n + 2) sum(n*2**n/factorial(n+2),n); n - 2*2 ----------------------------- 2 factorial(n)*(n + 3*n + 2) sum(n*x**n/factorial(n+2),n); n x *n sum(-----------------------------------------------------,n) 2 factorial(n)*n + 3*factorial(n)*n + 2*factorial(n) for all n,m such that fixp m and m > 3 let factorial((n+m)/2)= factorial((n+m)/2-1)*((n+m)/2), factorial((n-m)/2)= factorial((n-m)/2+1)/((n-m)/2+1); sum(factorial(n-1/2)/factorial(n+1),n); 2*n - 1 factorial(---------) 2 sum(-------------------------------,n) factorial(n)*n + factorial(n) for all n,m such that fixp m and m > 3 clear factorial((n+m)/2); for all n,m such that fixp m and m > 3 clear factorial((n-m)/2); % 4) Expressions including combination. operator comb; % Combination function. for all n ,m let comb(n,m)=factorial(n)/factorial(n-m)/factorial(m); sum((-1)**k*comb(n,k),k,1,m); m m ( - ( - 1) *factorial(n)*m + ( - 1) *factorial(n)*n - factorial( - m + n)*factorial(m)*n)/(factorial( - m + n)*factorial(m)*n) sum(comb(n + p,q)/comb(n + r,q + 2),n,1,m); ( - factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*m*p*q - 2*factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*m*p - factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*m*q - 2*factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*m 2 + factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*p*q - factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*p*q*r + 2*factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*p*q - 2*factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*p*r 2 + factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*q - factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*q*r + 2*factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*q - 2*factorial( - q + r)*factorial(m + p - q)*factorial(m + r)*factorial(p)*r 2 - factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*m*q + factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*m*q*r - 2*factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*m*q + 2*factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*m*r 2 - factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*p*q + factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*p*q*r - 2*factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*p*q + 2*factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*p*r 2 - factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*q + factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*q*r - 2*factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*q + 2*factorial(m - q + r)*factorial(m + p)*factorial(p - q)*factorial(r)*r)/( factorial(m + p - q)*factorial(m + r)*factorial(p - q)*factorial(r)*(m*p*q 2 2 2 2 2 - m*p*r - m*q*r + m*q + m*r - m*r - p*q + 2*p*q*r - p*r + q *r - q 2 3 2 - 2*q*r + 2*q*r + r - r )) sum((-1)**(k + 1)*comb(n,k)/(k + 1),k,1,n); n ------- n + 1 for all n ,m clear comb(n,m); for all n,m such that fixp m clear factorial(n+m); % 3) Examples taken from % "Decision procedure for indefinite hypergeometric summation" % Proc. Natl. Acad. Sci. USA vol. 75, no. 1 pp.40-42 (1978) % R. William Gosper, Jr. % % n % ____ 2 % f = || (b*k +c*k+d) % k=1 % % n % ____ 2 % g = || (b*k +c*k+e) % k=1 % operator f,gg; % gg used to avoid possible conflict with high energy % physics operator. for all n,m such that fixp m let f(n+m)=if m > 0 then f(n+m-1)*(b*(n+m)**2+c*(n+m)+d) else f(n+m+1)/(b*(n+m+1)**2+c*(n+m+1)+d); for all n,m such that fixp m let gg(n+m)=if m > 0 then gg(n+m-1)*(b*(n+m)**2+c*(n+m)+e) else gg(n+m+1)/(b*(n+m+1)**2+c*(n+m+1)+e); sum(f(n-1)/gg(n),n); f(n) --------------- gg(n)*(d - e) sum(f(n-1)/gg(n+1),n); 2 2 2 2 (f(n)*(2*b *n + 4*b *n + 2*b + 2*b*c*n + 2*b*c + 2*b*d*n + 3*b*d - 2*b*e*n 2 2 3 2 3 3 - b*e + c*d - c*e + d - 2*d*e + e ))/(gg(n)*(b *d*n + 2*b *d*n + b *d 3 2 3 3 2 2 2 2 - b *e*n - 2*b *e*n - b *e + b *c*d*n + b *c*d - b *c*e*n - b *c*e 2 2 2 2 2 2 2 2 2 2 2 2 2 + 2*b *d *n + 4*b *d *n + 2*b *d + b *d*e - 2*b *e *n - 4*b *e *n 2 2 2 2 2 2 2 2 2 - 3*b *e - b*c *d*n - 2*b*c *d*n - b*c *d + b*c *e*n + 2*b*c *e*n 2 2 2 2 2 3 2 + b*c *e + 2*b*c*d *n + 2*b*c*d - 2*b*c*e *n - 2*b*c*e + b*d *n 3 3 2 2 2 2 2 2 + 2*b*d *n + b*d - 3*b*d *e*n - 6*b*d *e*n - b*d *e + 3*b*d*e *n 2 2 3 2 3 3 3 3 + 6*b*d*e *n + 3*b*d*e - b*e *n - 2*b*e *n - 3*b*e - c *d*n - c *d 3 3 2 2 2 3 3 2 2 + c *e*n + c *e - c *d*e + c *e + c*d *n + c*d - 3*c*d *e*n - 3*c*d *e 2 2 3 3 3 2 2 3 4 + 3*c*d*e *n + 3*c*d*e - c*e *n - c*e + d *e - 3*d *e + 3*d*e - e )) for all n,m such that fixp m clear f(n+m); for all n,m such that fixp m clear gg(n+m); clear f,gg; % 4) Products. prod(n/(n+2),n); 2 -------------- 2 n + 3*n + 2 prod(x**n,n); 2 (n + n)/2 x prod(e**(sin(n*x)),n); 1 ---------------------------------- cos((2*n*x + x)/2)/(2*sin(x/2)) e end; Time for test: 130 ms