Exercise 1.11: Kepler's Third Law
(require [sicmutils.env :refer :all])This exercise asks us to derive Kepler's third law by considering a Lagrangian that describes two particles rotating in a circular orbit around their center of mass at some rate.
Here's the Lagrangian for "central force", in polar coordinates. This is rotational kinetic energy, minus some arbitrary potential inline_formula not implemented that depends on the distance inline_formula not implemented between the two particles.
(defn L-central-polar [m V] (fn [[_ [r phi] [rdot phidot]]] (let [T (* (/ 1 2) m (+ (square rdot) (square (* r phidot))))] (- T (V r)))))This function defines gravitational potential energy:
(defn gravitational-energy [G m1 m2] (fn [r] (- (/ (* G m1 m2) r))))What is the mass inline_formula not implemented in the Lagrangian above? It's the "reduced mass", totally unjustified at this point in the book:
(defn reduced-mass [m1 m2] (/ (* m1 m2) (+ m1 m2)))If you want to see why the reduced mass has the form it does, check out this derivation.
The Lagrangian is written in terms of some angle inline_formula not implemented and inline_formula not implemented, the distance between the two particles. inline_formula not implemented defines a circular path:
(defn q [r omega] (fn [t] (let [phi (* omega t)] (up r phi))))Write the Lagrange equations, given inline_formula not implemented and inline_formula not implemented:
(let [eqfn (Lagrange-equations (L-central-polar (reduced-mass m_1 m_2) (gravitational-energy G m_1 m_2)))] ((eqfn (q a n)) t))These two entries are residuals, equal to zero. Stare at the top residual and you might notice that you can can factor out:
the reduced mass, and
a factor of inline_formula not implemented
Manually factor these out:
(let [eqfn (Lagrange-equations (L-central-polar (reduced-mass m_1 m_2) (gravitational-energy G m_1 m_2)))] (* ((eqfn (q a n)) t) (/ (square a) (reduced-mass m_1 m_2))))And, boom, with some cleanup, we see Kepler's third law:
formula not implemented