On 8/30/10, Fred lunnon <fred.lunnon@gmail.com> wrote:
I looked at trying to remove this restriction on n, which led to the slightly cleaner version attached below; but in the end it proves impossible to relax the constraints nontrivially. WFL
Given integers n >= 0, k >= 0, show
\sum_{i_k = 1}^oo (n/i_k) ...
... \sum_{i_2 = 1+i_3}^oo (n/i_2)
\sum_{i_1 = 1+i_2}^oo (n/i_1)
n! (i_1)! / (n + i_1)!
= 1 .
Silly boy --- of course it doesn't work for n = 0 --- the LHS has to be zero! But to recover my dignity, I'd just like to point out that it does apparently work for (all) _real_ n > 0, not just integers. In the code below, supersede definition of bin() by # Binomial coefficient n_C_m (via Gamma function) n >= m >= 0 only bin := proc(n, m) GAMMA(1+n)/GAMMA(1+m)/GAMMA(1+n-m) end; and "n := 10" by e.g. "n := 0.1" WFL
#### Maple code for Chris Coath summation problem (recast) ####
# For all integer n, and non-negative q,k --- # Define # g_k(q) = {n, q} when k = 0 , # = \sum_{j=q+1}^{i=\infty} g_{l-1}(j) n/j when k > 1 ; # Then # g_k(q) = {n, q} for k >= 0 .
# Binomial coefficient n_C_m (via subfactorial) fails in sum() bin := proc (n, m) local i, ans; if m < 0 then ans := 0 else ans := 1; i := 1; while i <= m do ans := ans*(n-i+1)/i; i := i+1 od fi; ans end;
# Binomial coefficient n_C_m (via library) slow bin := proc (n, m) binomial(n, m) end;
# Binomial coefficient n_C_m (via factorial) n >= m >= 0 only bin := proc(n, m) factorial(n)/factorial(m)/factorial(n-m) end;
# Definition gkD := proc(q, n, k) local j;
if k = 0 then 1/bin(n+q, q) else evalf(sum('gkD(j, n, k-1)*n/j', 'j' = q+1..infinity)) fi end;
# Inductive step gkI := proc(q, n, k) local j;
evalf(sum('gkE(j, n, k-1)*n/j', 'j' = q+1..infinity)) end; # Explicit expression gkE := proc(q, n, k); 1/bin(n+q, q) end;
# Compare inductive step with explicit expression --- approx zeros m := 6;
seq(seq(gkI(0, n, k) - gkE(0, n, k), n = 1..m), k = 0..m);
# Compare definition with explicit expression --- approx zeros (1050 sec) n := 10; m := 3; seq(gkD(0, n, k) - gkE(0, n, k), k = 0..m);