广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    如何用Mathematica计算三体问题?

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

    首先,确定三个星体的坐标分别用X1,Y1, X2,Y2 X3,Y3表示。

    为保险起见,将这几个变量Remove.

    2/10

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

    3/10

    然后设置三个星体的质量M1,M2,M3, 万有引力常数G, 解算时间TMAX,

    (还有绘图相关:动画的时间间隔DeltaTime, 绘图范围MyLTBR(就是上下左右的距离))

    4/10

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

    5/10

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

    6/10

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

    7/10

    数据计算到此完成,然后进入画图环节。

    计算三个球体的显示大小。

    从NDSolve的解算结果取出答案。

    8/10

    使用Graphics嵌套三个Disk画出三个圆点,然后Show函数结合ParametricPlot(轨迹图)以及Graphics里三个圆点。

    最外面嵌套一个Table生成一个图片列表。

    9/10

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

    10/10

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

    注意事项

    之所以先生成图片列表再用列表帧动画ListAnimate函数,而不直接使用Animate,一个是避免重复计算,另一个是避免卡顿。

    MATHEMATICA
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_305572.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-07 06:59:47  耗时:0.028
    0.0285s