自己写 Kepler 方程代码时踩过不少坑,后来整理了这一份完整实现,跑得挺稳的,逻辑也清晰。用的是比较通用的 Newton-Raphson 方法,带了注释,看得懂也好改。

Newton-Raphson 的迭代思路你应该不陌生,核心就是通过当前点估算切线来逼近方程解。在求开普勒方程 E - e*sin(E) = M 的时候,这种方法挺好用,尤其 e 比较小的时候,收敛又快,误差也不大。

代码不长,结构还算清爽,主要分初始化、迭代求解、误差判断三块。还顺带加了点容错判断,避免死循环。如果你也在搞天体轨道计算,这段代码可以直接拿来跑一跑,省时间。

哦对了,配套我还整理了几篇不错的相关文章,像是 MATLAB 中的开普勒方程求解器,用欧拉和牛顿法都有讲,挺细,建议对照着看看。

如果你也在做 轨道力学CFD 模拟,可以翻翻下面这些资源,里面还有开源的 OpenFOAM 向量希尔半径 函数的优化版本,拓展一下思路也不错:

如果你也在写相关代码,可以直接改改参数复用结构,别从头来,省事。