Re: A limit bug
- To: mathgroup at smc.vnet.net
- Subject: [mg84518] Re: [mg84511] A limit bug
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Tue, 1 Jan 2008 03:28:17 -0500 (EST)
- References: <200801010216.VAA08134@smc.vnet.net>
On 1 Jan 2008, at 11:16, David W.Cantrell wrote:
> A recent question in sci.math led to something which should also
> interest
> this group.
>
> The OP asked about the limit of (p + q)!/(p! q!) as both p and q
> increase
> without bound. And he said later
>
>> I wasn't sure about it because Mathematica gives me a limit of zero.
>> Isn't that strange?
>
> I responded as follows.
>
> ----------------------------------------------
>
> Well, it's a bug. I suppose that what you did in Mathematica was
> something
> like
>
> In[3]:= Limit[Limit[(p + q)!/(p! q!), q -> Infinity], p -> Infinity]
>
> Out[3]= 0
>
> But note that there is not any way -- well, at least none known to
> me -- in
> Mathematica to get a true general "two-variable" limit:
>
> limit f(x,y) as (x,y) -> (x0,y0)
>
> However, Mathematica can get a correct answer for your limit problem.
>
> First, realize that (p + q)!/(p! q!) is Multinomial[p, q]. So you
> might try
>
> In[5]:= Limit[Limit[Multinomial[p, q], q -> Infinity], p -> Infinity]
>
> Out[5]= Limit[Limit[Multinomial[p, q], q -> Infinity], p -> Infinity]
>
> Since that remains unevaluated (but at least there was now no bug!),
> you
> might consider the possibility that it remained unevaluated for a good
> reason, namely, because a little more information had to be provided:
>
> In[6]:= Limit[Limit[Multinomial[p, q], q -> Infinity, Assumptions ->
> p > 1],
> p -> Infinity]
>
> Out[6]= Infinity
>
> Success! Happy New Year!
>
> But BTW, note that, curiously, the following fails:
>
> In[7]:= Limit[Limit[(p + q)!/(p! q!), q -> Infinity, Assumptions ->
> p > 1],
> p -> Infinity]
>
> Out[7]= Indeterminate
>
> David
>
I think using iterated limits above actually obscures what happens. In
fact:
Limit[Multinomial[p, q], q -> Infinity,
Assumptions -> p > 1]
Infinity
Thus there is not much point in further taking limits as p->Infinity,
since the answer, being independent of p will certainly not change. On
the other hand
Limit[(p + q)!/(p!*q!), q -> Infinity, Assumptions -> p > 1]
Infinity/p!
We can now see what happened here and the source of the problem.
Mathematica simply computed
Limit[(p + q)!/q!, q -> Infinity, Assumptions -> p > 1]
Infinity
and then divided the answer by p! returning Infinity/p! since
Mathematica leaves Infinity/a unevaluated for an undefined symbol a.
Now, of course taking the limit with respect to p as p->Infinity will
quite correctly produce Indeterminate. I would not call this a bug but
rather a bit of a design problem.
On a related note; although I think Mathematica is right to leave
unevaluated expressions such as Infinity/a, I would prefer it to
return Infinity in the example below:
Assuming[Element[a, Reals] && a != 0,
Simplify[Infinity/a]]
Andrzej Kozlowski