如何用Mathematica计算三体问题?
来源:网络收集 点击: 时间:2024-03-10【导读】:
本经验讲解用数学软件Mathematica编写程序,计算三体问题轨迹,绘图以及导出Gif.工具/原料moreMathematica 11.0方法/步骤1/10分步阅读
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

注意事项
首先,确定三个星体的坐标分别用X1,Y1, X2,Y2 X3,Y3表示。
为保险起见,将这几个变量Remove.

然后设定三个星体的初始位置和初速度。

然后设置三个星体的质量M1,M2,M3, 万有引力常数G, 解算时间TMAX,
(还有绘图相关:动画的时间间隔DeltaTime, 绘图范围MyLTBR(就是上下左右的距离))

为了避免三个星体越跑越远,我们需要在质心系中观察。因此相对质心算出速度偏移,并依次减去。

定义三个星体的水平竖直两个方向上的受力。写成函数。

使用NDSolve,带入函数,带入初始条件,设置解算范围为0~TMAX, 计算轨迹X1,Y1, X2,Y2 X3,Y3。


数据计算到此完成,然后进入画图环节。
计算三个球体的显示大小。
从NDSolve的解算结果取出答案。

使用Graphics嵌套三个Disk画出三个圆点,然后Show函数结合ParametricPlot(轨迹图)以及Graphics里三个圆点。
最外面嵌套一个Table生成一个图片列表。


使用列表帧动画函数ListAnimate得到动画。


使用Export方法导出Gif。最终效果如下。



之所以先生成图片列表再用列表帧动画ListAnimate函数,而不直接使用Animate,一个是避免重复计算,另一个是避免卡顿。
MATHEMATICA版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_305572.html