# optimumLaunch.frink

``` /** 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]] ```

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 18491 days, 3 hours, 52 minutes ago.