问题描述
我正在尝试为四阶自治非线性动力学系统制作一个分叉图。系统如下。
我正在尝试通过使用scipy的odeint函数来解决此系统。我正在尝试绘制m vs x。我已经成功集成了系统,但无法控制m的值。这是我的代码
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
k,omg = 0.6,0.2
def model(X,t):
"""The IAW equations"""
x,y,z,w = X
alpha = ((omg**2-1)*k**2 - 2*m*k +1)/k**4
delt = (2*m*omg**2)/k**5
dx = y
dy = z
dz = w
dw = -(alpha*k**2 + 2*x)*z/k**2 -2*y**2/k**2 - (omg**2*x-delt*k**4)*x/k**4
return (dx,dy,dz,dw)
t = np.linspace(0,2000,50)
ys = []
ms = np.linspace(0,1.2,100)
for m in ms:
x0 = [0.03,0]
xs=odeint(model,x0,t)
for i in range (500):
x = xs[:,0]
for i in range(50):
x = xs[:,0]
#x = np.array(x)
ys.append([m,x])
print(x)
ys = np.array(ys)
print(ys[:,1])
plt.plot(ys[:,0],ys[:,1],'r.',markersize=0.05)
plt.xlabel('$\mu$',fontsize=15)
plt.ylabel('x',fontsize=15)
plt.tick_params(labelsize=15)
plt.show()
如果有人对为什么它不起作用有任何想法,请告诉我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)