在下面的代码中,我试图在函数Teq
中查找B(x,Teq)
的值。
我只需要注意代码是正确的,整个for循环等等。但是我只添加了solve equation
的一部分,它不起作用只是向我展示了[] [] [] [] [] [] [] ....
我不明白我为什么要得到这个。
该怎么做。
有什么帮助吗?
dfimppara = pd.read_csv('C:/Users....csv', sep=",")
dfimporto = pd.read_csv('C:/Users....csv', sep=",")
dfpara=dfimppara.values
dforto=dfimporto.values
Tpara=dfpara[0,4:len(dfpara[0,:])]
Torto=dforto[0,4:len(dforto[0,:])]
Jup = dfpara[:,1]
Jlw = dfpara[:,2]
def B(x,Teq):
ee = exp(h * (dfimppara.iloc[x, 1] * 115e9)/ (KB * Teq)) - 1
return ((2 * h * ((dfimppara.iloc[x, 1] * 115e9 ) ** 3)/c**2) * (ee**(-1)))
def Unu(x,z,test):
TCMB = 2.7 * (1 + z)
ee = exp(h * (dfimppara.iloc[x, 1] * 115e9)/ (KB * TCMB)) - 1
return ((8 * pi * h * ((dfimppara.iloc[x, 1] * 115e9 ) ** 3)/c**3) * pow(ee, -1)) * test
from sympy import Symbol, Eq, solve
UU=[1e-25,1e-24,1e-23,1e-22,1e-21,1e-20,1e-19]
for ng in np.arange(100,200,500):
for z in np.arange(1, 2):
for xx in range(1, 819):
for uff in range (len(UU)):
Ju = dfimppara.iloc[xx, 1]
Jl = dfimppara.iloc[xx, 2]
lim = Ju - Jl
if lim > 1:
pass
else:
if Ju<2:
Teq = Symbol('Teq')
an = solve(UU[uff] + Unu(xx,z,1) - B(xx,Teq), 0)
print(an)
else:
pass