I have been studying by myself Orbital Mechanics, and when solving the Lambert Problem, it's common to use the universal variable approach. I understand the algorithm, but I haven't found any book that explains well the physical meaning of the universal anomaly $x$ and the dimensionless variable $z$.

What would be the physical meaning of these two variables?

de la Torre Sangra & Fantino's Review of Lambert's Problem as well as Izzo's Revisiting Lambert’s problem (also ArXiv) cite Bate 1971 as Fundamentals of Astrodynamics by Roger R. Bate, Donald D. Mueller, Jerry E. White (Dover, 1971) (in google books, pdfs out there as well) which introduces $x$ and $z$:

from Bate: Fundamentals of Astrodynamics

and later:

from Bate: Fundamentals of Astrodynamics

  • 1
    $\begingroup$ You may have your own favorite references. Until you have a chance to add them, I've included some. It's always better to include as much as you can in the question initially, to avoid people asking "what do you know so far" or "what materials have you been studying". $\endgroup$
    – uhoh
    Commented Sep 30, 2018 at 13:22
  • 1
    $\begingroup$ It would help if you actually write out the expressions for these variables explicitly. $\endgroup$
    – Paul
    Commented Sep 30, 2018 at 15:52
  • 1
    $\begingroup$ @uhoh Sorry, I didn't know that, I have deleted the other question :) $\endgroup$ Commented Sep 30, 2018 at 16:58
  • 1
    $\begingroup$ About literature, I have read Orbital Mechanics for Engineering Students and Orbital Mechanics by Chovotob $\endgroup$ Commented Sep 30, 2018 at 16:58
  • $\begingroup$ @AlbertoDeCelisRomero it's always okay to answer your own question. You might have some background in this topic already; if you've made some progress on this, posting an answer is certainly helpful to future readers. $\endgroup$
    – uhoh
    Commented Oct 4, 2018 at 6:34

2 Answers 2


Following page of 204 of Fundamentals of astrodynamics:

These are just convenience variables that depend on change of eccentric anomaly from initial to final point of motion analyzed (or predicted).

For elliptical orbit:

$$x = \sqrt{a} ( E - E_0 )$$

or, for negative $a$ (hyperbolic orbit),

$$x = \sqrt{-a} ( F - F_0 )$$

For parabolic orbit,

$$x = D-D_0$$

For elliptical orbit: $$z = (E - E_0)^2$$

For hyperbolic orbit: $$-z = (F - F_0)^2$$

