some Limits

*To*: mathgroup at smc.vnet.net*Subject*: [mg25794] some Limits*From*: Otto Linsuain <linsuain+ at andrew.cmu.edu>*Date*: Wed, 25 Oct 2000 03:53:50 -0400 (EDT)*Sender*: owner-wri-mathgroup at wolfram.com

Hi all. I find the following results rather alarming. As you probably know the Hypergeometric2F1[a,b,c,z] has a branch cut for z > 1. The function is real for real a,b,c and z < 1; but picks up an imaginary part for z > 1. The function satisfies the Shwartz (spelling?) reflection principle: 2F1[a,b,c,Conjugate[z]] = Conjugate[2F1[a,b,c,z]] for real a,b,c. This works fine in Mathematica, but look what happens when you try to find the Limits when z approaches the real axis from above and from below to some value larger than one. The results of Limits are compared with the results of evaluating slightly off the axis: In[32]:= {a, b, c, z} = {0.7, 1.8, 2.1, 2.4}; Hypergeometric2F1[a, b, c, z] {Limit[Hypergeometric2F1[a, b, c, z + I x], x -> 0, Direction -> -1], Hypergeometric2F1[a, b, c, z + I 0.000001]} {Limit[Hypergeometric2F1[a, b, c, z - I x], x -> 0, Direction -> -1], Hypergeometric2F1[a, b, c, z - I 0.000001]} Out[33]= -0.386677 - 0.923346 I Out[34]= {-0.386677 - 0.923346 I, -0.386677 + 0.923346 I} Out[35]= {-0.386677 - 0.923346 I, -0.386677 - 0.923346 I} As you see, evaluating just at z=2.4 gives the same answer as evaluating slightly below (a little awkward but OK)which gives the same answer as taking the limit from below (OK) Which SHOULD NOT be the same as taking the limit from above!! Evaluating slightly above gives the right answer: the complex conjugate of evaluating slightly below. Well I guess Mathematica is not taking the Limit, but merely evaluating at the point. Quite a shame! By the way, I just tried NLimit and it gives correct answers, i.e. a positive sign for the imaginary part of the first entry in Out[34] above, as it should. Otto Linsuain.