Python 在元组数组中计算圆周运动
我有一个项目要交给学校。 这个项目是关于基于随机运动的系统,我和我的同伴选择研究一个双摆组(运动不是随机的,而是混沌的)。 我们的研究问题是要调查系统是否能在任何一点上达到周期运动状态,以及在多长时间内会达到这种状态。 我的问题是,我们如何在一个由模型中的两个值对填充的数组中检测圆周运动。 阵列将像这样填充-(θ1,θ2)两个摆杆的两个角度。 其余的变量,如摆杆的长度或2个质量是已知的,因此从这些角度我们可以计算系统其余部分的状态。 每个数组元素是根据移动的时间添加的,每个数组元素之间的时间差为每秒0.05,因此每个数组元素的时间可以像n*0.05那样计算 我们可以很容易地从我们使用EJS开发的双摆模型导出数据对数组,并使用python或其他语言编写的脚本对其进行分析,只是我们不知道实现这一点的最佳方法是什么。Python 在元组数组中计算圆周运动,python,arrays,physics,Python,Arrays,Physics,我有一个项目要交给学校。 这个项目是关于基于随机运动的系统,我和我的同伴选择研究一个双摆组(运动不是随机的,而是混沌的)。 我们的研究问题是要调查系统是否能在任何一点上达到周期运动状态,以及在多长时间内会达到这种状态。 我的问题是,我们如何在一个由模型中的两个值对填充的数组中检测圆周运动。 阵列将像这样填充-(θ1,θ2)两个摆杆的两个角度。 其余的变量,如摆杆的长度或2个质量是已知的,因此从这些角度我们可以计算系统其余部分的状态。 每个数组元素是根据移动的时间添加的,每个数组元素之间的时间差为
希望解释清楚,谢谢你的帮助!:) 编辑:OP澄清了这个问题,并表示他正在搜索周期性运动,而不是
m1
或m2
翻转
下面的方法是指在双摆上对两个质量块中的一个进行翻转检测
翻转检测
检测钟摆翻转的时间点(或模拟时间片)取决于如何定义实际翻转。让摇锤的中心位于(0,0)
请注意,这只是一个粗略的想法,可以作为翻转检测更精确计算的起点
单摆箱
如果x
坐标改变其符号,而y
坐标为正,则可以认为单摆已翻转。这是因为我们知道,一旦它越过天顶,它将继续向同一方向运动
双摆箱
对于双摆的情况,翻转的定义并不那么简单
OP可能知道,双摆具有混沌运动,只能通过数值求解。也就是说,它的轨迹无法预测
(图片由100Miezekatzen拍摄自维基百科,根据知识共享协议授权)
对于m1
翻转的情况,与单摆情况大致相同。然而,在穿过天顶后,m1
仍然可以在某些条件下,通过m2
的力来强制反转其(角)运动方向。因此,仅检查x
坐标是否改变其符号是不够的。相反,我们必须检查较长的观测序列(从模拟期开始),并确保方向(即θ1不断减小或增大)在该期间保持不变。根据设置中的质量和长度,我们当然可以计算出θ1
的实际间隔,此时它仍然可以在正y
处重新穿过天顶,但搜索一个序列可能就足够了,其中所有这些都保持:
在同一方向上覆盖了大约m1
pi/2的角距离(四分之一圆)
的m1
坐标在整个序列上为正y
的m1
坐标的符号在序列中心正好改变一次x
m2
翻转的情况,我们必须定义在序列期间必须保持的类似条件,但始终与m1
相关。让我快速猜测一下:
为正m2.y-m1.y
仅在整个序列中增加或减少(相对于theta2-theta1
运动方向是恒定的)m1
在此序列中只更改符号一次(m2.x-m1.x
穿过天顶m2
)m1
- 。。。再来几杯
m1
或m2
下面的方法是指在双摆上对两个质量块中的一个进行翻转检测
翻转检测
检测钟摆翻转的时间点(或模拟时间片)取决于如何定义实际翻转。让摇锤的中心位于(0,0)
请注意,这只是一个粗略的想法,可以作为翻转检测更精确计算的起点
单摆箱
如果x
坐标改变其符号,而y
坐标为正,则可以认为单摆已翻转。这是因为我们知道,一旦它越过天顶,它将继续向同一方向运动
双摆箱
对于双摆的情况,翻转的定义并不那么简单
OP可能知道,双摆具有混沌运动,只能通过数值求解。也就是说,它的轨迹无法预测
(图片由100Miezekatzen拍摄自维基百科,根据知识共享协议授权)
对于m1
翻转的情况,与单摆情况大致相同。然而,在穿过天顶后,m1
仍然可以在某些条件下,通过m2
的力来强制反转其(角)运动方向。因此,仅检查x
坐标是否改变其符号是不够的。相反,我们