我正在尝试使用模型函数重现一些数据。我用Python2
和Python3
检查了输出,结果明显不同。
我是在Jupyter
内完成的,而且是在.py
来源下完成的,情况相同。
我也收到以下警告:
RuntimeWarning:在double_scalars中遇到无效的值
精度是精度问题吗?
非常感谢!
def r_diff(en):
return np.sqrt(4*D_0*pow(en,delta)*(pulsar_ch_age[i]-t_0)*conv_factor_yr_to_sec*(1 - pow( 1 - en/E_max[i], 1-delta))/((1-delta)*(en/E_max[i])))
def J_e(E):
if E > E_max[i] or r_diff(E)<r_kpc[i]:
return 0
return (Q_0_GeV_ch[i] / (pow(pi,3/2) * pow(r_diff(E),3)) * pow(E,-gamma) * pow(1 - E/E_max[i],gamma-2) * np.exp( - E /((1-E/E_max[i]) * E_c) ) * np.exp( - pow( r[i]/r_diff(E) ,2)))*(c/4*pi)
j_E_e = [J_e(x) for x in E_e]
print j_E_e
RuntimeWarning: invalid value encountered in double_scalars