我的机械网

搜索
查看: 8945|回复: 61

用计算机根据已知的物理定律模拟三体运动会怎么样?

  [复制链接]

0

主题

0

回帖

-1

积分

限制会员

积分
-1
发表于 2017-3-17 20:36:56 | |阅读模式
各位网友请注意:我的机械网所有附件、百度网盘提取码、机械资料、PDF资料、压缩包文件均需要回帖后才能下载!
为什么??

0

主题

0

回帖

-1

积分

限制会员

积分
-1
发表于 2017-3-17 21:36:58 |
2013年, Milovan Suvakov 和 V. Dmitrasinovic 发表在Phys. Rev. Lett. 上一篇题目为《Three Classes of Newtonian Three-Body Planar Periodic Orbits》的文章给出了这方面最新的进展。
他们的贡献在于不仅找到了3体问题新的13个解,还提出了新的方法给这些轨道分类。Science对这个工作的报道如下[1]:
"shape-sphere"是他们提出的对轨道进行分类的新方法。“figure eight” 和 “yarn” 是类型的名字。

1. Wolfram 公司的网页给出了不同类型轨道的动画演示图,点击下面这个网页:
http://demonstrations.wolfram.com/RecentlyDiscoveredPeriodicSolutionsOfTheThreeBodyProblem/

或是这个网页:
The Suvakov-Dmitrasinovic Suite

比如Yarn 类型的轨道动画截图:
。。。

2. 文章内容可以看[2],或是点击下面这个网页:
http://suki.ipb.ac.rs/3body/

3. 一些关于这个内容的讨论:
http://physics.stackexchange.com/questions/83633/how-trustworthy-are-numerically-obtained-periodic-solutions-to-the-three-body-pr

References:
[1] http://news.sciencemag.org/physics/2013/03/physicists-discover-whopping-13-new-solutions-three-body-problem
[2] Milovan Suvakov and V. Dmitrasinovic, Phys. Rev. Lett. 110, 114301 (2013)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 一键登录:

x

0

主题

0

回帖

0

积分

小白会员

Rank: 1

积分
0
发表于 2017-3-17 21:31:05 |
首先说明:最终答案都会淹没在浮点误差的海洋中…

大刘书里所说的“进化算法”按照其说明其实是遗传算法,这里先不讨论,因为我们的目的是模拟移动过程而非求解稳态,这里用不上。

那么仿真需要什么数据?首先假设球体密度均匀(或者是质心在球心)。如果能够有个可符号计算的计算式,那么三体问题就成了可解问题。因此我们对计算中的积分只能简单粗暴地用尽可能小的时间片段做近似,认为在一个极短的时间片段内三球至少受力无变化,仅位置速度变化。这个仿真需要的参赛有:
* 初始位置
* 初始速度
* 球体质量
* 球体半径(判断碰撞)
* 时间

由于计算机仿真其实都是离散的,因此最重要的参数之一时间只能离散计算。假设我们使用的浮点数为64位浮点,其中有52位为小数计数,11位为10进制指数,1位是符号位,则精确度也就1/2^52=1/4,503,599,627,370,496。为了方便估(tou)算(lan),就看做5e-15的精度咯…于是迭代起来最小时间间隔就这个数了。

这个误差有什么影响?由于这个玩意是个混沌模型,每次引入误差都会极大的改变结果;并且由于实际上的连续运动被离散了,无限状态也变成了有限状态,因而只能断言:这个仿真只在不太长(天文学尺度)范围内有一定准确度。随着时间增加,误差将会指数上涨,也就失去了仿真的意义。

可以预言的是,在这样的仿真里,无论任何初值条件,最终都会落到三个球撞到一起这个稳态中去,只是时间问题罢了。因为这是能量最低的稳态,其余任何稳态最终都会在误差作用下跳出局部极值范围。

我知道光说不给程序不好…可是我真的很懒。如果很多人关心真跑起来会怎样这种蛋疼的问题,我可以写一个小程序,丢到sae之类的玩意上给大家看看结果;感兴趣的人不多就还是容许我偷个懒吧!

0

主题

0

回帖

0

积分

小白会员

Rank: 1

积分
0
发表于 2017-3-17 21:25:07 |
先说结论:这个模拟可以产生出一个确定的结果,但如果模拟的时间跨度比较长的话,这个结果将逐渐偏离实验结果,越来越远最后变得毫无关系,无论采用什么样的算法和计算机。

大家可能听说过,三体问题是混沌的。不过这个“混沌”的意思并不是说不可预测或者混乱之类的,而是有明确的数学意义:

对于服从同样物理定律的系统,如果我们有两个稍微不同的初始条件,它们的差别是E(0),那么经过时间t之后,它们之间的差别将变成:
E(t) ~ E(0)*exp(L*t)
其中L是这个系统决定的常数,称为李雅普诺夫指数。对于混沌的系统,L是一个正数。这个关系说明,初始条件的微小差别将随着时间的推移被指数放大。这就是所谓的初值敏感性。

这个差别可能来自你对系统观察的误差,也可能来自计算机的舍入误差或者算法带来的误差。无论是哪一种情况,误差都将被无限放大并最后淹没“真实”的结果。

这就是为什么长期天气预报不可靠。算一个短的时间(几天)可以挺准,而且随着科技发展(初值误差减小,模型改进,算法改进)可以越算越长,但是总是逃不出指数增长的误差。

0

主题

0

回帖

-2

积分

限制会员

积分
-2
发表于 2017-3-17 21:19:05 |
完全相同的初始条件,不同的小数点精度,会得到完全不同的结果。比如运算精确到小数点后十位或者十一位,结果最终会完全不同。

0

主题

0

回帖

-1

积分

限制会员

积分
-1
发表于 2017-3-17 21:13:52 |
占个坑,晚上回去答
多图
-----------------------------
简单的模拟 里面的一些名词可能和《三体》小说里面的名词有关。含有初始参数 当然可以自己修改 不过可能会得到奇怪的结果。。。。



两颗星星转啊转,最后“砰”的一下就撞到一起了~


三个星星的运动轨迹形成一个八字形


两个行星绕一颗恒星转。
行星在不同的时间分别被不同的恒星捕获一段时间。。




最后一个




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 一键登录:

x

0

主题

0

回帖

0

积分

小白会员

Rank: 1

积分
0
发表于 2017-3-17 21:08:02 |

发个我写的三体模型程序:三体三体

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 一键登录:

x

0

主题

0

回帖

-1

积分

限制会员

积分
-1
发表于 2017-3-17 21:01:14 |
Gravity

用 HTML5 Canvas 画的。
很容易相撞。试了半天发现让其中两个近一点做双星运动,另外一个离它们远一点绕着它们转(又虐狗),这样就能稳定一段时间。
不过互相的影响总会放大的,最后还是会撞起来。我想如果在相撞的时候让它们回弹,应该会更有趣。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 一键登录:

x

0

主题

0

回帖

0

积分

小白会员

Rank: 1

积分
0
发表于 2017-3-17 20:55:27 |
参考Berkeley CS 61B : homework 1 NBody

0

主题

0

回帖

-1

积分

限制会员

积分
-1
发表于 2017-3-17 20:49:11 |
我记得当年人人上有人写过一个沙盘,跑出了N种结果,次次不同,题主可以搜一下
快速回复 返回顶部 返回列表