用一个变量解方程

时间:2019-12-17 11:04:06

标签: python numpy sympy equation

在下面的代码中,我试图在函数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

0 个答案:

没有答案