相画像非线性振荡器

问题描述

我需要在 E = 0.5 处获得系统的相图。

如果增加指定的时间间隔 t,则会弹出错误:“ODEintWarning: E​​xcess 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,beta)],t2)
x3 = result3[:,0]
v3 = result3[:,1]
plot(x3,v3)
xlabel('x')
ylabel('v')
xlim(-4,4)
ylim(-7,7)
grid()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)