我有一个程序,我必须找到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
答案 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也抱怨在第二次调用绘图时提供给它的向量长度不一样。