Я пытаюсь воспроизвести некоторые данные с помощью модельной функции. Я проверил вывод как с 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