我写了一个 二体 模拟程序, 大伙来看看吧
项目地址 : https://github.com/kelin-xycs/Two-Body ,
项目只有一个 文件 TwoBody.html , 用 浏览器 打开 就可以 运行 了 。 用 Html 5 + javascript 写的, 现在的 浏览器 应该都可以运行 。
大家可以 修改 参数 试试 不同参数 下 的 二体 运动状况, 比如 两个 质点 的 初始位置, 初始速度, 质量, 万有引力常量 等等 。
可以看到, 二体运动 具有 周期性 。 除了 碰撞 和 逃逸, 二体运动 是 周期性 的 。
从 模拟 中 可以看到, 2 个 质点 相互环绕, 呈 周期性 。 相对于 第三方 参照系, 2 个 质点 在 相互环绕 的 同时, 2 个 质点 组成 的 二体系统 整体 上 还会 移动 。
如果 以 一个 质点 作为 参照系 观察 另一个 质点, 则 另一个 质点 的 轨迹 是 椭圆 。
相对于 第三方 参照系, 因为 二体系统 整体 上 在 移动, 所以 质点 的 轨迹 是 存在 进动 的 类椭圆 环线 。
二体 如果 没有 相撞 也没有 形成 双星系统 的 话, 会 各自 向 远方 飞去 。 当 时间 t 趋于 无穷 时, 两个 质点 的 速度 存在 极限, 两个 质点 的 速度 分别 趋于 各自的 极限 。 这称为 逃逸 。
这个 二体 模拟程序 是 按 直角坐标系 + 牛顿第二定律 的 模型 写 的, 课本上的 二体解法 是 用 极坐标 + 质心系 + 约化质量 + 机械能守恒(动能势能守恒) 解 的 。
程序 本身 也 体现 了 二体 在 直角坐标系 + 牛顿第二定律 下 的 微积分 模型,
大家 可以 想一下, 二体 在 直角坐标系 + 牛顿第二定律 下 的 微分方程 能不能 求解, 或者说, 能不能 推导出 积分 的 代数 表达式 。
为什么 要 研究 二体 ?
研究 二体 的 意义 是 , 二体 是 最基本 的 一个 动力学 问题, 研究 二体 可以 认识 数学 在 物理学 中 的 能力 和 地位 。
更简单 的 一种 二体 是 用 弹簧 把 两个 质点 连起来 , 拉住 两个 质点, 把 弹簧 拉长 一段 距离, 松开质点, 让 质点 自由运动 。
当然 , 质点 可以有 初始速度 。
弹簧 的 弹力 和 弹簧拉伸长度 成 正比, 比 万有引力 的 平方反比 简单 。 但 弹簧二体 的 微分方程 能否 求解 ?
再简化一点, 两个 质点 在 一条直线 上 运动, 弹簧 也 在 这条 直线 上, 这样 问题 就 简化为 一维 的, 微分方程 能否 求解 ?
如果 弹簧 上 只有一个 质点, 这就是 简谐振动, 位移 和 时间 的 函数 是一个 正弦函数, 这就是 简谐运动 的 微分方程 的 解, 也就是说, 当 弹簧 上的 质点 只有一个, 且 沿 弹簧 所在的 直线 自由运动 时, 这个 问题 的 微分方程 是 可以解出来的, 这 算是 “一体” ?
但是, 当 弹簧 上 的 质点 变成 2 个, 虽然 仍然 沿 弹簧 所在的 直线 自由运动, 是 一维问题, 但此时 微分方程 从 一个方程 变成了 二个方程 的 方程组, 这个 方程组 能否 求解 ?