近期,根据作家刘慈欣同名科幻小说改编的电视剧《三体》热播,宏大的内容叙事、高燃硬核的科幻设定、危险幽深的宇宙观念......无一不令人热血澎湃,作为高中熬夜读小说的三体粉,笔者自然不会错过。

“三体”名称来源于“三体问题”,剧中借怪才数学家魏成之口对这一概念进行了解释,笔者高中时期对书中场景的漫天想象也随着剧中魏成的描述逐渐清晰。

剧照:魏成解释“三体问题”

本期,我们就从科学的角度了解一下三体问题,并基于MWORKS.Sysplorer对三体问题展开一些仿真工作。

1  三体问题

“什么是三体问题,科学家又是如何围绕这一课题展开研究的?”这是一个有着四百年历史的数学问题,其根源在于模拟“日-地-月”系统的失败尝试。1885年,学数学出身的瑞典国王奥斯卡二世赞助了一场有奖数学竞赛,竞赛的题目是4个数学难题,其中之一便是多体问题——求解太阳系的运动问题。这一难题从牛顿时代提出直到竞赛发布之时,在学术界始终无人能攻克。

实际上这是一个N体问题,即在三维空间中给定N个质点,如果在质点之间只有万有引力的作用,在给定初始位置和速度的条件下,它们会怎样运动。法国科学家亨利·庞加莱将对问题进行了简化,只考虑三个星体,这就是著名的“三体问题”

2  混沌系统

1887年,德国数学家Heinrich Bruns指出,寻找三体问题的通解注定是做无用功,只在特定条件下成立的特解才可能存在。依据这一思路,科学家们重新审视“三体问题”,找到了三类特解:拉格朗日点特解(提出者:欧拉和拉格朗日),布鲁克-赫农族特解(提出者:罗杰·布鲁克和米歇尔·赫农),以及“8”字形族特解(提出者:克里斯·摩尔)。2013年,贝尔格莱德大学的Milovan Šuvakov和Veljko Dmitrašinović两位科学家,利用计算机模拟从现有的特解出发,调整初始条件直到新类型的轨道能具体化,将特解总数增加到16类。

科学家们研究后发现,在给定的初始条件下,当时间趋于无穷时,几乎无法预测三体轨道的最终命运。这种对于轨道的长时间行为的不确定性,目前学界称之为混沌(chaos)现象。

由于三体问题没有显示解,即无法根据给定的时刻确定状态,因此科学家寻找特解也是基于数值算法,即根据当前时刻的状态递推下一时刻的状态。在这个递推过程中,由于计算机计算方式存在误差,因此递推的时间越长,误差会越大,可能会导致结果完全偏离。也就是说,初始值的细微差别可能会使得混沌系统数值求解产生完全不同的结果。

3  三体系统建模与仿真

同元软控自主研发的系统建模仿真环境MWORKS.Sysplorer具有完整的系统建模、编译分析、求解计算、后处理等功能,且编译求解内核达到国际先进水平。我们基于MWORKS.Sysplorer平台,利用天体引力场模型库快速建立三体运动模型,研究初值对混沌系统数值求解的影响。

首先,建立三体运动模型,有以下假设:

  • 不考虑天体形状,将天体均简化为质点;

  • 考虑引力场为质点引力场;

天体引力场模型库提供质点引力场、球谐引力场、多面体引力场模型,在此选用质点引力场模型,计算原理即为万有引力公式:

式中:

为天体受到的万有引力矢量;

为万有引力常数;

为中心天体质量;

为第二天体质量;

为第二天体相对中心天体的相对位置矢量;

为两天体中心距离;

根据三体之间的两两相互间作用力构建三体系统模型,如图1所示。

图1 三体系统模型

通过设置三个天体的质量、惯性系下初始位置、惯性系下初始速度,进行仿真,分析三个天体的运动轨迹。

