我试图理解数量错误。
我使用的是pythonversion2.7.1和numpy和quantity包。
我已经发布了定义的变量和方程以及随后的错误。我试图生成一个数组,其中Teffpv的值随θ(th)而变化。有人能解释一下我为什么会犯错误吗?在
a = q.Quantity(0.2,'au').simplified
e = 0.2
r = q.Quantity(0.4,'Rsun').simplified # Radius of blackbody
t = q.Quantity(3500,'K').simplified #temperature for Teff of the star
al = 0.3
N = 100
th = np.linspace(0.,4*np.pi,N)
def d(a,e,th):
return a*(1-e**2)/(1+e*np.cos(th))
def Teffp(al,t,r,d):
return ((1.- al)**(1/4))*t*(r/d(a,e,th))**(1/2)
Teffpv = np.zeros(N) # make arrays to store results
for i in range(N-1):
Teffpv=Teffp(al,t,r,d(a,e,th[i]))
错误信息
^{pr2}$
您的代码有一些错误:
np.zeros(N)
初始化Teffpv
,也不需要使用循环。在Teffp
->;的公式中将d(a,e,th)
替换为d
,这解释了您的错误消息Teffp
函数中此代码应按您的要求执行:
注意:
我在这段代码中添加了Rsun单位的定义,否则我的quantitys包无法识别它。在
我不是天体物理学家,但我发现here;)
相关问题 更多 >
编程相关推荐