Вот что я пытался построить полу- закон Планка , основанный на изменениях температуры и расстояния следующим образом.
import numpy as np
k = 1.381*np.power(10,-23, dtype=np.float)
c = 3*np.power(10,8)
h = 6.626*np.power(10,-34, dtype=np.float)
l = 3*np.power(10,-6, dtype=np.float)
d_lower = 16*np.power(10,4)
d_upper = 2*np.power(10,6)
t_lower = 740
t_upper = 5200
d = np.arange(d_lower,d_upper,100)
t = np.arange(t_lower,t_upper,10)
D,T = np.meshgrid(d, t)
I = (2*h*np.power(c,2))/(np.power(D,2)*np.power(l,5)*(np.exp((h*c)/(l*k*T))-1))
Интерпретатор возвращает следующую ошибку:
RuntimeWarning: divide by zero encountered in true_divide
I = (2*h*np.power(c,2))/(np.power(D,2)*np.power(l,5)*(np.exp((h*c)/(l*k*T))-1))
Я не должен был встречаться с делением на ноль, поскольку значения T
даны в Кельвинах, поэтому np.exp((h*c)/(l*k*T))-1
не может стать нулем.
Что здесь не так?!
Мои версии на python и numpy - 3.7.0
и 1.15.4
соответственно.