与贝尔格莱德大学的Milovan Šuvakov和Veljko Dmitrašinović两位科学家研究路线相似,首先我们考虑一个特解情况,即三个天体质量相等、在直线上对称分布。

《三体》剧照

仿真的三个天体运行轨迹如图2所示,三个天体的运行轨迹形成首尾相连的“8”字形。

图2 8字形特解

我们考虑另一个特解情况,即三个天体质量相等、在空间中成三角形对称分布,仿真的三个天体运行轨迹如图3所示,三个天体运行轨迹接近一个圆。

图3 三角形特解

其他初始条件不变的情况下,我们增大三个天体的初始惯性系速度,系统仍在较长时间内稳定,仿真的三个天体运行轨迹如图4所示,三个天体运行轨迹形成椭圆。

图4 三角形特解

我们增大三个天体的质量差,设置惯性系下初始速度,经过反复尝试稳定的三个天体运行轨迹如图5所示。

图5 单恒星双行星特解

继续增大三个天体的质量差,设置初始速度,模拟“日-地-月”系统,经过反复尝试稳定的运行曲线三个天体运行轨迹如图6所示。

图6 日地月特解

经过仿真过程中的不断调试,笔者对三体问题的混沌性及计算机数值求解时初始值的重要性有了更深刻的认识。以下为调试过程中出现的多种三体不稳定状态曲线:

图7 不稳定解

在MWORKS中三体系统模型设置初始值的方式可直接通过设置状态变量的初值,选择三个天体的位置、速度为状态变量。例如图8为设置天体1的状态变量。

图8 设置天体1状态变量

设置天体1的初始位置和速度如图9所示。

图9 设置天体1初始位置和速度

【小贴士】在输入初值参数时,右侧提供“设置fixed属性”的小图钉,在未设定状态变量而又期望初始值设置生效时,非常有帮助。

4  小结

基于本篇文章我们了解到了三体问题的由来、发展和混沌现象,并基于MWORKS.Sysplorer针对三体问题的特定情况建立了系统模型进行仿真,验证了不同初始状态对三体运动状态的重大影响。理论上,通过“基于MWORKS.Sysplorer从现有特解出发进行仿真模拟,不断调试初始条件直到新类型的轨道能具体化”方法,我们也可以发现三体的特解,为三体问题的科学进步作出贡献。

感兴趣的小伙伴可以利用MWORKS.Sysplorer进行仿真计算,一起开展三体运动研究,解救三体人于水深火热之中~

