// This program calculates the effect of a gravity-assisted slingshot // around a planet. This assumes a hyperbolic path. // u is the difference in planet speeds at (infinite) distance. It's also // known as the hyperbolic excess speed. u = 13.06 km/s calculateTransfer[u, jupiterradius, jupitermass] calculateTransfer[u, planetradius, planetmass] := { // E is the (constant) energy of the spacecraft per unit mass. E = 1/2 u^2 // h is the angular momentum of the spaceship with respect to the planet. // This is the minimum value of h^2. hsquaredmin = 2 planetradius^2 (E + (G planetmass / planetradius)) println["hsquaredmin is $hsquaredmin"] // This is the eccentricity of the orbit. eccentricity = hsquaredmin / (G planetmass planetradius) - 1 println["Eccentricity is $eccentricity"] rmin= (hsquaredmin / (G planetmass)) / (1 + eccentricity) println["Planet radius is $planetradius"] println["rmin is $rmin"] beta = 2 arccos[-1 / eccentricity] - pi println["Change in angle relative to planet is " + (beta->"degrees")] }