Re: sum of binomials .. bug ?
- To: mathgroup at smc.vnet.net
- Subject: [mg70567] Re: sum of binomials .. bug ?
- From: "Jean-Marc Gulliet" <jeanmarc.gulliet at gmail.com>
- Date: Fri, 20 Oct 2006 05:21:26 -0400 (EDT)
- References: <eh20si$2ms$1@smc.vnet.net> <eh4q2f$8rd$1@smc.vnet.net> <4537120A.60206@dordos.net>
On 10/19/06, Peter Pein <petsie at dordos.net> wrote: > Jean-Marc Gulliet schrieb: > > yann_che2 at yahoo.fr wrote: > >> Hi everyone, > >> > >> on Mathematica 5.2 (mac os x), experimenting sums of binomials, i tried > >> the following: > >> > >> In[6]:= f[k_] := Sum[Binomial[21 - k, i], {i, 0, 10 - k}] > >> In[7]:= x = 3; f[x] > >> Out[7]:= 63004 > >> In[8]:= Clear[x] ; f[x] /. x -> 3 > >> Out[8]:= 262144 > >> In[9]:= Clear[x] ; f[x] > >> Out[9]:= 2^(21-x) > >> > >> > >> does anyone know why Out[7] and Out[8] give different results ? do you > >> think it is a bug ? i searched everywhere in the forums but couldn't > >> find anything that helped. > >> do you have a clue ? > >> > >> yann > >> > > No bug here. You are not evaluating the same function. In the first > > case, k is replaced by the value 3, then the sum/binomial is evaluated. > > In the second case, the sum/binomial is evaluated first, then the value > > 3 is substituted to k. You can get a consistent result using an > > immediate assignment rather than a delayed one. > > > > In[1]:= > > f[k_] := Sum[Binomial[21 - k, i], {i, 0, 10 - k}] > > > > In[2]:= > > Trace[f[3]] > > > > In[3]:= > > Trace[f[x] /. x -> 3] > > > > In[4]:= > > Clear[f] > > f[k_] = Sum[Binomial[21 - k, i], {i, 0, 10 - k}] > > > > Out[5]= > > 2^(21 - k) > > > > In[6]:= > > f[3] > > > > Out[6]= > > 262144 > > > > In[7]:= > > f[x] /. x -> 3 > > > > Out[7]= > > 262144 > > > > Regards, > > Jean-Marc > > > Hi Jean-Marc, > > do not trust any CAS without getting a second opinion. The bugs are not always > as obvious as in the following example: > > > In[1]:= > hilDet[n_] := Product[(n^2 - k^2)^(k - n)*k!^2, {k, 1, n - 1}]/n^n; > > Testing for some n: > > In[2]:= > And @@ Table[hilDet[k] == Det[Array[1/(#1 + #2 - 1) & , {k, k}]], {k, 10}] > Out[2]= > True > > split n^2-k^2: > > In[3]:= > bug[n_] := (Product[(n + k)^(k - n)*k!^2, {k, 1, n - 1}]*Product[(n - k)^(k - > n), {k, 1, n - 1}])/n^n > In[4]:= > bug[10] == hilDet[10] > Out[4]= > True > > well, but: > > In[5]:= > bug[n] > Out[5]= > (E^((1/12)*(1 - 6*n + 6*n^2 - 12*Derivative[1, 0][Zeta][-1, 1 - n]))* > Product[(k + n)^(k - n)*k!^2, {k, 1, -1 + n}])/(n^n*Glaisher) > In[6]:= > % /. n -> 10 > Out[6]= > (20155392*E^((1/12)*(541 - 12*Derivative[1, 0][Zeta][-1, > -9])))/(43160654253356787452215625*Glaisher) > In[7]:= > hilDet[n] > Out[7]= > Product[(-k^2 + n^2)^(k - n)*k!^2, {k, 1, -1 + n}]/n^n > > P² > Hi Peter, Interesting example. I agree with you: checking the mathematical results given by a CAS is a good -- correct -- habit to have. But I guess I am naturally inclined to trust blindly Mathematica :-) Or perhaps I just have been for too long on the programming side and not enough on the mathematical one lately! Regards, Jean-Marc