我写了一个 二体 模拟程序, 大伙来看看吧
Posted ksongking
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我写了一个 二体 模拟程序, 大伙来看看吧相关的知识,希望对你有一定的参考价值。
项目地址 : https://github.com/kelin-xycs/Two-Body ,
项目只有一个 文件 TwoBody.html , 用 浏览器 打开 就可以 运行 了 。 用 Html 5 + javascript 写的, 现在的 浏览器 应该都可以运行 。
大家可以 修改 参数 试试 不同参数 下 的 二体 运动状况, 比如 两个 质点 的 初始位置, 初始速度, 质量, 万有引力常量 等等 。
可以发现, 二体 也是 没有 周期性解 的, 这一点 和 三体 一样 。 二体 和 三体 有 一些 周期性 的 特例, 但是 大部分 情况 是 非周期性 的 。
不过 二体 如果 没有 相撞 也没有 形成 双星系统 的 话, 通常 会 相背而行, 各自 向 远方 飞去 。 当 时间 t 趋于 无穷 时, 两个 质点 的 速度 存在 极限, 两个 质点 的 速度 分别 趋于 各自的 极限 。 不知 这种情况 算不算 周期性 ?
要 形成 稳定 的 双星系统, 依赖于 下面 2 个 条件 的 任意一个 :
1 一个 质点 的 质量 远远 大于 另一个 质点, 比如 太阳 和 地球
2 特定 的 初始条件, 比如 地球 和 月球
月球直径大约是地球的四分之一,质量大约是地球的八十一分之一 , 地球 的 质量 并不 “远远大于” 月球 质量, 这种情况下, 地球 和 月球 能成为 双星系统, 需要 特定 的 初始条件 。
这个 二体 模拟程序 是 按 直角坐标系 + 牛顿第二定律 的 模型 写 的, 课本上的 二体解法 是 用 极坐标 + 质心系 + 约化质量 + 机械能守恒(动能势能守恒) 解 的 。
程序 本身 也 体现 了 二体 在 直角坐标系 + 牛顿第二定律 下 的 微积分 模型,
大家 可以 想一下, 二体 在 直角坐标系 + 牛顿第二定律 下 的 微分方程 能不能 求解, 或者说, 能不能 推导出 积分 的 代数 表达式 。
为什么 要 研究 二体 ?
研究 二体 的 意义 是 , 二体 是 最基本 的 一个 动力学 问题, 研究 二体 可以 认识 数学 在 物理学 中 的 能力 和 地位 。
更简单 的 一种 二体 是 用 弹簧 把 两个 质点 连起来 , 拉住 两个 质点, 把 弹簧 拉长 一段 距离, 松开质点, 让 质点 自由运动 。
当然 , 质点 可以有 初始速度 。
弹簧 的 弹力 和 弹簧拉伸长度 成 正比, 比 万有引力 的 平方反比 简单 。 但 弹簧二体 的 微分方程 能否 求解 ?
再简化一点, 两个 质点 在 一条直线 上 运动, 弹簧 也 在 这条 直线 上, 这样 问题 就 简化为 一维 的, 微分方程 能否 求解 ?
如果 弹簧 上 只有一个 质点, 这就是 简谐振动, 位移 和 时间 的 函数 是一个 正弦函数, 这就是 简谐运动 的 微分方程 的 解, 也就是说, 当 弹簧 上的 质点 只有一个, 且 沿 弹簧 所在的 直线 自由运动 时, 这个 问题 的 微分方程 是 可以解出来的, 这 算是 “一体” ?
但是, 当 弹簧 上 的 质点 变成 2 个, 虽然 仍然 沿 弹簧 所在的 直线 自由运动, 是 一维问题, 但此时 微分方程 从 一个方程 变成了 二个方程 的 方程组, 这个 方程组 能否 求解 ?
以上是关于我写了一个 二体 模拟程序, 大伙来看看吧的主要内容,如果未能解决你的问题,请参考以下文章
我写了个下载程序,用Java写的,但是写完以后发现下载大文件的时候报错,内存溢出,能看看是哪的问题么?