如何使用pylab绘制摆运动的相平面?

时间:2018-04-13 00:13:02

标签: python matplotlib ode

我的代码可用于绘制以下捕食者猎物模型:

  

dx / dt = x - xy,dy / dt = -y + xy

df2 <- plyr::ddply(index[,c("half_hour","values")], "half_hour", sum)

但我不知道如何使用这些函数绘制相位平面(使用streamplot)来模拟摆锤运动,定义为

  

d ^2θ/ dt ^ 2 =(-g / L)sin(θ)

如何使用matplotlib和pylab实现此模型以生成相平面?

1 个答案:

答案 0 :(得分:0)

你以同样的方式做到这一点,首先将其转换为一阶系统

thetadot = omega
omegadot = -g/L*sin(theta)

theta, omega重命名为x,y以确保其简洁性,然后继续执行:

g,L = 1,1
xvalues, yvalues = meshgrid(arange(-8, 8, 0.1), arange(-3, 3, 0.1))
xdot = yvalues
ydot = -g/L*sin(xvalues)
streamplot(xvalues, yvalues, xdot, ydot)
grid(); show()

给出了通常的阶段肖像

enter image description here