Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Solving Kepler's Equation computationally

I'm trying to solve Kepler's Equation as a step towards finding the true anomaly of an orbiting body given time. It turns out though, that Kepler's equation is difficult to solve, and the wikipedia page describes the process using calculus. Well, I don't know calculus, but I understand that solving the equation involves an infinite number of sets which produce closer and closer approximations to the correct answer.

I can't see from looking at the math how to do this computationally, so I was hoping someone with a better maths background could help me out. How can I solve this beast computationally?

FWIW, I'm using F# -- and I can calculate the other elements necessary for this equation, it's just this part I'm having trouble with.

I'm also open to methods which approximate the true anomaly given time, periapsis distance, and eccentricity

like image 617
Carson Myers Avatar asked Mar 13 '11 06:03

Carson Myers


People also ask

What is Kepler's equation used for?

Kepler's equation gives the relation between the polar coordinates of a celestial body (such as a planet) and the time elapsed from a given initial point.

How do you calculate eccentric anomaly?

2πt/P = E - e sin(E) This is called Kepler's Equation and gives a direct relationship between time and position on the eccentric reference circle. It is relatively easy to determine True Anomaly from Eccentric Anomaly. The quantity 2πt/P is called the Mean Anomaly and represent by the letter, M.


1 Answers

This paper:

A Practical Method for Solving the Kepler Equation
http://murison.alpheratz.net/dynamics/twobody/KeplerIterations_summary.pdf

shows how to solve Kepler's equation using an iterative computing method. It should be fairly straightforward to translate it to the language of your choice.


You might also find this interesting. It's an ocaml program, part of which claims to contain a Kepler Equation solver. Since F# is in the ML family of languages (as is ocaml), this might provide a good starting point.

like image 163
Robert Harvey Avatar answered Nov 03 '22 22:11

Robert Harvey