This algorithm was originally devised by Gooding in 1990. Many of the work is built on top of Lancaster's one, but an accurate guess is made so fast convergence to the solution is achieved. In addition, the root finder used is Halley's method, so this solver is expected to be a high robust one. Gooding's routine was also extended to the multi-revolution case, so a full algorithm is available.
We should implement this under the name of gooding1990. Because this algorithm is the first of the library, let us create a sub-package called universal in which all the universal-formulae solvers are included in the sense of Python modules.
📝 References
The algorithm appeared for the first time in 1988 Gooding's publication, see the BibTeX citation:
@techreport{gooding1988solution,
title={On the solution of Lambert's orbital boundary-value problem},
author={Gooding, RH},
year={1988},
institution={ROYAL AEROSPACE ESTABLISHMENT FARNBOROUGH (UNITED KINGDOM)}
}
However, the implementation we must follow is the one comming from the revised revision, which was published two years later in 1990:
@article{gooding1990,
title={A procedure for the solution of Lambert's orbital boundary-value problem},
author={Gooding, RH},
journal={Celestial Mechanics and Dynamical Astronomy},
volume={48},
number={2},
pages={145--165},
year={1990},
publisher={Springer}
}
Source code under Fortran77 is attached at the end of this article, so we just need to update it to modern Python 🚀
This is finally implemented in the package! We now have a collection of tests for a variety of cases, including the multi-revolution scenarios and robust ones. Cool! 😎
💻 Solver request: gooding1990
This algorithm was originally devised by Gooding in 1990. Many of the work is built on top of Lancaster's one, but an accurate guess is made so fast convergence to the solution is achieved. In addition, the root finder used is Halley's method, so this solver is expected to be a high robust one. Gooding's routine was also extended to the multi-revolution case, so a full algorithm is available.
We should implement this under the name of
gooding1990
. Because this algorithm is the first of the library, let us create a sub-package calleduniversal
in which all the universal-formulae solvers are included in the sense of Python modules.📝 References
The algorithm appeared for the first time in 1988 Gooding's publication, see the BibTeX citation:
However, the implementation we must follow is the one comming from the revised revision, which was published two years later in 1990:
Source code under Fortran77 is attached at the end of this article, so we just need to update it to modern Python 🚀