kepler2 function

double kepler2(
  1. double e,
  2. double m, {
  3. int places = 8,
})

Solves Kepler's equation by Newton-like iteration.

E₁ = E₀ + (M + e·sin(E₀) - E₀) / (1 - e·cos(E₀))

Converges over a wider range than kepler1.

Implementation

double kepler2(double e, double m, {int places = 8}) {
  return decimalPlaces(
    (e0) {
      final se = math.sin(e0);
      final ce = math.cos(e0);
      return e0 + (m + e * se - e0) / (1 - e * ce);
    },
    m,
    places: places,
    maxIterations: places,
  );
}