(* Relativistic rocket equation by John Walker -- kelvin@fourmilab.ch http://www.fourmilab.ch/ June 4th, 1995 *) c = 299792458 (* Speed of light in vacuuum, m/sec *) (* Relativistic rocket equations *) (* Distance traveled at constant acceleration a for ship's time t *) relRockD[a_, t_] := ((c ^ 2) / a) * (Cosh[a * (t / c)] - 1) (* Time elapsed in unaccelerated frame after constant acceleration a for ship's time t *) relRockT[a_, t_] := (c / a) * Sinh[(a * t) / c] (* Velocity achieved after constant acceleration a for ship's time t *) relRockV[a_, t_] := c * Tanh[(a * t) / c] (* Relativistic rocket equations solved for ship's time *) (* Ship time to travel a given distance d at acceleration a *) shipTimeD[a_, d_] := (c * ArcCosh[1 + ((a * d) / (c ^ 2))]) / a (* Ship time for a given duration of rest frame time *) shipTimeT[a_, tp_]:=(c * ArcSinh[(a * tp) / c]) / a (* Ship time to reach a given velocity v at acceleration a *) shipTimeV[a_, v_] := (c * ArcTanh[v / c]) / a (* Relativistic rocket equations solved for acceleration required *) (* Voyages with turn-around at the midpoint *) (* Ship time to travel, rest frame to rest frame, a distance d at a constant acceleration of a. *) voyageT[a_, d_] := 2 * shipTimeD[a, d / 2] (* Velocity at turnaround point for a voyage at distance d at a constant acceleration of a. *) voyageV[a_, d_] := relRockV[a, shipTimeD[a, d / 2]] (* Time elapsed in rest frame for a voyage of distance d at a constant acceleration of a. *) voyageTr[a_, d_] := 2 * relRockT[a, shipTimeD[a, d / 2]] (* Handy constants for forming queries *) hours = 3600 (* time periods in seconds *) days = 24 hours weeks = 7 days years = 365 days gee = 9.80665 (* Earth's gravity, m/sec^2 *) au = 149600000000 (* astronomical unit, metres *) lightyear = 9460530000000000 (* light year, metres *) parsec = 30856000000000000 (* parsec, metres *) kpc = parsec * 1000; (* kiloparsec, metres *)