Classical Mechanics 5

Kepler Problem.

Author

THREAD478

Published

January 24, 2026

1 The Kepler Problem

We now consider the classical Kepler problem, which describes the trajectory of a planet orbiting the Sun. We assume the Sun is fixed at the origin and exerts a force on the planet given by: \[\mathbf{F} = -k \frac{\mathbf{x}}{|\mathbf{x}|^3},\] where \(k = GmM\), with \(m\) being the mass of the planet, \(M\) the mass of the Sun, and \(G\) the gravitational constant.

This force follows the inverse-square law, and the associated potential function is readily obtained as: \[V(\mathbf{x}) = -\frac{k}{|\mathbf{x}|}.\] Since the potential \(V\) is invariant under rotations, the total angular momentum vector \(\mathbf{J} = \mathbf{x} \times \mathbf{p}\) is a conserved quantity (\(\mathrm{D}_t \mathbf{J} = \mathbf{0}\)).

If \(\mathbf{J} = \mathbf{0}\), the particle moves along a ray passing through the origin, eventually colliding with it or receding to infinity. Such “collision trajectories” are considered singular cases. Henceforth, we restrict our attention to trajectories where \(\mathbf{J} \neq \mathbf{0}\).

NoteThe Plane of Motion

Because \(\mathbf{J} = \mathbf{x} \times \mathbf{p}\) is a constant vector, the position vector \(\mathbf{x}(t)\) must satisfy \(\langle \mathbf{x}(t), \mathbf{J} \rangle = 0\) at all times \(t\). This implies that the particle’s entire trajectory is confined to a fixed plane passing through the origin and perpendicular to the angular momentum vector \(\mathbf{J}\). We define this plane as the orbital plane.

The conservation of energy \(E = \frac{1}{2}m |\mathrm{D}_t \mathbf{x}|^2 - \frac{k}{|\mathbf{x}|}\) and angular momentum \(\mathbf{J}\) together prevent the particle from approaching the origin indefinitely when \(\mathbf{J} \neq \mathbf{0}\).

Caution

To find the minimum distance, we express the kinetic energy in polar coordinates \((r, \theta)\) within the orbital plane. The velocity squared is \(|\mathrm{D}_t \mathbf{x}|^2 = (\mathrm{D}_t r)^2 + r^2 (\mathrm{D}_t \theta)^2\). Substituting the scalar angular momentum \(J = mr^2 \mathrm{D}_t \theta\) into the energy equation, we obtain: \[E = \frac{1}{2}m (\mathrm{D}_t r)^2 + \frac{J^2}{2mr^2} - \frac{k}{r}.\] We define the effective potential \(V_{eff}(r) = \frac{J^2}{2mr^2} - \frac{k}{r}\). The condition for the radial velocity to vanish (\(\mathrm{D}_t r = 0\)) determines the apsidal distances. Specifically, the particle reaches a minimum distance \(r_{min}\) (perihelion) when \(V_{eff}(r) = E\). Solving the quadratic equation \(2mEr^2 + 2mkr - J^2 = 0\) for \(r\) yields: \[r_{min} = \frac{-mk + \sqrt{m^2k^2 + 2mEJ^2}}{2mE}.\] For \(J \neq 0\), the centrifugal term \(J^2/(2mr^2)\) dominates as \(r \to 0\), creating a potential barrier that prevents collision.

2 Conservation of the Runge–Lenz Vector

We shall employ the Runge–Lenz vector to obtain a complete geometric description of the classical trajectories. This vector points along the major axis of the elliptical orbit, specifically toward the perihelion.

TipDefinition: Runge–Lenz Vector

The Runge–Lenz vector is a vector-valued function \(\mathbf{A}: (\mathbb{R}^3 \setminus \{\mathbf{0}\}) \times \mathbb{R}^3 \to \mathbb{R}^3\) defined by: \[\mathbf{A}(\mathbf{x}, \mathbf{p}) = \frac{1}{mk} (\mathbf{p} \times \mathbf{J}) - \frac{\mathbf{x}}{|\mathbf{x}|},\] where \(\mathbf{x}\) and \(\mathbf{p}\) are the position and momentum of the particle, respectively, and \(\mathbf{J} = \mathbf{x} \times \mathbf{p}\) is the angular momentum.

While the angular momentum vector \(\mathbf{J}\) is conserved for any central potential \(V(r)\), the \(1/r\) potential of the Kepler problem is unique in that it possesses this additional conserved vector quantity.

