求助,Hypergeometric2F1的展开怎么用mathematica验证不了?
mathematica吧
全部回复
仅看楼主
level 3
MASK泓 楼主
如图为Table Of Integrals, Series And Products 中的公式,但在验证的时候:
代码:
q = 1; w = 2; e = 2; r = 2;
N[Hypergeometric2F1[q, w, e, r]];
N[1/(2*\[Pi]*I)*Gamma[e]/(Gamma[q]*Gamma[w])
Integrate[(Gamma[q + x]*Gamma[w + x]*Gamma[-x])/Gamma[e + x]*(-r)^
x, {x, -50*I, 50*I}]];
2018年12月13日 08点12分 1
level 3
MASK泓 楼主
不知道是不是积分路径的问题
但是改变实部,避开伽马函数的奇点的话:
问题仍然存在。
代码:
N[1/(2*\[Pi]*I)*Gamma[e]/(Gamma[q]*Gamma[w])
Integrate[(Gamma[q + x]*Gamma[w + x]*Gamma[-x])/Gamma[e + x]*(-r)^
x, {x, -0.5 - 80*I, -0.5 + 80*I}]]
2018年12月13日 08点12分 2
level 3
MASK泓 楼主
这是我在推导论文公式,用mathematica来check时遇到的问题。
table里面的公式应该没有问题,不知道大家有没有遇到过类似的情况。
真心请教,谢谢大家
2018年12月13日 08点12分 3
level 14
因为你这是路径积分,不是单纯的定积分。mma目前的路径积分还不太好使,只能算一些非常简单的。
2019年01月04日 03点01分 7
在此之前LZ对路径的选择就是错的。参10楼。
2019年01月04日 16点01分
谢谢!
2019年01月05日 02点01分
@xzcyr 我想说的就是:他要做的是路径积分,但是写的却是个定积分的样子[咦]
2019年01月05日 08点01分
@magus000 ……选“直路”做积分也是没有问题的。
2019年01月05日 08点01分
吧务
level 15
首先,这个定义式其实是梅林逆变换,它在版本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/1871
2. 即使在做了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
2019年01月04日 16点01分 10
果然百度对手机端的审核更松。
2019年01月04日 16点01分
谢谢吧主!
2019年01月05日 02点01分
补充一点。这里之所以称这条路径为“更为合理的积分路径”是因为,我所接触的所有涉及此类积分的教材和文献都使用了类似的路径选择策略(即尽可能把路径推往实轴的负无穷以省去部分积分运算),至于为什么这种路径就是更好使我其实不清楚……
2019年01月05日 05点01分
吧主,这样的方法确实能很好的解决这个问题,但我实际遇到的问题是二重复数域积分,也就是二重的沿这样的a-i*无穷到a+i*无穷。。还是解决不了[泪]
2019年01月20日 12点01分
level 3
MASK泓 楼主
赋值:
tao = 0.4;
m = 2; ms = 4; Cth = 0.5; d1 = 3; d2 = 3; Ps = 10; n = 0.5;
lan = 2^((2*Cth)/(1 - tao)) - 1; a = d1^m/Ps; b = ((1 - tao)*d1^m*d2^
m)/(2*n*tao*Ps); ga = {1};
在ga取10的时候上面三个式子值一样,在ga取小一点(如1)或大一点(100)都不对
不知道是不是mathematica的积分机制问题
真心求教,谢谢大家
2019年01月21日 12点01分 14
level 3
MASK泓 楼主
为甚么代码贴不出来,,一发就会被删除。。[泪]
2019年01月21日 13点01分 17
去申诉!
2019年02月02日 15点02分
1