三体运动的计算机模拟

WHISS

2021/12/14
背景

三体(three-body problem),天体力学中的基本力学模型。研究三个可视为质点的天体在相互之间万有引力作用下的运动规律问题。这三个天体的质量、初始位置和初始速度都是任意的。

在本文中,我们从三体运动的直观出发,利用计算机数值模拟三体运动。尽管我们知道对于此类混沌问题,任何微小的差异,比如数值误差,最终都将导致完全不同的结果,但对于某些特定构型,在一定时间内我们仍然可以得到稳定运行的系统,这与真实结果也是相似的。;另外,模拟这样的复杂系统本身也是有趣的事。

实现方法

基于matlab编写模拟程序,并输出运动的视频和轨迹。首先,在空间直角坐标系中,基于给定的初始条件,即三个质点的质量、位置、速度,计算每一时刻的万有引力相互作用,三个质点的加速度,得到下一时刻的位移,速度,以此按照固定的时间间隔推进,直至达到设置好的时间步。

程序有以下特点:

1.初始参数可以手动设置,也可以随机生成

2.利用随机生成初始参数,可以批量输出模拟结果,比如随机生成100个三 体系统,随机参数的范围可以通过修改定义的随机函数来限制。


3.自动生成视频并保存,生成视频的程序是单独的,可以修改视频参数,也可以修改为输出动态图片。

4.利用Matlab app designer,制作了具有简单UI界面的app,app的功能更多样使用也更加方便,比如加入了一键插入经典的模型参数等功能。但app仍在完善中,将在下面的源代码地址持续更新。



结果

下面以运动轨迹的方式给出一些有趣的结果。



两行星绕恒星圆周运动

两行星绕恒星圆周运动,恒星有位移。右图为左图继续发展,一颗行星逃逸

两行星绕恒星近似椭圆轨道运动,但轨道一直旋转

点击查看源代码:生成模型的主程序
点击查看源代码:计算质点距离的子程序
点击查看源代码:计算引力的子程序
点击查看源代码:输出视频的主程序