How can I use the Newton Method to find the eccentric anomaly for Mars?

  • Context: Undergrad 
  • Thread starter Thread starter smmSTV
  • Start date Start date
Click For Summary
SUMMARY

The discussion focuses on using the Newton Method to compute the Eccentric Anomaly (E) from the Mean Anomaly (M) for Mars in a C++ program. The correct formulation of Kepler's equation is established as M = E - e*sin(E). The Newton Method is applied with the iterative formula E_{n+1} = E_{n} - f(E)/f'(E), where f(E) = E - e*sin(E) - M and f'(E) = 1 - e*cos(E). The iterations continue until the convergence criterion, |f(E)/f'(E)| < 0.00001, is met.

PREREQUISITES
  • Understanding of Kepler's laws of planetary motion
  • Familiarity with the Newton Method for numerical solutions
  • Proficiency in C++ programming
  • Knowledge of orbital mechanics, specifically eccentricity and true anomaly
NEXT STEPS
  • Implement the Newton Method in C++ for solving Kepler's equation
  • Research the calculation of true anomaly from eccentric anomaly
  • Explore the use of numerical methods for solving nonlinear equations
  • Study the orbital parameters of Mars, including semi-major axis and eccentricity
USEFUL FOR

Astronomy students, C++ developers working on orbital mechanics simulations, and anyone interested in numerical methods for solving equations related to celestial bodies.

smmSTV
Messages
2
Reaction score
0
So I'm in need of some more help for my astronomy class again.
My professor wants us to write a program that outputs a table with the distance of Mars from the sun (r) and it's true anomaly. The problem is that i need to compute the Eccentric Anomaly (E) from the Mean Anomaly (M). Kepler's equation is E = M + εsin(E), but I can't get it down in terms of E. Seeing as how I'm using c++, it is kind of a necessity. One website seemed to have an equation involving Einitial and Efinals, but it didn't do me any good. Is the idea to set the original Einitial equal to 0 at t=0 (the perihelion point) and find E final in terms of that? At the end of each iteration (I'm running a while loop) the Eintial of the next iteration would be set to the Efinal of the current loop. Anybody got any ideas? Thanks
 
Astronomy news on Phys.org
The correct equation is [tex]M = E - e*sin(E)[/tex]

Solve using the Newton Method:

[tex]E_{n+1} = E_{n} - \frac{f(E)}{f'(E)}[/tex]
where f(E) = E - e * sin(E) - M
and f'(E) = 1 - e * cos(E)

Loop the above equations until:
[tex]\frac{f(E)}{f'(E)} < 0.00001[/tex]Or some substantially low number not zero.

Also,[tex]r = \frac{a * (1 - e ^ 2)}{(1 + e * cos(TA))}[/tex]
where TA - True Anomaly
and a - Semi-Major Axis of Mars
 
Last edited:

Similar threads

  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 16 ·
Replies
16
Views
12K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 2 ·
Replies
2
Views
7K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 5 ·
Replies
5
Views
8K
  • · Replies 28 ·
Replies
28
Views
4K
  • · Replies 15 ·
Replies
15
Views
6K
  • · Replies 11 ·
Replies
11
Views
2K