NoteProposition: Conservation of the Runge–Lenz Vector

The Runge–Lenz vector \(\mathbf{A}\) is an integral of motion for the gravitational Kepler problem.

Caution

To prove the conservation, we compute the time derivative \(\mathrm{D}_t \mathbf{A}\) along a trajectory \(\mathbf{x}(t)\) satisfying \(m \mathrm{D}_t^2 \mathbf{x} = -k \mathbf{x} / |\mathbf{x}|^3\). Differentiating \(\mathbf{A}\) yields: \[\mathrm{D}_t \mathbf{A} = \frac{1}{mk} \mathrm{D}_t (\mathbf{p} \times \mathbf{J}) - \mathrm{D}_t \left( \frac{\mathbf{x}}{|\mathbf{x}|} \right).\] Since \(\mathbf{J}\) is constant, we have \(\mathrm{D}_t (\mathbf{p} \times \mathbf{J}) = (\mathrm{D}_t \mathbf{p}) \times \mathbf{J}\). Substituting the force law \(\mathrm{D}_t \mathbf{p} = -k \mathbf{x} / |\mathbf{x}|^3\) and the definition \(\mathbf{J} = \mathbf{x} \times (m \mathrm{D}_t \mathbf{x})\): \[\frac{1}{mk} (\mathrm{D}_t \mathbf{p}) \times \mathbf{J} = \frac{1}{mk} \left( -\frac{k\mathbf{x}}{|\mathbf{x}|^3} \right) \times (m \mathbf{x} \times \mathrm{D}_t \mathbf{x}) = -\frac{1}{|\mathbf{x}|^3} \left[ \mathbf{x} \times (\mathbf{x} \times \mathrm{D}_t \mathbf{x}) \right].\] Using the vector triple product identity \(\mathbf{a} \times (\mathbf{b} \times \mathbf{c}) = \mathbf{b}(\mathbf{a} \cdot \mathbf{c}) - \mathbf{c}(\mathbf{a} \cdot \mathbf{b})\), the term becomes: \[-\frac{1}{|\mathbf{x}|^3} \left[ \mathbf{x} (\mathbf{x} \cdot \mathrm{D}_t \mathbf{x}) - (\mathrm{D}_t \mathbf{x}) (\mathbf{x} \cdot \mathbf{x}) \right] = \frac{|\mathbf{x}|^2 \mathrm{D}_t \mathbf{x} - \mathbf{x} (\mathbf{x} \cdot \mathrm{D}_t \mathbf{x})}{|\mathbf{x}|^3}.\] Next, we compute the derivative of the unit vector \(\mathbf{x}/|\mathbf{x}|\): \[\mathrm{D}_t \left( \frac{\mathbf{x}}{|\mathbf{x}|} \right) = \frac{|\mathbf{x}| \mathrm{D}_t \mathbf{x} - \mathbf{x} \mathrm{D}_t |\mathbf{x}|}{|\mathbf{x}|^2}.\] Recalling that \(\mathrm{D}_t |\mathbf{x}| = \mathrm{D}_t \sqrt{\mathbf{x} \cdot \mathbf{x}} = \frac{\mathbf{x} \cdot \mathrm{D}_t \mathbf{x}}{|\mathbf{x}|}\), we find: \[\mathrm{D}_t \left( \frac{\mathbf{x}}{|\mathbf{x}|} \right) = \frac{|\mathbf{x}|^2 \mathrm{D}_t \mathbf{x} - \mathbf{x} (\mathbf{x} \cdot \mathrm{D}_t \mathbf{x})}{|\mathbf{x}|^3}.\] Comparing the two components, we observe that \(\mathrm{D}_t \mathbf{A} = \mathbf{0}\). Thus, the Runge–Lenz vector remains constant throughout the motion.

The conservation of \(\mathbf{A}\) provides a direct algebraic method to derive the equation of the orbit without solving the differential equations explicitly. By taking the dot product \(\mathbf{x} \cdot \mathbf{A}\), one can immediately obtain the polar form of a conic section \(r(\theta) = \ell / (1 + e \cos \theta)\), where \(e = |\mathbf{A}|\) is the eccentricity.

3 Ellipses, Hyperbolas, and Parabolas

We now employ the Runge–Lenz vector \(\mathbf{A}\) to determine the explicit geometric form of the trajectories in the Kepler problem.

NoteProposition: Geometry of the Runge–Lenz Vector

