找到指数积分函数的反函数

时间:2016-12-16 12:16:00

标签: python function exponential

我有一个程序,我必须找到x。 但我必须使用特殊函数Ei - 指数积分,x在Ei的参数内。 所以Python没有认识到它。

  

ei(m x)= t e ^ r + ei(c)

这里RHS与m一起是常数。 我想找到x的值,然后将其附加到列表中。但Python无法做到这一点。

from scipy import special
import matplotlib
import matplotlib.pyplot as plt
import numpy as np

Y = []
X = np.arange(0,10,.1)
for i in X:
    y = scipy.special.expi(i)
    Y.append(y)

N_0 = 2
t_f = 100
r = 2
K = 100
N_t = [N_0,]
t = np.arange(0,100,1)
for i in t:
    l = i*e**r + scipy.special.expi(r*N_t[i]/K)
    N_t.append(l)
plt.plot(X,Y)
plt.plot(t,N_t)
plt.show

1 个答案:

答案 0 :(得分:1)

我已经纠正了您的代码中的一些错误,以便提供以下信息。你应该逐行将它与你的代码进行比较。

from scipy.special import expi
import matplotlib
import matplotlib.pyplot as plt
import numpy as np

Y = []
X = np.arange(0,10,.1)
for i in X:
    y = expi(i)
    Y.append(y)

N_0 = 2
t_f = 100
r = 2
K = 100
N_t = [N_0,]
t = np.arange(0,100,1)
for i in t:
    l = i*np.exp(r) + expi(r*N_t[i]/K)
    N_t.append(l)
plt.plot(X,Y)
plt.plot(t,N_t)
plt.show()

然而,我注意到仍有一个可能的缺陷,无法解决。你将X和t一起绘制在最后的同一个图形中,X范围超过0到10,t范围超过0到100.这就是你想要的吗?

matplotlib也抱怨在第二次调用绘图时提供给它的向量长度不一样。