用
python
模拟三体运动
知乎不让传动图,大家可以移步我的博客
wend.blog.ustc.edu.cn,
上面有动图大四就要有大四的样子,
最近闲来无事,想起来以前一直想做的一件事:模拟三体运
动。正好可以练一练
python
。
小试牛刀先从模拟二维正方
形中,弹性小球的运动轨迹入手,熟悉相关操作。物理情景
很简单,就是弹性小球位于正方形空间中,有某初速度,未
与边界碰撞时进行匀速直线运动,与边界碰撞时发生弹性碰
撞。模拟思路很简单,在
t
时间,位于
r
处,取小时间微元
dt
,认为小球在此微元内进行匀速直线运动,计算
t+dt
时刻
的位置和速度,继续迭代。代码如下
import numpy as
npimport matplotlib.pyplot as pltimport matplotlib.animation
as animation def simData(): dt = 0.0001 d1 = 0.25 d2 =
0.25 v1 = 12 v2 = 5 while True: d1+=v1*dt d2+=v2*dt if
(d1>1) or (d11) or (d2
无限模拟下去,可以发现如果小球的
初始条件不是那么特殊,小球最终将遍历正方形中所有点。
这里吐槽一下
python
的动画模块,太不直观,帮助简直不
知所云,在用动画展示数据这方面,
mathematica
就做的非
常好。知乎不能发动图,所以我将图片存放在请输入提取码
访问密码
b684
可以下载
模拟三体为了简单,假设三个物体质量相同,有着相同的