问题描述
我想生成系统的相图:
x'= x(y-1)和y'= 4-y ^ 2-x ^ 2
下面的代码是到目前为止我尝试过的。我的问题是ics和持续时间线,每添加更多点,就会出现红色错误,该错误将不会显示相像的输出。
import numpy as np
from matplotlib import pyplot as plt
from scipy.integrate import odeint
# Define vector field
def vField(x,t):
u = x[0]*(x[1]-1)
v = 4-(x[0])**2-(x[1])**2
return [u,v]
# Plot vector field
X,Y = np.mgrid[-np.pi:np.pi:-30j,-6:6:30j]
U,V = vField([X,Y],0)
fig,ax = plt.subplots(figsize=(10,10))
ax.quiver(X,Y,U,V)
ics = [[2,4],[2,0],[1,[-2,[-1,1],-1]]
durations = [[0,[0,8],12],12]]
vcolors = plt.cm.autumn_r(np.linspace(0.5,1.,len(ics))) # colors for each trajectory
# plot trajectories
for i,ic in enumerate(ics):
t = np.linspace(durations[i][0],durations[i][1],100)
x = odeint(vField,ic,t)
ax.plot(x[:,x[:,color=vcolors[i],label='X0=(%.f,%.f)' % (ic[0],ic[1]) )
ic_x = [ic[0] for ic in ics]
ic_y = [ic[1] for ic in ics]
ax.scatter(ic_x,ic_y,color='blue',s=20)
plt.xlabel('x')
plt.ylabel('y')
plt.xlim(-3.1,3.1)
plt.ylim(-6,6)
plt.legend()
这是我从上面的python代码中获得的。我该如何完成此工作并找到其他要使用的点,以便获得最终阶段的肖像?预先谢谢你
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)