微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

相画像非线性振荡器

如何解决相画像非线性振荡器

我需要在 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 举报,一经查实,本站将立刻删除。