【发布时间】:2017-12-13 15:40:52
【问题描述】:
我在让 sympy 模块评估定积分时遇到了一些麻烦。 Equation 当我尝试运行以下代码时,程序无法完成。问题似乎来自积分边界包含方程中的变量这一事实。它一直在运行,并且永远无法解决方程式。我能够通过使用不同的界限来解决方程,但这不是我想要的。如果您有任何建议或提示,我将很高兴听到。感谢您的帮助。
import sympy
import numpy as np
from scipy.integrate import quad
import matplotlib.pyplot as plt
sympy.init_printing()
Q, eta, phi, kappa, lamb, beta, T0, T1, deltaT, T = sympy.symbols('Q eta phi kappa lamb beta T0 T1 deltaT T', real=True)
integrand = sympy.integrate(eta**(lamb*beta-1)*sympy.exp(-eta**2), (eta,0,eta))
T = T0 + deltaT*integrand
fT = sympy.lambdify((T0,T1,eta,lamb,beta), T, 'numpy')
【问题讨论】:
-
输出是什么?什么界限打破了它?
-
你的符号有缺陷。积分界和积分变量不要使用相同的符号。
-
Prith,我正在尝试使用来自this 方程的 sympy 来创建一个可调用函数。打破它的界限是方程所要求的积分界限中的 eta。 Hannebambel,您提到我不应该使用相同的符号进行积分,但我试图复制的方程确实使用相同的符号表示积分界和积分变量。
-
是的,我已经看到了这个等式,但一开始就很糟糕。想象一下,我想计算 T(2*eta)。 2 会出现在右侧的什么位置?自然会期望它出现在右侧的每个 eta 之前。但这根本不会改变积分,所以 T(eta)=T(2*eta)...
-
啊,我明白你的意思了。好吧,我会试一试。感谢您的帮助!
标签: python numpy integration sympy