For parabolic orbit, $z = 0$ (also, when there's no change in eccentric anomaly.)

where $E$ is the eccentric anomaly (page 183):

enter image description here

$D$ is "parabolic eccentric anomaly" and $F$ - "hyperbolic eccentric anomaly" (always an imaginary value) - counterparts to $E$ for parabolic and hyperbolic trajectories. Subsequent pages explain derivation of these.

As a side note, I think Eccentric Anomaly deserves a better justification and explanation than what it gets, with extending arbitrary lines to randomly chosen circles for unknown purposes.

As the standard ellipse equation is $({x\over a})^2 + ({y \over b})^2 = 1$ (that's a carthesian coordinate $x$, not the universal variable $x$) the typical parametrization is:

$$ x = a \cos E $$ $$ y = b \sin E $$ enter image description here

  • $\begingroup$ Is it possible to show how these agree mathematically with their explicit definitions in Eqs 4.3-2, and 4.4-7? And to "What would be the physical meaning of these two variables?" I wonder if it possible to either add something addressing that directly, or conclude that there is none? $\endgroup$
    – uhoh
    Commented Oct 4, 2018 at 9:02
  • $\begingroup$ @uhoh: I didn't manage to derive one from the other, but units match. $\mu$ is $m^3/s^2$; $r$ is $m$. so we get $[\dot x] = [\sqrt{m}/s]$. Integrate over time, you get $[x] = [\sqrt{m}]$. Now, $a$ is length, $E$ is angle (dimensionless; radian is [length/length]), so $[x] = [\sqrt m (rad - rad)] = \sqrt m$ again. And AFAIK, a square root of length has no direct physical meaning. $\endgroup$
    – SF.
    Commented Oct 4, 2018 at 11:29
  • $\begingroup$ BTW, $\dot x^2$ is gravitational field strength, ${ G M \over r^2}$. Still not sure how that binds into purely geometric variables like eccentricity and eccentric anomaly. $\endgroup$
    – SF.
    Commented Oct 4, 2018 at 12:50
  • $\begingroup$ Since comments are considered temporary, the post itself is the best place for anything that will help future readers learn from your answer about "the physical meaning of these two variables." $\endgroup$
    – uhoh
    Commented Oct 4, 2018 at 16:46
  • 1
    $\begingroup$ While it looks like I had to do this in order to award the bounty, the real reason was that I suddenly felt compelled to quote Meatloaf. $\endgroup$
    – uhoh
    Commented Oct 10, 2018 at 15:24

@SF.'s answer checks out very nicely! xSF=xOP and zSF = zOP.

I used some equations from this answer.

I am not sure if it answers the OP's question completely, but since it checks out mathematically, I'll award this particular bounty.

As Meatloaf says, everything works if you let it.

SF. versus OP 1

SF. versus OP 2

SF. versus OP 3

def deriv(X, t):
    x, v = X.reshape(2, -1)
    acc  = -x * mu * ((x**2).sum())**-1.5
    return np.hstack((v, acc))

import numpy as np
import matplotlib.pyplot as plt

from scipy.integrate import odeint   as ODEint
from scipy.integrate import cumtrapz as CTrapz

# https://space.stackexchange.com/questions/31032/what-exactly-means-universal-variable-x-and-z

halfpi, pi, twopi = [f*np.pi for f in (0.5, 1, 2)]

mu     = 1.0
a      = 1.0
peri   = 0.5
apo    = 2.*a - peri
vperi  = np.sqrt(mu*(2./peri - 1./a))
vapo   = np.sqrt(mu*(2./apo  - 1./a))

X0     = np.array([peri, 0, 0, vperi])

time   = np.linspace(0, twopi, 201)

answer, info = ODEint(deriv, X0, time, full_output=True)

x, y, vx, vy = answer.T
theta        = np.arctan2(y, x)
half_theta   = 0.5 * theta

r     = np.sqrt(x**2 + y**2)
xdot  = np.sqrt(mu)/r
xOP   = CTrapz(xdot, time, initial=0)
zOP   = xOP**2/a

# https://space.stackexchange.com/questions/27602/what-is-hyperbolic-eccentric-anomaly-f/27604#27604

ecc       = (apo-peri)/(apo+peri)
term      = np.sqrt((1. - ecc)/(1. + ecc))
tanEover2 = term * np.tan(half_theta)
E         = 2. * np.arctan(tanEover2)
E0        = E[0]
E[E<0]   += twopi  # keep it positive

xSF       = np.sqrt(a)*(E - E0)
zSF       = (E - E0)**2

things    = ( r,   theta,   xOP,   zOP,   xdot,   E,   xSF,   zSF )
names     = ('r', 'theta', 'xOP', 'zOP', 'xdot', 'E', 'xSF', 'zSF')

if True:
    for i, (thing, name) in enumerate(zip(things, names)):
        plt.subplot(2, 4, i+1)
        plt.plot(time, thing)
        plt.title(name, fontsize=16)

if True:
    plt.subplot(1, 2, 1)
    plt.title('x and xSF versus time')
    plt.plot(time, xOP,  '-r', linewidth=4)
    plt.plot(time, xSF, '--k', linewidth=2)
    plt.subplot(1, 2, 2)
    plt.title('z and zSF versus time')
    plt.plot(time, zOP,  '-r', linewidth=4)
    plt.plot(time, zSF, '--k', linewidth=2)

if True:
    x, y, vx, vy = answer.T
    plt.subplot(1, 2, 1)
    plt.title('y versus x')
    plt.plot(x, y)
    plt.plot([0], [0], 'ok')
    plt.subplot(2, 2, 2)
    plt.title('x and y versus time')
    plt.plot(time, x)
    plt.plot(time, y)
    plt.subplot(2, 2, 4)
    plt.title('vx and vy versus time')
    plt.plot(time, vx)
    plt.plot(time, vy)

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.