Download or view optimumLaunch.frink in plain text format
/** This program determines the optimal launch angle to achieve the maximum
range. */
use systemSolver2.frink
symbolicMode[true]
showApproximations[false]
showDimensionName[false]
// Solve the system symbolically.
// h is height, v0 is initial velocity, t is time,
// theta is angle above horizontal.
launcher = new System[[h === h0 + Integrate[v0 sin[theta] - gravity t, t],
h === 0,
d === Integrate[v0 cos[theta], t]],
["gravity"]]
println["Symbolic solutions:"]
launcher.solveAll[]
dsols = launcher.solveForValues["d", [["v0", 30 mph], ["h0", 50 feet sin[theta]]]]
println[join["\n\n",dsols]]
println[]
// Print distances for each launch elevation.
for theta = 0 degrees to 90 degrees step 1 degree
for sol = eval[dsols]
if (sol conforms length) && (sol > 0.01 ft) // Only positive, full solutions
println[format[theta,"deg",3] + "\t" + format[sol,"ft",2]]
Download or view optimumLaunch.frink in plain text format
This is a program written in the programming language Frink.
For more information, view the Frink
Documentation or see More Sample Frink Programs.
Alan Eliasen was born 20217 days, 23 hours, 20 minutes ago.