基于Desmos的欧拉法N体问题模拟

EtherformTM

前言

本文将以由实到虚的顺序以Desmos为PoC介绍欧拉法N体问题一步步的实现,最终效果详见Demo或如下Desmos嵌入页面。
不用RK4其实主要是因为技术力不够

一些给Desmos小白的啸提示
  1. 点击”Run”左侧的计时器以开始模拟
  2. 可在“属性”文件夹中修改如星体数量等数据
  3. 如果觉得表达式列表挡视野的话,可以点表达式列表右上角的双箭头将其收起

实现

可视元素

星体(“S”)

对于N体问题,首先需要有N个星体,即N个点并用S表示,具体数量应遵循自定义的原则,让用户自行调整。
首先应创建变量 用以保存用户输入的星体数量,同时键入 这一列表以备不时之需。此时Desmos会自动补全等差数列。

注意变量定义域

应注意为所有元素设定定义域(包括范围、滑块步长等),避免数学错误。
例:

谁家好人设置-1颗星啊你说对吧

注:由于Desmos限制列表长度最大为10000项,故星体数量不得超过100个,否则受力列表项数 将超过10000项(这一点会在之后提及)。设100真的不卡吗

此处的星体作为点阵当然需要设置坐标。

任务一:找到合适的方法表示S

笔者在编写此处时想到了以下方案:

很容易能够想到令 ,然而为每一项单独设置毕竟不现实,因而方案一pass。

综上,方案三成功 (无感情

星体属性(“m”,” “,” “)

作为恒星而非光子,星体总是有内禀质量,因而需要创建集合 保存每个星体的质量用于计算。m需提前赋值,此处不做赘述。如:

用以保存恒星运动过程中的速度分量,创建为空集即可,运行时会自动写入数据。

更多内容尚待完善~

  • 标题: 基于Desmos的欧拉法N体问题模拟
  • 作者: EtherformTM
  • 创建于 : 2026-07-06 08:08:57
  • 更新于 : 2026-08-22 07:45:44
  • 链接: https://etherform.dpdns.org/2026/07/06/n-body-problem-simulator/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论