我需要在 E = 0.5 处获得系统的相图。
如果增加指定的时间间隔 t,则会弹出错误:“ODEintWarning: Excess work done on this call(可能是错误的 Dfun 类型)。运行 full_output = 1 以获取定量信息。warnings.warn(warning_msg, ODEintWarning )”,如何处理? [1]:https://i.stack.imgur.com/rCFbJ.png [2]:https://i.stack.imgur.com/mGdBV.png
#E=0.5
t2=linspace(-1,1,1000)
m=1
k=4
beta=1
x0=-sqrt(8)
def v0(x0,E0,k,m,beta):
v1=np.sqrt((2*(E0-k*x0**2/2+beta*x0**4/4))/m)
return v1
def f(y,t):
x,v = y
return [v, (-k*x+(beta*x**3))/m]
result3 = odeint(f,[x0,v0(x0,0.5,k,m,beta)],t2)
x3 = result3[:,0]
v3 = result3[:,1]
plot(x3,v3)
xlabel('x')
ylabel('v')
xlim(-4,4)
ylim(-7,7)
grid()