The magnitude of the Runge–Lenz vector \(\mathbf{A}\) is related to the total energy \(E\) and angular momentum \(\mathbf{J}\) by: \[|\mathbf{A}|^2 = 1 + \frac{2 |\mathbf{J}|^2}{m k^2} E.\] Furthermore, for any position \(\mathbf{x} \neq \mathbf{0}\) along the trajectory, the following relation holds: \[\mathbf{A} \cdot \mathbf{x} = \frac{|\mathbf{J}|^2}{m k} - |\mathbf{x}| \quad \] Consequently, the radial distance \(|\mathbf{x}|\) can be expressed as: \[|\mathbf{x}| = \frac{|\mathbf{J}|^2 / (mk)}{1 + \mathbf{A} \cdot \hat{\mathbf{x}}},\] where \(\hat{\mathbf{x}} = \mathbf{x} / |\mathbf{x}|\).

Caution

To prove it, we use the definition \(\mathbf{A} = \frac{1}{mk} (\mathbf{p} \times \mathbf{J}) - \hat{\mathbf{x}}\) and compute the scalar product with \(\mathbf{x}\): \[\mathbf{A} \cdot \mathbf{x} = \frac{1}{mk} \langle \mathbf{x}, \mathbf{p} \times \mathbf{J} \rangle - \langle \mathbf{x}, \hat{\mathbf{x}} \rangle.\] By the property of the triple scalar product, \(\langle \mathbf{x}, \mathbf{p} \times \mathbf{J} \rangle = \langle \mathbf{x} \times \mathbf{p}, \mathbf{J} \rangle = \langle \mathbf{J}, \mathbf{J} \rangle = |\mathbf{J}|^2\). Also, \(\langle \mathbf{x}, \hat{\mathbf{x}} \rangle = |\mathbf{x}|\). Substituting these yields: \[\mathbf{A} \cdot \mathbf{x} = \frac{|\mathbf{J}|^2}{mk} - |\mathbf{x}|.\] To find \(|\mathbf{A}|^2\), we compute \(\mathbf{A} \cdot \mathbf{A}\): \[|\mathbf{A}|^2 = \frac{1}{m^2k^2} |\mathbf{p} \times \mathbf{J}|^2 - \frac{2}{mk} \langle \hat{\mathbf{x}}, \mathbf{p} \times \mathbf{J} \rangle + |\hat{\mathbf{x}}|^2.\] Using \(|\mathbf{p} \times \mathbf{J}|^2 = |\mathbf{p}|^2 |\mathbf{J}|^2\) (since \(\mathbf{p} \perp \mathbf{J}\)) and the triple product identity again, we find: \[|\mathbf{A}|^2 = \frac{|\mathbf{p}|^2 |\mathbf{J}|^2}{m^2k^2} - \frac{2 |\mathbf{J}|^2}{mk |\mathbf{x}|} + 1 = \frac{2 |\mathbf{J}|^2}{mk^2} \left( \frac{|\mathbf{p}|^2}{2m} - \frac{k}{|\mathbf{x}|} \right) + 1 = \frac{2 |\mathbf{J}|^2 E}{mk^2} + 1.\]

ImportantCorollary: The Orbit Equation

In the orbital plane, let \((r, \theta)\) be polar coordinates where the polar axis (\(\theta = 0\)) is aligned with the vector \(\mathbf{A}\). Then the trajectory \(r(t)\) satisfies: \[r(t) = \frac{|\mathbf{J}|^2}{mk} \frac{1}{1 + A \cos \theta(t)}, \quad \text{(2.38)}\] where \(A = |\mathbf{A}|\). If \(\mathbf{A} = \mathbf{0}\), the orientation of the coordinates is arbitrary.

Caution

By definition, \(\mathbf{A} \cdot \hat{\mathbf{x}} = |\mathbf{A}| \cos \theta = A \cos \theta\). Substituting this into the rearranged form of (2.37), namely \(|\mathbf{x}|(1 + \mathbf{A} \cdot \hat{\mathbf{x}}) = |\mathbf{J}|^2 / (mk)\), we immediately obtain the desired polar equation for \(r(t) = |\mathbf{x}(t)|\).

NoteProposition: Detailed Geometric Classification of Keplerian Orbits

The polar equation derived from the Runge–Lenz vector, \[r = \frac{\ell}{1 + A \cos \theta}, \quad \ell = \frac{|\mathbf{J}|^2}{mk},\] characterizes a conic section with one focus at the origin and eccentricity \(e = A\). The trajectory is:

  1. An ellipse if \(E < 0\), which corresponds to \(A < 1\).1

  2. A parabola if \(E = 0\), which corresponds to \(A = 1\).

  3. A hyperbola if \(E > 0\), which corresponds to \(A > 1\).

