我正在使用 Sympy 来评估一些涉及gamma函数操作的符号和,但我注意到在这种情况下,它不评估和并保持未评估。
import sympy as sp
a = sp.Symbol('a',real=True)
b = sp.Symbol('b',real=True)
d = sp.Symbol('d',real=True)
c = sp.Symbol('c',integer=True)
z = sp.Symbol('z',complex=True)
t = sp.Symbol('t',complex=True)
sp.simplify(t-sp.summation((sp.exp(-d)*(d**c)/sp.gamma(c+1))/(z-c-a*t),(c,0,sp.oo)))
然后我需要对这个表达式进行lambdify,不幸的是这变得不可能。
但是,使用 Matlab 符号工具箱,我得到以下答案:
MATLAB
>> a=sym('a')
>> b=sym('b');
>> c=sym('c')
>> d=sym('d');
>> z=sym('z');
>> t=sym('t');
>> symsum((exp(-d)*(d^c)/factorial(c))/(z-c-a*t),c,0,inf)
ans =
(-d)^(z - a*t)*exp(-d)*(gamma(a*t - z) - igamma(a*t - z, -d))
正如预期的那样,该公式涉及较低的不完全伽马函数。知道为什么会出现这种行为吗?我认为 sympy 能够象征性地进行这个求和。
智慧大石
相关分类