首先,这个定义式其实是梅林逆变换,它在版本11.0及以上已经内置:(Gamma[e] InverseMellinTransform[(Gamma[q - x] Gamma[w - x] Gamma[x])/Gamma[e - x], x, -r])/ (Gamma[q] Gamma[w]) // FullSimplify
其次,如果你是想做数值验证的话,那么,你路径选错了。具体请仔细阅读定义式下边的说明。
第三,就算你路径选对了,NIntegrate依旧无法直接计算这个积分,因为:
1. NIntegrate无法正确识别形如-1/2+I Infinity的积分限,它会自动计算为 DirectedInfinity[I]。这个倒还没什么,只要适当换元即可。这一部分可参考
https://mathematica.stackexchange.com/a/175222/18712. 即使在做了1中所提的修改之后,NIntegrate依旧无法正常计算此积分,这可能是某种性能问题。相应的对策是使用更为合理的积分路径:
q = 1; w = 2; e = 2; r = 2;
Hypergeometric2F1[q, w, e, r]
func[begin_, end_, xdefinition_: x] := (Gamma[e] NIntegrate[ With[{x = xdefinition}, ((Gamma[q + x] Gamma[w + x] Gamma[-x]) (-r)^x)/ Gamma[e + x]], {x, begin , end}(*, WorkingPrecision\[Rule]32*)])/((2 \[Pi] I) (Gamma[q] Gamma[w]))
func[-Infinity, -1/2, x - I] + func[-1/2 - I, -1/2 + I] + func[-1/2, -Infinity, x + I]
(* -1. + 5.57138*10^-9 I *)
这一部分还可参考:
https://mathematica.stackexchange.com/a/113936/1871