1 If \(A = 0\), the eccentricity is zero and the orbit is a circle.

Caution

We begin by transforming the polar equation \(r(1 + A \cos \theta) = \ell\) into Cartesian coordinates \((x_1, x_2)\). Substituting \(r = \sqrt{x_1^2 + x_2^2}\) and \(r \cos \theta = x_1\), we have: \[\sqrt{x_1^2 + x_2^2} + A x_1 = \ell \implies \sqrt{x_1^2 + x_2^2} = \ell - A x_1.\] Squaring both sides yields: \[x_1^2 + x_2^2 = \ell^2 - 2 \ell A x_1 + A^2 x_1^2 \implies (1 - A^2) x_1^2 + 2 \ell A x_1 + x_2^2 = \ell^2.\]

Case 1: \(A < 1\) (Elliptical Orbits) If \(A < 1\), we can divide by \((1 - A^2)\) and complete the square for \(x_1\): \[x_1^2 + \frac{2 \ell A}{1 - A^2} x_1 + \frac{x_2^2}{1 - A^2} = \frac{\ell^2}{1 - A^2}.\] Adding \((\frac{\ell A}{1 - A^2})^2\) to both sides results in: \[\left( x_1 + \frac{\ell A}{1 - A^2} \right)^2 + \frac{x_2^2}{1 - A^2} = \frac{\ell^2}{(1 - A^2)^2}.\] This is the standard form of an ellipse \(\frac{(x_1 - x_c)^2}{a^2} + \frac{x_2^2}{b^2} = 1\), where the semi-major axis is \(a = \frac{\ell}{1 - A^2}\). Using the earlier energy relation \(A^2 = 1 + \frac{2 |\mathbf{J}|^2 E}{mk^2}\), we observe that \(1 - A^2 = -\frac{2 |\mathbf{J}|^2 E}{mk^2}\). For \(A < 1\), it is necessary that \(E < 0\), confirming that bound states are elliptical.

Case 2: \(A = 1\) (Parabolic Orbits) If \(A = 1\), the \(x_1^2\) terms cancel, leaving: \[2 \ell x_1 + x_2^2 = \ell^2 \implies x_1 = -\frac{1}{2\ell} x_2^2 + \frac{\ell}{2}.\] This is a parabola opening along the negative \(x_1\)-axis. Substituting \(A=1\) into the energy relation gives \(0 = \frac{2 |\mathbf{J}|^2 E}{mk^2}\), which implies \(E = 0\).

Case 3: \(A > 1\) (Hyperbolic Orbits) If \(A > 1\), the coefficient \((1 - A^2)\) is negative. Letting \(B^2 = A^2 - 1 > 0\), the equation becomes: \[-B^2 x_1^2 + 2 \ell A x_1 + x_2^2 = \ell^2.\] Completing the square in \(x_1\) yields the standard hyperbola form: \[\frac{(x_1 - x_c)^2}{a^2} - \frac{x_2^2}{b^2} = 1.\] Since \(A^2 > 1\), the energy relation \(A^2 - 1 = \frac{2 |\mathbf{J}|^2 E}{mk^2}\) necessitates \(E > 0\), representing unbound scattering states.

Code
viewof A = Inputs.range([0, 2], {value: 1.48, step: 0.01, label: "Eccentricity (A)"})
viewof l = Inputs.range([0.1, 2], {value: 1.4, step: 0.1, label: "Semi-latus rectum (ℓ)"})
// side = 0 means Right Focus (perihelion at theta=0)
// side = PI means Left Focus (perihelion at theta=PI)
viewof orientation = Inputs.radio(new Map([["Right Focus", 0], ["Left Focus", Math.PI]]), {value: Math.PI, label: "Sun Position"})

