[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Issue 336

From: Waldek Hebisch
Subject: Re: [Axiom-developer] Issue 336
Date: Sat, 17 Mar 2007 21:42:15 +0100 (CET)

Martin Rubey wrote:
> Waldek Hebisch <address@hidden> writes:
> > Martin Rubey wrote:
> > > If the second argument k is negative, we could return zero. However, I 
> > > vaguely
> > > remember that the definition in terms of Gamma functions does not yield 
> > > this as
> > > a limit, at least not for any n. Do you happen to remember?
> > > 
> > > In fact, if n=k, the definition in terms of Gamma functions always gives 
> > > one,
> > > no matter whether n is negative of not...
> > I would tend to say that binomial(n, k) with k beeing a negative integer is
> > an error.  Definition in term of Gamma functions has discontinuity there: if
> > n is non-integer and k tends to negative integer then we get 0 as a limit.
> > Now, if we keep k fixed and let n go to any value we get 0.  But if we allow
> > n and k to change simultaneously we may get nonzero limit (so limit as a
> > function of two variables does not exist).  We have discontinuity only for
> > integer n and k such that k <= n < 0 (otherwise limit is 0).
> I should know, but I don't: is there a sensible definition of the binomial
> coefficient which disagrees with the definition in terms of Gamma functions at
> certain values?

P. Luschny argues in favour of another extension of factorial to 
analytic function:

Presumably this will also give "sensible" definition of binomial

I am not aware of other proposals, but it is hard to a priori
exclude possibility of "sensible ones.  But I think that definition
in terms of Gamma functions is simply much more popular and
much more useful, so I would take it as canonocal definition.

> (I don't think so...)
> If the definition in terms of the Gamma function is "canonical", I'd suggest 
> to
> simplify only when the limit is unique. (Contrary to Mathematica) So, as you
> and Mathworld say
> * for 0 <= k \in Z we return the product
> * if we can prove that n<k, we return 0

I think that we should produce a conditional expression:

if (k in Z) and (n in Z) and (k <= n) and (n < 0) then

Or use provisos.  But in the mean time I feel that we should
simplify: we can not produce correct answer (because not simplifying
may also give a wrong answer), so the best we can do is to try
to be wrong in as rarely as possible.  I do not think we should 
just disable _all_ unjustified simplifications: it would a hard job
and would make Axiom essentially useless (I do want to get rid
of unjustified simplifications, but not by disabling them, rather
I want to justify then if possible and use conditional expressions
otherwise).  Since now we have a lot of unjustified simplifications
disabling one of them may just trigger another one, sometimes

> I wonder about the case n=k. Why isn't that equal to 1? We obtain
> binomial(m,m)=limit(k->m, n->m) Gamma(n+1)/(Gamma(k+1)Gamma(n-k+1))
> isn't that limit equal to one?

Take non-integer n.  Let k go to negative integer.  Then Gamma(n+1)
and Gamma(n-k+1) stay finite, while Gamma(k+1) go to infinity.
So you get zero as one accumulation points.  Of course 1
is another accumulation point, so the limit does not exist.

In other words:  binomial(n, n) has limit 1 when n goes to negative
integer.  But binomial(m, k) has no limit when (m, k) goes to (n, n)
where n is a negative integer.

> In ibinom (that is, for FunctionSpaces over arbitrary R we currently have
> binomial(n,0)=1 
> binomial(n,n)=1 
> binomial(n,1)=n
> binomial(n,n-1)=n
> If the above limit does not exist, they are all wrong, I guess...

Only binomial(n,n)=1 and binomial(n,n-1)=n.  
> BTW, does binomial(n,k)=binomial(n,n-k) hold always?

The equality holds whenever definition via Gamma function works.
If you extend definition via continuity it still works.  But
if one puts some arbitrary value in point of discontinuity then
such extension may break equality.

                              Waldek Hebisch

reply via email to

[Prev in Thread] Current Thread [Next in Thread]