From: pfalloon on
On Sep 6, 9:37 pm, janey <janemk...(a)gmail.com> wrote:
> I don't know if WRI will divulge anything about their algorithms for
> numerical approximation of Hypergeometric functions. Can I trust it?
> Mathematica 6.0 can handle AppelF1[1.6+.6] say, but Mathematica 7.0
> won't even give an actual number (this is a problem all up the
> diagonal after a certain point.
>
> The problem occurs with parameters roughly as follows:
>
> AppellF1[1/2, .3, .3, 1/4, -100 z^4, z^4];
>
> One: Before I try and figure out more of the nature of the function at
> different points, can anyone tell me if there are known problems with
> mathematica's special functions being reliable?
>
> Two: Given that I want to plot this function in a portion of the
> plane, can I have Mathematica overlook these sets of non-computable
> (by mathematica) points, and still get a plot?
>
> Thanks,
>
> Janey.

In general, Mathematica's implementation of special functions are very
reliable, but obviously the more established and widely the function
the more reliable it is likely to be (since, as with any code, any
implementation bugs are more likely to have been identified and
resolved).

While the algorithms are not made available (and the code would not be
particularly transparent even if they were), you can gain a lot of
insight (and confidence) by looking up relevant definitions and
identities on the wolfram special functions website www.functions.wolfram.com.
The vast majority of these identities have been verified to high
precision using Mathematica's built-in special functions.

However, in the case of AppellF1, from what I can see you certainly
have a point: the function does fail (inexplicably) to return
numerical values for the parameters you mentioned. My guess would be
that it's related to the fact that you're passing values of z1,z2 from
outside the unit circle where the original series definition is valid.
But AFAIK analytic continuations exist so it's not clear what's going
on. Whatever the case, if this behaviour is not a bug, I would like at
the very least to see some comment in the documentation about it.

If no other posts shed any light on this, I would suggest you submit
the issue to WRI as a potential bug (support(a)wolfram.com). It would
probably help to include a more explicit example (e.g. specify the
actual values of z1,z2 that demonstrate the problem). I'd be
interested to hear of the outcome...

Best,
Peter.