axiom-developer
[Top][All Lists]

## 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:
>
> > 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
coefficients.

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
error
else
....

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
worse.

> 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