コンテンツにスキップ

solve_kepler_equation

このコンテンツはまだ日本語訳がありません。

Defined in: kepler.rs:70

fn solve_kepler_equation(mean_anomaly: f64, eccentricity: f64) -> f64

Solve Kepler’s equation M = E - e·sin(E) for eccentric anomaly E.

Newton-Raphson, kept inside a bracket that contains the root: at high eccentricity f' = 1 - e·cos(E) falls to 1 - e at periapsis, and near there an unguarded Newton step from E₀ = M is long enough to leave the interval and not come back. At e = 0.995, M = 0.4 the step is 4.64 rad, landing at E = 5.04 outside the bracket [-0.595, 1.395]. Bisecting instead of taking such a step converges for every eccentricity the signature accepts.

  • mean_anomaly - Mean anomaly M [rad]
  • eccentricity - Orbital eccentricity (0 ≤ e < 1)

Eccentric anomaly E [rad], within e of the reduced M.

The residual is evaluated at the periapsis nearest E, so how accurately it can be computed is set by its own magnitude rather than by the size of E. What that leaves is the spacing of f64 itself, which grows with E: a root just below is placed to ulp(2π) = 8.9e-16, one just above zero to far finer.