我是Python新手,我正在绘制能量与时间的关系图。我想用不同的epsilon值绘制几个图,例如epsl=[0,0.3,0.02,0.05]。有没有一种方法可以将不同的epsilon值列表传递给odeint并绘制它们的图形?下面的代码显示epsl的一个值为0.05。你知道吗
def position(x,t, epsl):
dx = np.zeros(2)
# E(t) = 1/2mv^2 + 1/2kx^2
# E(t)_bar = x_bar^2 + v_bar^2
ko = 1
omega = 2
k = ko*(1-epsl*np.cos(omega*t))
dx[0] = x[1]
dx[1] = -k*x[0]
return dx
# initial conditions
ic=[1,1]
# make a list for epsl values
epsl = 0.05
#time points
t = np.linspace(0, 200, 100000)
#solve ODE
ksoln = odeint(position, ic, t, args=(epsl,))
# Energy
Kenergy=ksoln[:,0]**2+ksoln[:,1]**2
plt.plot(t, Kenergy)
plt.xlabel('t')
plt.title('Energy')
plt.show()
可以在一个绘图上绘制多条线。尝试以下操作:
相关问题 更多 >
编程相关推荐