在python中定义一个集成函数
我的代码是:在python中定义一个集成函数,python,function,integration,Python,Function,Integration,我的代码是: def A_GW_onelevel(nw): G4=1.0/(nw-0.001j-(x**2/(nw-x**2/w_b+w_b-0.001j))) return nw*(1.0/(math.pi))*abs(G4.imag) def TotalEnergy_GW_onelevel(x): GW,err=quad(A_GW_onelevel,-4.0,0.0) return GW for x in (0.1*i for i in xrange(40)
def A_GW_onelevel(nw):
G4=1.0/(nw-0.001j-(x**2/(nw-x**2/w_b+w_b-0.001j)))
return nw*(1.0/(math.pi))*abs(G4.imag)
def TotalEnergy_GW_onelevel(x):
GW,err=quad(A_GW_onelevel,-4.0,0.0)
return GW
for x in (0.1*i for i in xrange(40)):
print TotalEnergy_GW_onelevel(x)
plot(x, TotalEnergy_GW_onelevel(x))
show()
我要做的是绘制函数TotalEnergy\u GW\u onelevelex=\int dnw A\u GW\u onelevelnw
但是这个代码确实有效。我尝试了其他方法,但仍然找不到正确的方法。我刚开始做编程工作
它给出了正确的总能量X值。但它没有策划任何事情。在绘图中,除了两个轴之外,没有其他东西。但此代码确实有效。那么问题是什么呢?:-如果代码不起作用,您需要告诉我们它是如何起作用的。它会引发异常吗?您是否看到不正确的值?你希望看到什么?@Martijn Pieters好吧,我发现了一些错误。quad将提供两个输出。集成结果和错误。我们应该只取积分结果,这样在绘图中x和y的尺寸将是相同的。但仍然没有给我正确的计划。图上除了两个轴外没有其他内容……您可以先添加一些打印语句,以便查看函数为给定输入生成的输出。@Martijn Pieters是的,但实际上,TotalEnergy_GW_onelevelx值是正确的……您可能需要打开“保持”进行打印,因为你正在循环和绘制许多单独的点。或者你可以一次计算出所有的值,然后画出向量。非常感谢。当我在编程的时候,我需要在思考的方式上学到很多。。。我需要学习如何使我的代码更快、更高效。
X = [0.1*i for i in xrange(40)]
Y = [TotalEnergy_GW_onelevel(x) for x in X]
plot(X,Y)