Just a (hopefully) quick qualitative question that I'm having a bit of trouble extracting from the literature: I've implemented a universal-variables Lambert's method in python, and it has been validated pretty darn extensively for both long and short-angle solutions. I'm using it for a school project in which we're looking at mission designs to intercept earth-threatening asteroids.

Thing is, when the asteroids get too close to Earth (around 40,000-60,000 km in altitude), at the characteristic average ECI hyperbolic velocity of somewhere between 13 and 17 km/s for solar-system bodies, the method seems to break down. Obviously for such a last-minute kind of intercept, long-angle solutions are not viable, and the necessary Delta-V could easily exceed technological feasibility.

However, going back through the derivation of the universal-variables Lambert's method derivation, I am not explicitly seeing anything that would mathematically bar the method from coming up with a solution even if the Delta-Vs were insanely high. I'm wondering if perhaps anybody's got any experience with this particular problem for high-Delta-V maneuvers and Lambert's Method.

For the record, I've gone through most of the potential error points that I, or my partners, can think of (i.e. Kepler's method for calculating mean anomalies breaking down at high eccentricities, updating equations for hyperbolic trajectories etc.) and replaced them with appropriate equations, more robust solvers, or even gone to numerical propagation in some TOF calculations.

I'm definitely not saying that it couldn't be a computational error or bug somewhere, but have been unable to positively determine that it might not be an issue with the method itself. Basically I would just like to see if I can put that possibility to bed or not.


  • $\begingroup$ I'll note here that I have since made some progress on this question. I am still unsure if the mathematics themselves break down, but I have improved both the algorithm used to make an initial guess-input to the non-linear equation solver used in one of the steps of the Universal Variable Lambert's Method algorithm I'm using, but changed the method itself again (from the Bisection method to Broyden's method). This has allowed me to calculate intercepts with very very low times of flight that result in very very high delta Vs (continued in next comment)... $\endgroup$
    – D. Hodge
    Aug 26, 2020 at 20:37
  • $\begingroup$ ... (continued from previous comment). I can now compute asteroid intercept maneuvers (bi-impulsive btw) that take between 100-500s and require upwards of 800 km/s Delta V. Obviously these are currently infeasible, but I wanted to torture test my code a bit. Also the scipy.optimize package has the broyden solver built in, so that was very handy. My working suspicion at this point is that the mathematics do not break down, but that one rapidly reaches the limit of a computer's, or non-linear solver's, ability to converge with very fast maneuvers. $\endgroup$
    – D. Hodge
    Aug 26, 2020 at 20:40

1 Answer 1


I ran into a similar issue in the past using a universal variable implementation of Lambert's method, and came to similar conclusions as you. As the TOF decreases and DV increases, there is a point where the solver will fail to converge due to numerical issues. It is not due to a fundamental error in the equations themselves, but comes from numerical sensitivities.

I multiplied the update to psi by a value less than 1 (I call this a learning rate, to borrow from the field of machine learning), and steadily decrease the learning rate over subsequent iterations. This basically makes us take smaller steps, which makes us less likely to diverge. With this modification I was able to solve transfers in LEO down to around 1e-3 seconds during some torture testing. Below that it still breaks down.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.