# How to solve Kepler's equation $M=E-\varepsilon \sin E$ for $E$?

I'm trying to create a program to solve a set of Kepler's Equation and I cannot isolate the single variable to use the expression in my program.

The Kepler Equation is $$M = E - \varepsilon \sin(E)$$

I will enter the values of $M$ and $\varepsilon$ and wish to find the value of $E$.

The website Wolfram Alpha could find a solution for this input $30(\frac{\pi}{180})=x-0.3 \sin(x)$

How can I find $E$?

EDIT:

I would like to propose this algorithm (Javascript) to solve the equation. It might require some adjustments depending on the programming language used. I did some basic tests with it, and would like feedback on it.

The following algorithm doesn't have an user input method and is treating the expression:

$0 = -x + \sin(-x)$

which is related to:

$x = \sin(-x)$

I used this algorithm to solve $E$ in Kepler's Equation rewriting it as (And swapping M and e for numerical constants, that in my case will be user inputs):

$0 = -M + E - e*sin(E)$

<script>
var start = Number.MIN_SAFE_INTEGER; end = Number.MAX_VALUE;

var result = null;

while(result === null) {
var resultStart = Math.abs(-start + Math.sin(-start));
var resultEnd = Math.abs(-end + Math.sin(-end));
if(resultStart === 0) {
result = start;
} else if (resultEnd === 0) {
result = end;
} else {
if (resultStart > resultEnd) {
var startOld = start;
start = (start+end)/2;
if(startOld === start) { // underflow
result = start;
}
} else {
var endOld = end;
end = (start+end)/2;
if(endOld === end) { // underflow
result = end;
}
}
}
}

console.log(result);

</script>

• i think it is not possible, you will need a numerical method Dec 5, 2014 at 20:14
• Because the derivative can be very close to zero, any derivative-based methods can be numerically unstable. I recommend the bisection method as the most stable. It converges quite fast enough on modern computers: 17 or 18 iterations will give you 4-5 digits of accuracy. Dec 28, 2019 at 18:07

There is no known closed form inverse for Kepler's equation. Newton's Method works well numerically, except in the case of near parabolic orbits ($\varepsilon\approx1$). It says to iterate $$E_{n+1}=\frac{M+\varepsilon\sin(E_n)-\varepsilon E_n\cos(E_n)}{1-\varepsilon\cos(E_n)}$$ until it converges.

• Thank you for your answer. I created an algorithm based on the Binary Search/Newton's Method. I'm editing my question with the Algorithm. Dec 5, 2014 at 22:50

An analytical and elegant solution is the following Kapteyn / Fourier series:

$$E(M)=M+\sum_{n=1}\frac{ 2 J_n(n\epsilon) }{n} \sin(n M)$$

where $J_n(x)$ are the Bessel functions.

Other analytical solutions based on series expansion are discussed in:

"Solving Kepler's Equation Over Three Centuries", Peter Colwell, 1993

For implementation of Bessel functions in Javascript, several codes are available. For example:

http://www.mhtl.uwaterloo.ca/old/courses/me3532/js/bessel.html

https://github.com/SheetJS/bessel

• The question math.stackexchange.com/questions/10427/… seems related. I have posted in such thread numerical evaluations based on raw summation of Bessel functions and accelerated summation and c++ code for the particular case $M=\pi/2$ and $\epsilon=1$ (related to the so-called Dottie number) Mar 4, 2015 at 7:01

$$\def\L{\operatorname L} \def\J{\operatorname J}$$

@giorgiomugnaini gave a Fourier series solution and the following integral representations was not found elsewhere online, but here are other solutions to the Kepler equation

Laplace Transform:

We apply the Laplace inversion theorem and one could expand $$\sin(\phi)$$, like in the Fourier series derivation, or:

$$f(\phi)=\sin(\phi)+a\phi=x\implies \phi=\L^{-1}_x(\L_s(\phi(t))$$

We define $$\phi(x)=0\not, substitute $$\phi(t)\to t$$, and integrate by parts:

$$\L_s(\phi(t))=\int_0^{\pi a}e^{-st}\phi(t)dt=\int_0^\pi e^{-sf(t)}t\ df(t)=-\frac\pi s e^{-\pi a s}+\int_0^\pi e^{-s\sin(t)-a s t}dt$$

$$-\frac\pi s e^{-\pi a s}$$’s inverse Laplace transform is a Heaviside theta function which is zero for $$x<\pi a$$. Alternatively, if $$f(x)$$ is monotonic, then there is global inverse, so another setup is:

$$\L_s(h(t))=\int_0^\infty e^{-st}dt=\int_0^\infty t e^{-sf(t)}df(t)=\frac1s\int_0^\infty e^{-s\sin(t)-a s t}dt$$

Finally, expand $$e^{c\sin(x)}$$ via Maclaurin series, integrate, and sum over to obtain an Anger J. Therefore:

$$\bbox[3px,border: solid blue 3px]{\sin(\phi)+a\phi=x\implies \phi=\int_{ic-\infty}^{ic+\infty}\frac{e^{isx}\J_{a s}(s)}{is(e^{\pi i a s}+1)}ds,\int_{ic+\infty}^{ic-\infty}\frac{e^{isx}}{2s}\csc(\pi a s)\J_{as}(s)ds}$$

The first integral represents a period of $$\phi(x)$$ while the second is the global inverse. shown here: Fourier Transform:

The Fourier inversion theorem uses Anger J:

$$\bbox[3px,border: solid blue 3px]{\sin(\phi)-a\phi=x\implies \phi=\int_0^\infty\frac2t\sin(tx)\operatorname J_{at}(t)dt}$$

shown here: For $$E\neq 0$$, Kepler's equation can be solved by Hyper Lambert W:

$$E-\varepsilon\sin(E)=M$$ $$E\ e^{\ln(1-\varepsilon\frac{\sin(E)}{E})}=M$$ $$E=HW\left(\left\{\ln(1-\varepsilon\frac{\sin(x)}{x})\right\}_1;M\right)$$

So we have a closed form for $$E$$, and the series representations of Hyper Lambert W give some hints for calculating $$E$$.

[Galidakis 2005] Galidakis , I. N.: On solving the p-th complex auxiliary equation $$f^{(p)}(z)=z$$. Complex Variables 50 (2005) (13) 977-997

Galidakis, I. N.: On some applications of the generalized hyper-Lambert functions. Complex Variables and Elliptic Equations 52 (2007) (12) 1101-1119

[Dubinov/Galidakis 2007] Dubinov, A.; Galidakis, Y.: Explicit solution of the Kepler equation. Physics of Particles and Nuclei Letters 4 (2007) 213-216

[Masson] Masson, Paul: Analytic Physics - An Exact Solution of the Complex Kepler Equation

• Looking at section $4$, where it says, “Transcendental equations solvable exactly by HW functions” in this article, gives one equation as $e^{f(x)\cdot e^x}+x+a=0$. It would seem that one can use HW functions to solve any transcendental equation, like the Kepler equation. Is this really a closed form? Jul 8 at 12:53
• Those “transcendental equations which are algebraically solvable by the $HW$ functions” are, for example, “$e^{f(x)e^x}+x+a=0$ where $f(x)$ is an arbitrary function of $x$”. It does seem very useful. Jul 8 at 14:29