I'm solving the Lambert's problem, and already have written a program, which solves the BVP using Shooting method and computes the velocities of Spacecraft required to transfer to another point in a given transfer time.

The point is, the solution depends on transfer time, and initial position of the spacecraft. Some solutions are good, some require a lot of Delta-V...

Checking all values one-by-one would be time consuming. Needed to calculate:

  • The optimal initial position of spacecraft
  • The optimal transfer time

Probably, I should make attention on Delta True Anomaly?

  • $\begingroup$ If I recall correctly, there are zero, one, or two solutions to Lambert's problem. I did an animation of based on Lambert's space triangle: hop41.deviantart.com/art/Lambert-Space-Triangle-movie-92619295 I might try to dig up the Prussing and Conway text if I have time. $\endgroup$
    – HopDavid
    Apr 22, 2017 at 7:29
  • $\begingroup$ @HopDavid I had no idea deviantart had technical content, excellent! Now I must figure out how to unblock Flash in my browser. Is there a non-flash version somewhere? $\endgroup$
    – uhoh
    Apr 22, 2017 at 9:48
  • 1
    $\begingroup$ I've added a sentence with a standard way to link back to the previous discussion. This way the question contains the kernel of the previous answer as well as a link so people can go back and read the complete answer and learn from it if they like. Even when we ask questions, sometimes we can do a little teaching at the same time. If you are uncomfortable with the edit, click the "edited" icon (to the left of your user ID icon) and look for "rollback" on one of the previous versions. $\endgroup$
    – uhoh
    Apr 22, 2017 at 10:26

2 Answers 2


The shooting method is a general purpose techniques for solving boundary value problems. As a general rule, a solver specialized to the problem at hand will outperform general purpose techniques -- if such a special purpose solver exists. This is most certainly the case for the two-body orbital boundary value problem, aka Lambert's problem because this problem is central to rendezvous and to orbit determination. A large number of special purpose Lambert's problem solvers have been developed over the last two-plus centuries. You will fare much better if you use one of these domain-specific techniques as opposed to a shooting method solver.

Even then, you'll have to pay attention to delta V. A Lambert's problem solver finds one or more conic sections that intersect the source orbit at time t0 and the target orbit at time t1. Just because a solution satisfies the constraints does not mean it is practical. You'll need to check for transfer orbits that are ridiculously expensive in terms of delta V. This includes retrograde transfer orbits, for example, but also some prograde transfer orbits.

In this day of open literature / open source, it is far better to look for existing Lambert's solvers as opposed to rolling your own. You can find several in the public literature (but sometimes only as pseudocode), and several on github (but sometimes only as student quality code).


Sorry. You need to check a bunch of values. In the example of choosing an Earth escape trajectory to a target, a contour plot of departure and arrival dates is made, where each sample in the plot is a solution to a Lambert problem. This is called a "porkchop" plot, due to the typical shape of the contours seen.

  • $\begingroup$ May I somehow predict and filter bad values, on the basis, for example, True Anomalies ? To not calculate Lambert's problem for all values, which is time consuming! $\endgroup$ Apr 23, 2017 at 0:03
  • $\begingroup$ Is there a tool to build the porkchop plot for on-orbit maneuvers, where I could write the coordinates of SC and target? All tools I found were for Earth, Mars, etc. $\endgroup$ Apr 23, 2017 at 0:10

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.