// 2. Main visualization cell
chart = {
  const width = 600;
  const height = 400;
  const scale = 50; 
  
  const svg = d3.create("svg")
      .attr("viewBox", [-width / 2, -height / 2, width, height])
      .style("background", "#fdfdfd")
      .style("border", "1px solid #eee");

  // Draw Grid
  svg.append("g").attr("stroke", "#eee").call(g => {
    g.append("line").attr("x1", -width/2).attr("x2", width/2);
    g.append("line").attr("y1", -height/2).attr("y2", height/2);
  });

  const points = [];
  
  // Logic Fix: Define the angular window based on eccentricity
  // For A >= 1, the denominator (1 + A*cos(t)) must be > 0
  let maxDelta = Math.PI;
  if (A >= 1) {
    maxDelta = Math.acos(-1/A) - 0.05; 
  }

  // Draw from -maxDelta to +maxDelta relative to the perihelion direction
  for (let t = -maxDelta; t <= maxDelta; t += 0.01) {
    const r = l / (1 + A * Math.cos(t));
    // Apply the orientation shift here
    const finalTheta = t + orientation;
    points.push([r * Math.cos(finalTheta) * scale, -r * Math.sin(finalTheta) * scale]);
  }

  const line = d3.line();

  // Draw Orbit Path
  svg.append("path")
      .datum(points)
      .attr("fill", "none")
      .attr("stroke", A < 1 ? "#2196F3" : (A === 1 ? "#4CAF50" : "#F44336"))
      .attr("stroke-width", 2.5)
      .attr("d", line);

  // Draw Sun (Focus always at 0,0)
  svg.append("circle")
      .attr("r", 6)
      .attr("fill", "#FFC107")
      .attr("stroke", "#333");

  // Dynamic Text
  const type = A < 1 ? "Ellipse" : (A == 1 ? "Parabola" : "Hyperbola");
  const posText = orientation === 0 ? "Right Focus" : "Left Focus";

  svg.append("text")
     .attr("x", -width/2 + 20)
     .attr("y", -height/2 + 30)
     .text(`Orbit: ${type} (${posText})`)
     .style("font-family", "sans-serif")
     .style("font-weight", "bold");

  return svg.node();
}

4 Special Properties of the Kepler Problem

The dynamics of the Kepler problem exhibit a high degree of symmetry, leading to behaviors that are absent in general central force systems.

4.1 Characteristics of General Radial Potentials

For any radial potential \(V(|\mathbf{x}|)\), the system possesses rotational symmetry, which leads to the following reductions:

Planar Motion: Provided that the angular momentum \(\mathbf{J} \neq \mathbf{0}\), the motion of the particle is strictly confined to a two-dimensional plane \(\mathbb{R}^2\) perpendicular to \(\mathbf{J}\).

Dimensionality Reduction: The study of the system in phase space is simplified from 6 dimensions (\(\mathbb{R}^3 \times \mathbb{R}^3\)) to 4 dimensions (\(\mathbb{R}^2 \times \mathbb{R}^2\)).

Fundamental Conservation Laws: Typically, only the energy \(E\) and the scalar angular momentum \(J = |\mathbf{J}|\) are conserved.

Non-closure of Orbits: Along a trajectory \(\mathbf{x}(t)\), the motion generally fills a 2-dimensional joint level set in phase space. Geometrically, the orbit in the plane does not close; instead, it undergoes precession, appearing as an ellipse that slowly rotates around the central force origin.

4.2 Uniqueness of the Kepler Potential (\(V = -k/|\mathbf{x}|\))

The Kepler problem is a “degenerate” system in the sense that it possesses more conserved quantities than degrees of freedom, a property known as maximal superintegrability.

NoteOrbital Closure and the Runge–Lenz Vector

In the Kepler problem, the conservation of the Runge–Lenz vector \(\mathbf{A}\) fixes the orientation of the orbit’s major axis. This provides an additional constraint that reduces the trajectory’s level set in phase space to a 1-dimensional manifold (a curve).

Closed Orbits: For \(E < 0\), the joint level set is compact, and the resulting trajectory is a simple closed curve—specifically, a fixed ellipse that does not precess.

Isochronicity: For a given energy level \(E\), the period of the closed orbit depends solely on \(E\) and is independent of the angular momentum \(J\).

Caution

The mathematical explanation for these properties lies in the symmetry group of the Hamiltonian. The Hamiltonian flows generated by \(\mathbf{J}\) and \(\mathbf{A}\) commute with the time evolution of the system. On a fixed energy surface \(H=E\) (for \(E < 0\)), these generators span an \(\mathfrak{so}(4)\) Lie algebra. This symmetry acts transitively on the energy surface, implying that all states with the same energy are dynamically equivalent under the action of these symmetry transformations.

The hidden symmetry of the Kepler problem ensures that the perihelion position remains stationary, a result unique to the inverse-square law as stated by Bertrand’s Theorem, which identifies \(V \propto 1/r\) and \(V \propto r^2\) as the only central potentials where all bound orbits are closed.