三体运动——基于MWORKS.Sysplorer研究初值对混沌系统数值求解的影响相关推荐

  1. 基于MWORKS.Sysplorer的电子控制器应用案例——永磁同步电机FOC算法建模

    1  前言 MWORKS是面向数字工程的新一代科学计算与系统建模仿真平台,可提供机械.电子.液压.控制.热.信息等多领域统一建模仿真环境.经过同元持续攻关,全新推出的MWORKS.Sysplorer嵌 ...

  2. 技术干货|赌神摇骰子——基于MWORKS/Modelica的刚体动力学接触建模与仿真

    发哥摇骰子的这个名场面想必大家都不陌生吧,今天我们就借着摇骰子这个名场面向大家分享一些多体接触模型开发的建模机理和思路. 摇骰子是多个物体之间相互碰撞接触的物理过程.从机理角度看,该过程涉及多体动力学 ...

  3. android 加速度传感器测步数,基于加速度传感器的运动步数检测算法研究

    基于加速度传感器的运动步数检测算法研究 为解决人体运动过程中手腕摆动对步数检测干扰的影响,提出了一种区域峰值步数检测算法.该算法根据人体运动时的加速度信号特征,使用高斯滤波去除噪声对加速度信号的影响, ...

  4. 【运动学】基于matlab GUI三体运动模拟【含Matlab源码 871期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[运动学]基于matlab GUI三体运动模拟[含Matlab源码 871期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  5. MATLAB | 经典力学框架下的三体运动数值模拟软件

    经典力学框架下的三体运动数值模拟软件 1 背景说明 2 实验目的 3 基本原理及思路 4 成果展示 4.1 用户界面展示 4.2 所需文件 4.3 软件运行效果 4.3.1 不等质双星 4.3.2 近 ...

  6. 基于混沌系统的文本加密算法研究(二)——经典混沌映射

    基于混沌系统的文本加密算法研究(二)--经典混沌映射 前言 一.一维Logistic混沌映射 二.二维Henon混沌映射 三.三维Lorenz连续混沌映射 总结 代码 1.Logistic映射 2.H ...

  7. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第5章-基于骨干网络的多智能体系统群集运动与避障控制

    第4章 回到目录 第6章 第5章-基于骨干网络的多智能体系统群集运动与避障控制 5.1 研究背景 5.2 预备知识 5.2.1 问题描述 运动方程 (5.1) 5.2.2 流体力学基础 可压缩性 黏性 ...

  8. matlab模拟三体运动_从灯泡到超级计算机,如何模拟浩瀚星空?| 赛先生

    天文学家中有这样一群人,他们既不观星,也不刷公式,而是通过模拟来研究浩瀚星空.在星团.星系这样的恒星系统中,往往包含着上百万颗恒星,规模如此惊人的恒星系统该如何处理?本期"赛先生天文&quo ...

  9. 蔡氏电路matlab,基于MATLABSimulink的蔡氏电路研究(Simulink搭建仿真系统)

    基于MATLAB/Simulink 的蔡氏电路研究 陈晓娟1 夏增极2 朱瑞杰 3 (东北电力大学 信息工程学院 吉林 132012) 摘要:为了克服用硬件电路实现混沌信号的困难,本文采用MATLAB ...

最新文章

  1. [C#]非阻塞监听键盘输入
  2. ef mysql code first_[EF]vs15+ef6+mysql code first方式
  3. python 新建文件夹
  4. 【Qt】数据库实战(二)
  5. Tencent Blade team荣获小米安全年度最佳守护者
  6. oracle创建表空间blocksize,oracle表空间大小的限制和DB_BLOCK_SIZE的概念
  7. shared_ptr简介以及常见问题
  8. STM32H743+CubeMX-QSPI+DMA读取外部FLASH(W25Q128JVSQ)
  9. python 怎么调用 矩阵 第几行_python工厂第19层 多重列表1
  10. hdu 1421 搬寝室
  11. 游戏组件——Game类
  12. 修改 font的文本信息_C#窗体,文本框如何实现类似html的输入提示信息
  13. Hamcrest使用
  14. 什么是局域网?什么是广域网?CCNP是什么证书?电信能提供长途数据线路吗?
  15. 胡因梦-生命的不可思议
  16. python seo 采集内容_SEO如何处理采集内容(4)–转自{GoGo闯}
  17. 征途mysql启动不了_征途单机版架设中场景服务器启动失败?这是为什么?
  18. 如何在 vscode 中更换炫酷的背景图
  19. 克里斯蒂安贝尔_克里斯蒂安贝尔现身机场,身材瘦到认不出来,蝙蝠侠又开始减重了...
  20. 美拍视频怎么下载?美拍视频解析下载和保存工具

热门文章

  1. 字节跳动1/3员工不支持取消大小周!库克称iPhone将采用可回收材料生产;清华博士接亲被要求现场写代码|极客头条
  2. 2012年7月23日11:33:12
  3. wps打开时服务器不能响应,我的WPS不能启动了,双击打不开
  4. 用友U8CO接口开发方式之映射(二)
  5. 英国留学毕业论文标题部分怎么写?
  6. 人生太短,不要给自己贴上年龄标签
  7. 用 Python 代码自动抢火车票
  8. 歌曲用计算机弹出来网红英语歌,抖音里好听的英文歌
  9. 前端第三方授权登陆--飞书授权登陆
  10. 阿里fastjson的用法