求指数积分函数的反函数
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 时提供给它的向量的长度不一样。
我有一个程序,我必须在其中找到 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 时提供给它的向量的长度不一样。