我正在尝试绘制此函数,但出现以下错误:
python3 Bound_state_energy
绑定状态能量:43:运行时警告:在真除法中遇到无效值 E=-(2hbar**2/meR2)*(Gamma1/Gamma2)(1/abs(m+phi))-hbarOmega(m+phi+s/2)
我知道这个错误已经在其他问题中得到了解决,但我找不到任何类似的情况,所以我仍然没有找到一个对男性有帮助的答案。下面是完整的代码:`
`import numpy as np
from scipy.special import gamma
#np.seterr(divide='ignore', invalid='ignore')
import matplotlib.pyplot as plt
from scipy.constants import pi
#constantes
hbar = 4.135667696e-15/2*pi
m_e = 0.51099895e6
s = -1
R = 5e-9
m = 0
g = 2.0012
phi = np.linspace(0, 1.0, 1000)
# Função que define a energia em função de phi
def energy_bound_state(phi,Omega):
Gamma1 = gamma(1+abs(m+phi))*(1/2*g*s*phi + abs(m+phi))
Gamma2 = gamma(1-abs(m+phi))*(1/2*g*s*phi - abs(m+phi))
E = -(2*hbar**2/m_e*R**2)*(Gamma1/Gamma2)**(1/abs(m+phi)) - hbar*Omega*(m+phi+s/2)
return E
for Omega in (0.85e9, 0.9e9, 0.95e9, 1.0e9):
plt.plot(phi, energy_bound_state(phi,Omega))
plt.show()
在一个数组中有一个零,它被用作除数
当您试图除以零时,此警告将在numpy中显示
在你的Gamma2中,数组开始
当除以-0时
编辑:
您可以忽略警告
或者,您可以决定零除发生时输出必须是什么,因此这取决于您希望如何处理此计算。可以在除以零的位置插入一个值,也可以从数组中删除这些值
正如您目前所拥有的,它只是在零除后将空值插入到结果数组中。这些只是警告,因此您的绘图应该仍然有效
查看数据和绘制图表的替代方法:
相关问题 更多 >
编程相关推荐