求指数积分函数的反函数

Find an Inverse for the Exponential Integral function

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

ei(mx) = te^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

我更正了您的代码中的一些错误,以提供以下内容。您应该逐行将其与您的代码进行比较。

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 抱怨在第二次调用 plot 时提供给它的向量的长度不一样。