【发布时间】:2020-11-29 22:40:57
【问题描述】:
将sympy表达式转换为numpy可能是正常的,但是我的方程在sympy的输出上有积分,推导。我尝试了lambdify,但它给了我“名称'Integral'未定义”现在,我被卡住了,任何帮助将不胜感激。
def plpwfun(w,b):
plpw=-pi**2*(-w*exp(b + w)/(exp(b + w) + 1)**2 + (2*b + w)*exp(b + w)/(exp(b + w) + 1) - log(exp(b) + 1) + log(exp(b + w) + 1) + 1/(exp(b + w) + 1) - 1/(exp(b) + 1)) + 0.5*Integral(2*((-re(w**2*exp(2*b + 2*w*x)/(exp(b + w*x) + 1)**2) + re(w**2*exp(b + w*x)/(exp(b + w*x) + 1)))*(-Derivative(re(w**2*exp(2*b + 2*w*x)/(exp(b + w*x) + 1)**2), w) + Derivative(re(w**2*exp(b + w*x)/(exp(b + w*x) + 1)), w)) + (-im(w**2*exp(2*b + 2*w*x)/(exp(b + w*x) + 1)**2) + im(w**2*exp(b + w*x)/(exp(b + w*x) + 1)))*(-Derivative(im(w**2*exp(2*b + 2*w*x)/(exp(b + w*x) + 1)**2), w) + Derivative(im(w**2*exp(b + w*x)/(exp(b + w*x) + 1)), w)))*Abs(w**2*exp(b + w*x)/(exp(b + w*x) + 1) - w**2*exp(2*b + 2*w*x)/(exp(b + w*x) + 1)**2)*sign(w**2*exp(b + w*x)/(exp(b + w*x) + 1) - w**2*exp(2*b + 2*w*x)/(exp(b + w*x) + 1)**2)/(w**2*exp(b + w*x)/(exp(b + w*x) + 1) - w**2*exp(2*b + 2*w*x)/(exp(b + w*x) + 1)**2), (x, 0, 1))
return plpw
print(plpwfun(0,0))
我使用 sympy 输出作为我的梯度函数 (plpw,pwpb),但我无法将它们转换为 numpy 并进行计算。有什么办法可以解决吗?
【问题讨论】: