Izzo's Algorithm and Multi-Revolution Transfers
L-similarity, the x-variable, Householder iterations, and the 2N+1 solutions of an N-revolution problem
Noordwijk, the Netherlands
Since 2005 the European Space Agency's Advanced Concepts Team has run the Global Trajectory Optimisation Competition, in which teams design tours that visit dozens of asteroids. A single search can require billions of Lambert solutions. At those numbers the cost of one solve stops being a detail.
Dario Izzo, a member of that team, went back to a 1969 NASA report by Lancaster and Blanchard and asked whether there was a variable in which every Lambert problem's time-of-flight curve looks nearly the same — so that one good initial guess would work for all of them. There was. The resulting algorithm converges in about two iterations, handles multiple revolutions naturally, and now sits inside poliastro, pykep, Orekit and many flight-dynamics codes.
Watch first · presented by Shoaib Aziz
Non-dimensionalisation (L-similarity). Lambert's theorem says the problem depends on , and . Scale lengths by and time by and only two numbers are left:
λ ∈ (−1, 1) carries the geometry; it is negative for long-way transfers. T is the non-dimensional flight time. Every Lambert problem with the same (λ, T) has the same solution up to scale.
The unknown is the Lancaster–Blanchard variable , defined through . It sweeps every conic on one axis: ellipses ( is the minimum-energy ellipse), the parabola, hyperbolas. With the time-of-flight equation is
with cos ψ = xy + λ(1 − x²) for ellipses and cosh ψ = xy − λ(x² − 1) for hyperbolas, and N the number of complete revolutions. Near x = 1 the bracket is 0/0; there Battin's hypergeometric series 2T = η³·(4/3)·₂F₁(3, 1; 5/2; S₁) + 4λη is used instead.
💡Anchor values
Two points on the curve are known in closed form, for every :
is the minimum-energy time; is the parabolic time (Euler's equation, non-dimensionalised). Between and beyond them the zero-revolution curve falls monotonically, with two oblique asymptotes on a log scale. Izzo inverts a piecewise approximation of those asymptotes to get the initial guess.
Loading interactive…
Initial guess (zero revolutions).
- :
- :
- otherwise:
Iteration. With and derivatives from Izzo's recurrences, and two more like it, a third-order Householder step
Cubic convergence from an initial guess that is already close: about three steps from guess to machine precision.
⚠A misprint in the paper
The middle case of the initial guess is printed in the paper as . Check the seams: at it gives 0, as it should, but at it does not give 1. Open-source implementations use the corrected form above, which interpolates from 0 to 1 in log-time. In the lab, the printed version still converges on the textbook case, but in four iterations from the wrong side; the corrected one does it in three, and across 5,000 random problems never needs more than five. Reading a paper critically includes checking its formulas at the boundaries.
Velocities. With , and , the radial and transverse components come out directly:
with and .
💡Multiple revolutions: 2N + 1 solutions
Allow the spacecraft to complete full revolutions before arriving and the curve is no longer monotonic: it has a minimum . Below it, no -revolution transfer exists. Above it, the horizontal line cuts the curve twice — a left branch (lower energy, longer period) and a right branch.
So a problem with flight time long enough for revolutions has up to solutions: the zero-revolution arc plus a pair for each . is found by Halley's method on starting from ; the two branch initial guesses are
📐Worked Example: seven ways to rendezvous
A chaser in a 400 km circular orbit must arrive at a point 800 km up and 150° ahead, in exactly 5.5 h ().
Minimum times: one revolution needs at least 2.28 h, two need 3.88 h, three need 5.47 h. At 5.5 h all three are feasible, so there are seven solutions.
Total rendezvous (departure plus matching burn): zero revolutions 13.5 km/s; : 10.9 and 9.2 km/s; : 7.8 and 5.9 km/s; left 2.05 km/s, right 257 m/s.
The cheapest transfer is the one that circles the Earth three times on a nearly tangent orbit — close to the 217 m/s Hohmann bound. A zero-revolution solver would have reported 13.5 km/s and moved on.
💡Where multi-revolution Lambert matters
Low-Earth-orbit rendezvous (several orbits of phasing), Earth–Earth and Venus–Venus resonant legs in gravity-assist tours, asteroid tours, and low-thrust trajectory design (where multi-revolution Lambert arcs serve as initial guesses). Interplanetary transfers between different planets are mostly zero-revolution; Type III and IV transfers (one revolution plus) exist but are rarely competitive.
| Method | Unknown | Strengths | Used in |
|---|---|---|---|
| Lagrange / bisection on a | a | Transparent; good teaching tool | Textbooks |
| Universal variables (BMW, Curtis) | z | One equation for all conics | Courses, much legacy software |
| Gooding (1990) | x (Lancaster–Blanchard) | Very robust, multi-rev, Halley | NASA/ESA tools, GMAT |
| Izzo (2015) | x | Fast (~2–3 iterations), multi-rev | poliastro, pykep, Orekit |
| Russell, ivLam (2019) | interpolated | Fastest; vectorised | Large-scale searches |
↓But there is a problem
Three iterations, every conic, every revolution count. A Lambert call is now cheap enough to put inside a loop of a million.
So put it inside a loop. Two spacecraft in Earth orbit: when should the chaser leave, and how long should it fly? Each choice is a Lambert problem, and each has a price. Mapping all of them turns targeting into reading a chart.