Re: Bug with Hypergeometric2F1?
- To: mathgroup at smc.vnet.net
- Subject: [mg99400] Re: [mg99384] Bug with Hypergeometric2F1?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Tue, 5 May 2009 05:39:32 -0400 (EDT)
- References: <200905041002.GAA22748@smc.vnet.net>
This is just the usual machine precision problem. What happens is that
your vol1 first evaluates to
vol1[n_, k_] = Sum[Binomial[n, i], {i, 0, k}]
2^n - Binomial[n, k + 1]*Hypergeometric2F1[1, k - n + 1, k + 2, -1]
Now, this is defined for arbitrary k, not just integers, but the
expression is numerically sensitive and you can check that you need
precision of about 303 (or more) in the second argument to get the
"right answer":
vol1[1000, 1`303]
1001.
but
In[21]:= vol1[1000, 1`302]
Out[21]= 1.00*10^3
and with only hundred digits of precision
vol1[1000, 1`100]
0.*10^204
which should make it pretty clear why you can't get a sensible answer
with MachinePrecision, which only uses about 16 digits.
On the other hand:
Sum[Binomial[1000, i], {i, 0, 1.}]
1001
because this time Mathematica does not compute the numerically
sensitive general formula but replaces your inexact (and hence
nonsensical) limit in Sum by an exact one and gets the "right" answer.
(I put "right" in quotation marks because actually your input clearly
does not make sense and so Sum would be justified in returning any
answer on the GIGO principle).
Andrzej Kozlowski
On 4 May 2009, at 19:02, irchans wrote:
> When I run this code:
>
> vol1[n_, k_] = Sum[ Binomial[n, i], {i, 0, k}]
> vol1[1000, 1]
> vol1[1000, 1.]
>
> I get
>
> Out[1] = 1001
>
>
> Out[2] = 7.12935*10^288
>
>
> I am running Mathematica 7.0.0 on windows 2000. Does anyone else have
> this problem?
>
>
- References:
- Bug with Hypergeometric2F1?
- From: irchans <infinitgames@yahoo.com>
- Bug with Hypergeometric2F1?