jorgepiloto/lamberthub

Implement battin1984

jorgepiloto opened this issue · 3 comments

💻 Solver request: battin1984

This solver by Battin inherits from Gauss but avoiding its singularities for 180 degrees transfer angle. Only drawback with this solver is that it was only developed for the direct transfer scenario. However, this paper by Shen extends the solver to the multi-revolution case.

📝 References

@inproceedings{battin1983elegant,
  title={An elegant Lambert algorithm(for spacecraft orbit estimation)},
  author={BATTIN, RH and VAUGHAN, RM},
  booktitle={International Astronautical Federation, International Astronautical Congress, 34 th, Budapest, Hungary},
  volume={10},
  number={15},
  year={1983}
}

The continuous fractions used in this algorithm are blocking me... Anyway, Euler to the rescue! The genius developed a formula which for computing these mathematical operations as a series. In fact, I learnt this in the original work for the paper. Notice that the supervisor of this work is R.H. Battin!

It turns out that this algorithm is also known as Battin-Vaughan algorithm 👀

It must be said that the effort made by Battin when developing the continued fraction was to get rid of a trigonometric function evaluation. However, I do not think a custom series for computing a particular value of arctan is faster than np.arctan neither it uses less memory. In addition, even after implementing the original report continued fractions, some errors appeared as these were not covered in the article.

The analysis made by Randal Allen about Battin's Lambert recipe was super useful, see "Tan Root for Battin’s Lambert Recipe" who's DOI is: https://doi.org/10.2514/1.G001013