%23%20%2F%2F%2F%20script%0A%23%20requires-python%20%3D%20%22%3E%3D3.11%22%0A%23%20dependencies%20%3D%20%5B%22marimo%3E%3D0.23.9%22%2C%20%22numpy%3E%3D2.0%22%2C%20%22matplotlib%3E%3D3.9%22%5D%0A%23%20%2F%2F%2F%0A%0Aimport%20marimo%0A%0A__generated_with%20%3D%20%220.25.2%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20Projectile%20motion%0A%0A%20%20%20%20%3E%20Marcos%20Duarte%2C%20Renato%20Naville%20Watanabe%3Cbr%3E%0A%20%20%20%20%3E%20%5BLaboratory%20of%20Biomechanics%20and%20Motor%20Control%5D(https%3A%2F%2Fbmclab.pesquisa.ufabc.edu.br%2F)%3Cbr%3E%0A%20%20%20%20%3E%20Federal%20University%20of%20ABC%2C%20Brazil%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20How%20to%20use%20this%20guide%0A%0A%20%20%20%20This%20notebook%20takes%20what%20is%20probably%20the%20simplest%20interesting%20problem%20in%20mechanics%20%E2%80%94%20a%20body%20moving%20through%20the%20air%20with%20nothing%20but%20gravity%20acting%20on%20it%20%E2%80%94%20and%20pushes%20it%20until%20it%20says%20something%20honest%20about%20human%20jumping.%20Along%20the%20way%20it%20predicts%20an%20optimum%20take-off%20angle%20of%20%2445%5Eo%24%2C%20and%20then%20confronts%20that%20prediction%20with%20the%20fact%20that%20no%20long%20jumper%20on%20Earth%20takes%20off%20anywhere%20near%20%2445%5Eo%24.%0A%0A%20%20%20%20Read%20it%20in%20order%20and%20run%20each%20cell%20as%20you%20reach%20it.%20Where%20you%20find%20a%20**Challenge**%20or%20a%20set%20of%20**Guiding%20questions**%2C%20stop%20and%20answer%20on%20a%20scratchpad%20before%20moving%20on.%20Several%20of%20them%20ask%20you%20to%20predict%20a%20number%20*before*%20the%20code%20prints%20it%3B%20the%20prediction%20is%20the%20point%2C%20and%20being%20wrong%20is%20the%20most%20useful%20thing%20that%20can%20happen%20to%20you%20here.%0A%0A%20%20%20%20The%20mathematics%20is%20deliberately%20plain%3A%20it%20is%20the%20constant-acceleration%20case%20from%20the%20notebook%20%5BKinematics%20of%20a%20particle%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fkinematics_particle.py)%2C%20done%20twice%20%E2%80%94%20once%20for%20the%20horizontal%20direction%2C%20where%20the%20acceleration%20is%20zero%2C%20and%20once%20for%20the%20vertical%2C%20where%20it%20is%20%24-g%24.%20Everything%20else%20in%20this%20notebook%20follows%20from%20those%20two%20lines.%0A%0A%20%20%20%20**Challenge%200.**%20Before%20you%20begin%2C%20think%20of%20one%20jump%20or%20throw%20you%20care%20about%3A%20a%20jump%20shot%2C%20a%20shot%20put%2C%20a%20dog%20catching%20a%20frisbee%2C%20your%20own%20vertical%20jump.%20Write%20down%20how%20high%20you%20think%20it%20goes%20and%20how%20long%20you%20think%20it%20stays%20in%20the%20air.%20Keep%20it%20nearby%3B%20the%20last%20sections%20ask%20you%20to%20come%20back%20to%20it.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20A%20jump%20worth%20understanding%0A%0A%20%20%20%20%3Cdiv%20style%3D%22background-color%3A%23F1F1F1%3Bborder%3A1px%20solid%20black%3Bpadding%3A10px%3B%22%3E%0A%20%20%20%20%20%20%20%20%3Cfigure%20aria-describedby%3D%22figure-caption-1%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fgithub.com%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fimages%2Fjadel.gif%3Fraw%3D1%22%20alt%3D%22triple%20jump%22%2F%3E%3Cbr%3E%3C%2Ffigure%3E%0A%20%20%20%20%3C%2Fdiv%3E%0A%0A%20%20%20%20%3Cspan%20id%3D%22figure-caption-1%22%20class%3D%22figure-caption%22%20style%3D%22display%3Ablock%3Btext-align%3Acenter%3Bfont-style%3Aitalic%22%3EFigure.%20Animations%20of%20a%20triple%20jump%20performed%20by%20athlete%20Jadel%20Greg%C3%B3rio%20during%20training.%20The%20jump%20distance%20was%2016.20%20meters.%20The%20two%20animations%20are%20synchronized%20and%20represent%20the%20same%20athlete%20during%20the%20same%20jump%2C%20with%20the%20one%20on%20the%20left%20representing%20the%20athlete's%20movement%20subtracting%20the%20horizontal%20displacement%20of%20his%20center%20of%20gravity.%20From%20the%20website%20%3Ca%20href%3D%22https%3A%2F%2Fbmclab.pesquisa.ufabc.edu.br%2Fanalise-biomecanica-do-salto-em-distancia%2F%22%3EAn%C3%A1lise%20do%20salto%20em%20dist%C3%A2ncia%3C%2Fa%3E.%3C%2Fspan%3E%0A%0A%20%20%20%20Watch%20the%20animation%20on%20the%20right%20for%20a%20while%20before%20reading%20on.%20The%20athlete%20is%20doing%20a%20great%20deal%3A%20swinging%20his%20arms%2C%20cycling%20his%20legs%2C%20rotating%20his%20trunk.%20And%20yet%2C%20between%20each%20take-off%20and%20each%20landing%2C%20there%20is%20one%20thing%20about%20him%20that%20is%20entirely%20out%20of%20his%20control.%0A%0A%20%20%20%20That%20thing%20is%20the%20path%20of%20his%20center%20of%20gravity.%20Once%20his%20foot%20leaves%20the%20ground%2C%20no%20arm%20swing%20and%20no%20leg%20cycle%20can%20change%20where%20that%20point%20goes%3B%20they%20can%20only%20change%20how%20the%20body%20is%20arranged%20*around*%20it.%20The%20animation%20on%20the%20left%20makes%20the%20point%20in%20another%20way%3A%20with%20the%20horizontal%20travel%20of%20the%20center%20of%20gravity%20subtracted%2C%20what%20is%20left%20is%20a%20man%20running%20on%20the%20spot.%0A%0A%20%20%20%20This%20notebook%20is%20about%20that%20uncontrollable%20path.%0A%0A%20%20%20%20**Guiding%20questions%200.**%0A%0A%20%20%20%201.%20If%20the%20athlete%20cannot%20change%20his%20center%20of%20gravity's%20trajectory%20in%20the%20air%2C%20what%20exactly%20is%20all%20that%20arm%20and%20leg%20movement%20for%3F%0A%20%20%20%202.%20He%20covered%2016.20%20m%20in%20three%20contacts.%20Guess%20the%20flight%20time%20of%20one%20of%20them.%20You%20will%20be%20able%20to%20check%20your%20guess%20in%20a%20few%20sections.%0A%20%20%20%203.%20A%20jump%20of%2016.20%20m%20from%20a%20body%20whose%20legs%20are%20barely%20a%20metre%20long%3A%20where%20does%20the%20distance%20come%20from%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Python%20setup%0A%0A%20%20%20%20Two%20libraries%20carry%20this%20notebook%3A%20NumPy%20for%20the%20numbers%20and%20Matplotlib%20for%20the%20plots.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20import%20matplotlib%0A%0A%20%20%20%20matplotlib.rc(%22axes%22%2C%20labelsize%3D13%2C%20titlesize%3D14)%0A%20%20%20%20matplotlib.rc(%22xtick%22%2C%20labelsize%3D11)%0A%20%20%20%20matplotlib.rc(%22ytick%22%2C%20labelsize%3D11)%0A%20%20%20%20matplotlib.rc(%22legend%22%2C%20fontsize%3D11)%0A%20%20%20%20return%20(np%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20The%20model%2C%20and%20what%20it%20throws%20away%0A%0A%20%20%20%20**Projectile**%20or%20**ballistic%20motion**%20is%20the%20movement%20of%20a%20body%20in%20the%20air%20near%20Earth's%20surface%20where%20the%20main%20force%20acting%20on%20the%20body%20is%20the%20gravitational%20force.%20If%20we%20neglect%20the%20air%20resistance%20and%20approximate%20the%20gravity%20force%20(which%20acts%20only%20in%20the%20vertical%20direction)%20on%20the%20body%20as%20constant%2C%20the%20body%20will%20have%20constant%20velocity%20in%20the%20horizontal%20direction%20and%20constant%20acceleration%20(the%20gravitational%20acceleration)%20in%20the%20vertical%20direction.%0A%0A%20%20%20%20That%20sentence%20hides%20three%20decisions%2C%20and%20it%20is%20worth%20naming%20them%3A%0A%0A%20%20%20%201.%20**The%20body%20is%20a%20particle.**%20Its%20size%2C%20shape%20and%20orientation%20are%20ignored%3B%20only%20one%20point%20moves.%20For%20a%20body%20made%20of%20many%20parts%2C%20that%20point%20is%20the%20*center%20of%20mass*%2C%20and%20we%20return%20to%20this%20below.%0A%20%20%20%202.%20**There%20is%20no%20air%20resistance.**%20The%20only%20force%20is%20gravity.%20This%20is%20the%20assumption%20that%20fails%20first%2C%20and%20how%20badly%20it%20fails%20depends%20entirely%20on%20what%20you%20threw.%0A%20%20%20%203.%20**Gravity%20is%20constant**%2C%20%24g%20%3D%209.8%5C%3B%5Cmathrm%7Bm%2Fs%5E2%7D%24%2C%20pointing%20down%2C%20everywhere%20along%20the%20path.%0A%0A%20%20%20%20None%20of%20the%20three%20is%20true.%20All%20three%20are%20close%20enough%20for%20a%20human%20jump%2C%20which%20is%20why%20the%20model%20earns%20its%20place%20in%20biomechanics.%0A%0A%20%20%20%20**Challenge%201.**%20Rank%20these%20by%20how%20badly%20assumption%202%20breaks%3A%20a%20shot%20put%2C%20a%20javelin%2C%20a%20badminton%20shuttlecock%2C%20a%20long%20jumper%2C%20a%20table%20tennis%20ball%20with%20topspin.%20For%20the%20two%20worst%20offenders%2C%20say%20*why*%20%E2%80%94%20is%20it%20the%20speed%2C%20the%20mass%2C%20the%20surface%20area%2C%20or%20something%20the%20object%20is%20doing%20on%20purpose%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Equations%20of%20motion%0A%0A%20%20%20%20Let's%20deduce%20the%20equations%20for%20a%20projectile%20motion%20and%20investigate%20their%20characteristics.%20For%20simplicity%2C%20let's%20consider%20for%20now%20a%20planar%20movement%2C%20neglect%20the%20air%20resistance%2C%20and%20take%20the%20gravitational%20acceleration%20as%20%24g%3D9.8%5C%3B%5Cmathrm%7Bm%2Fs%5E2%7D%24.%20Consider%20a%20body%20(which%20we%20will%20treat%20as%20a%20particle)%20launched%20into%20the%20air%20with%20initial%20angle%20%24%5Ctheta%24%20with%20respect%20to%20the%20horizontal%20(the%20%24%5Cmathbf%7Bx%7D%24%20direction)%20and%20initial%20velocity%20%24%5Cmathbf%7Bv_0%7D%24%2C%20a%20vector%20quantity%20with%20components%20%24v_%7B0x%7D%3Dv_0%5Ccos(%5Ctheta)%24%20and%20%24v_%7B0y%7D%3Dv_0%5Csin(%5Ctheta)%24.%0A%0A%20%20%20%20The%20equations%20of%20motion%20for%20position%20(%24x%2C%20y%24)%2C%20velocity%20(%24v_x%2C%20v_y%24)%2C%20and%20acceleration%20(%24a_x%2C%20a_y%24)%20are%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cbegin%7Balign%7D%0A%20%20%20%20%26%20x(t)%20%3D%20x_0%20%2B%20v_0%5Ccos(%5Ctheta)%5C%3At%20%5C%5C%0A%20%20%20%20%26%20y(t)%20%3D%20y_0%20%2B%20v_0%5Csin(%5Ctheta)%5C%3At%20-%20%5Cfrac%7Bg%5C%3At%5E2%7D%7B2%7D%20%5C%5C%0A%20%20%20%20%26%20v_x(t)%20%3D%20v_0%5Ccos(%5Ctheta)%20%5C%5C%0A%20%20%20%20%26%20v_y(t)%20%3D%20v_0%5Csin(%5Ctheta)%20-%20g%5C%3At%20%5C%5C%0A%20%20%20%20%26%20a_x(t)%20%3D%200%20%5C%5C%0A%20%20%20%20%26%20a_y(t)%20%3D%20-g%0A%20%20%20%20%5Cend%7Balign%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20Read%20the%20two%20columns%20of%20that%20block%20separately%20and%20the%20whole%20thing%20becomes%20much%20smaller%20than%20it%20looks.%20The%20horizontal%20column%20is%20*a%20particle%20at%20constant%20speed*.%20The%20vertical%20column%20is%20*a%20particle%20at%20constant%20acceleration*.%20They%20are%20the%20second%20and%20third%20of%20the%20three%20standard%20cases%20derived%20in%20%5BKinematics%20of%20a%20particle%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fkinematics_particle.py)%2C%20and%20they%20do%20not%20talk%20to%20each%20other%3A%20gravity%20never%20appears%20in%20%24x(t)%24%2C%20and%20the%20launch%20angle%20never%20appears%20in%20%24a_y(t)%24.%0A%0A%20%20%20%20That%20independence%20is%20the%20single%20most%20useful%20fact%20about%20projectile%20motion.%20A%20bullet%20fired%20horizontally%20and%20a%20bullet%20dropped%20from%20the%20same%20height%20hit%20the%20ground%20at%20the%20same%20instant.%0A%0A%20%20%20%20Everything%20in%20the%20next%20four%20sections%20is%20obtained%20by%20asking%20the%20same%20two%20questions%20of%20these%20equations%3A%20*when%20is%20the%20vertical%20velocity%20zero*%20(the%20top%20of%20the%20flight)%2C%20and%20*when%20is%20the%20vertical%20position%20back%20to%20where%20it%20started*%20(the%20landing).%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Time%20of%20flight%0A%0A%20%20%20%20The%20time%20of%20flight%20can%20be%20calculated%20from%20the%20equation%20for%20the%20vertical%20velocity%2C%20using%20the%20properties%20that%20at%20the%20maximum%20height%20the%20vertical%20velocity%20is%20zero%20and%20that%20the%20time%20of%20rising%20is%20equal%20to%20the%20time%20of%20falling%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20t_%7Bflight%7D%20%3D%20%5Cfrac%7B2v_0%5Csin(%5Ctheta)%7D%7Bg%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20Note%20what%20is%20*not*%20in%20that%20expression%3A%20the%20horizontal%20velocity.%20How%20long%20a%20projectile%20stays%20in%20the%20air%20is%20decided%20entirely%20at%20take-off%20by%20its%20vertical%20velocity%2C%20and%20running%20faster%20does%20not%20buy%20you%20one%20millisecond%20more.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Maximum%20height%0A%0A%20%20%20%20Using%20the%20time%20of%20flight%20we%20just%20calculated%2C%20and%20once%20again%20the%20fact%20that%20at%20the%20maximum%20height%20the%20body%20has%20zero%20vertical%20velocity%2C%20the%20maximum%20height%20%24h%24%20can%20be%20obtained%20from%20the%20equation%20for%20the%20vertical%20position%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20h%20%3D%20%5Cfrac%7Bv_0%5E2%5Csin%5E2(%5Ctheta)%7D%7B2g%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20The%20square%20on%20%24v_0%24%20is%20worth%20a%20moment.%20Ten%20percent%20more%20vertical%20velocity%20at%20take-off%20buys%20about%20twenty-one%20percent%20more%20height%2C%20which%20is%20why%20vertical-jump%20training%20is%20so%20obsessive%20about%20the%20instant%20of%20take-off%20and%20so%20indifferent%20to%20everything%20that%20happens%20afterwards.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Range%2C%20the%20maximum%20horizontal%20distance%0A%0A%20%20%20%20The%20range%2C%20%24R%24%2C%20is%20the%20maximum%20horizontal%20distance%20reached%20with%20respect%20to%20the%20point%20of%20release.%20The%20horizontal%20motion%20has%20constant%20velocity%2C%20so%20it%20is%20simply%20the%20horizontal%20velocity%20multiplied%20by%20the%20time%20available%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20R%20%3D%20v_0%5Ccos(%5Ctheta)%5C%3At_%7Bflight%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20Substituting%20the%20expression%20for%20%24t_%7Bflight%7D%24%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20R%20%3D%20%5Cfrac%7Bv_0%5E2%5Csin(2%5Ctheta)%7D%7Bg%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20This%20compact%20form%20carries%20the%20whole%20tension%20of%20a%20jump.%20The%20angle%20appears%20once%2C%20inside%20%24%5Csin(2%5Ctheta)%24%2C%20which%20is%20largest%20at%20%24%5Ctheta%20%3D%2045%5Eo%24.%20The%20speed%20appears%20squared%2C%20so%20it%20always%20helps.%20Distance%20is%20a%20negotiation%20between%20going%20fast%20and%20going%20up%2C%20and%20the%20two%20are%20in%20conflict%20because%20they%20share%20the%20same%20take-off%20velocity.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Parabolic%20trajectory%0A%0A%20%20%20%20The%20equation%20for%20the%20horizontal%20position%20versus%20time%20is%20the%20equation%20of%20a%20straight%20line%2C%20and%20for%20the%20vertical%20position%20it%20is%20the%20equation%20of%20a%20parabola.%20We%20can%20prove%20that%20the%20spatial%20trajectory%20(the%20vertical%20position%20versus%20the%20horizontal%20position)%20is%20also%20a%20parabola%20if%20we%20use%20the%20two%20equations%20for%20position%20and%20eliminate%20the%20variable%20time%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20y%20%3D%20y_0%20%2B%20%5Ctan(%5Ctheta)(x-x_0)%20-%20%5Cfrac%7Bg%7D%7B2v_0%5E2%5Ccos%5E2(%5Ctheta)%7D(x-x_0)%5E2%0A%20%20%20%20%24%24%0A%0A%20%20%20%20Since%20%24y_0%2C%5C%3A%20x_0%2C%5C%3A%20%5Ctheta%2C%5C%3A%20v_0%2C%5C%3A%20g%24%20are%20constants%2C%20this%20is%20the%20equation%20of%20a%20parabola.%0A%0A%20%20%20%20**Guiding%20questions%201.**%0A%0A%20%20%20%201.%20Two%20projectiles%20are%20launched%20with%20the%20same%20speed%2C%20one%20at%20%2430%5Eo%24%20and%20the%20other%20at%20%2460%5Eo%24.%20Which%20lands%20farther%3F%20Which%20stays%20in%20the%20air%20longer%3F%20Which%20is%20higher%20at%20the%20top%3F%0A%20%20%20%202.%20The%20range%20equation%20says%20%24R%24%20grows%20with%20%24v_0%5E2%24%20but%20the%20time%20of%20flight%20grows%20only%20with%20%24v_0%24.%20Explain%20the%20difference%20in%20one%20sentence.%0A%20%20%20%203.%20On%20the%20Moon%2C%20%24g%24%20is%20about%20six%20times%20smaller.%20By%20what%20factor%20does%20the%20range%20of%20the%20same%20jump%20change%3F%20And%20the%20maximum%20height%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**Exercise%201.**%20A%20ball%20leaves%20ground%20level%20at%20%24(v_x%2Cv_y)%3D(6%2C8)%24%20m%2Fs.%20Calculate%20flight%20time%2C%20peak%20height%20and%20range%20for%20%24g%3D9.81%24%20m%2Fs%C2%B2.%0A%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Worked%20solution%20%E2%80%94%20Exercise%201%0A%0A%20%20%20%20%24T%3D2v_y%2Fg%3D1.631%24%20s%2C%20%24h%3Dv_y%5E2%2F(2g)%3D3.262%24%20m%20and%20%24R%3Dv_xT%3D9.786%24%20m.%20At%20the%20apex%20%24v_y%3D0%24%20but%20%24v_x%3D6%24%20m%2Fs%3A%20the%20ball%20is%20not%20at%20rest.%0A%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Seeing%20the%20trajectories%0A%0A%20%20%20%20Let's%20compute%20instead%20of%20only%20deriving.%20The%20function%20below%20returns%20the%20positions%20of%20a%20projectile%20released%20with%20a%20given%20speed%20and%20angle%2C%20from%20a%20given%20height%2C%20until%20it%20comes%20back%20down%20to%20zero%20height.%20It%20is%20nothing%20more%20than%20the%20two%20position%20equations%20above%2C%20plus%20the%20landing%20time%20obtained%20by%20solving%20the%20vertical%20equation%20for%20%24y%20%3D%200%24.%0A%0A%20%20%20%20**Before%20you%20run%20the%20next%20cells**%2C%20predict%20two%20things%20and%20write%20them%20down%3A%0A%0A%20%20%20%201.%20Among%20the%20release%20angles%20%2415%5Eo%24%2C%20%2430%5Eo%24%2C%20%2445%5Eo%24%2C%20%2460%5Eo%24%20and%20%2475%5Eo%24%2C%20which%20goes%20farthest%2C%20and%20by%20how%20much%20does%20it%20beat%20the%20second%3F%0A%20%20%20%202.%20Two%20of%20those%20five%20angles%20land%20at%20almost%20exactly%20the%20same%20distance.%20Which%20two%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.function%0Adef%20trajectory(v0%2C%20theta%2C%20h0%3D0.0%2C%20g%3D9.8%2C%20n%3D200)%3A%0A%20%20%20%20%22%22%22Trajectory%20of%20a%20projectile%20released%20with%20speed%20%60v0%60%20%5Bm%2Fs%5D%20at%20%60theta%60%20%5Bdeg%5D.%0A%0A%20%20%20%20The%20body%20is%20released%20from%20the%20height%20%60h0%60%20%5Bm%5D%20and%20the%20trajectory%20ends%20when%0A%20%20%20%20it%20returns%20to%20the%20height%20zero.%20Returns%20the%20instants%20%5Bs%5D%20and%20the%20horizontal%0A%20%20%20%20and%20vertical%20positions%20%5Bm%5D.%0A%20%20%20%20%22%22%22%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20vx%20%3D%20v0%20*%20np.cos(np.deg2rad(theta))%0A%20%20%20%20vy%20%3D%20v0%20*%20np.sin(np.deg2rad(theta))%0A%20%20%20%20t_flight%20%3D%20(vy%20%2B%20np.sqrt(vy**2%20%2B%202%20*%20g%20*%20h0))%20%2F%20g%0A%20%20%20%20t%20%3D%20np.linspace(0%2C%20t_flight%2C%20n)%0A%0A%20%20%20%20return%20t%2C%20vx%20*%20t%2C%20h0%20%2B%20vy%20*%20t%20-%20g%20*%20t**2%20%2F%202%0A%0A%0A%40app.function%0Adef%20flight(v0%2C%20theta%2C%20h0%3D0.0%2C%20g%3D9.8)%3A%0A%20%20%20%20%22%22%22Time%20of%20flight%20%5Bs%5D%2C%20horizontal%20distance%20%5Bm%5D%20and%20peak%20height%20%5Bm%5D.%0A%0A%20%20%20%20For%20a%20projectile%20released%20with%20speed%20%60v0%60%20%5Bm%2Fs%5D%20at%20the%20angle%20%60theta%60%20%5Bdeg%5D%0A%20%20%20%20from%20the%20height%20%60h0%60%20%5Bm%5D%2C%20landing%20at%20the%20height%20zero.%0A%20%20%20%20%22%22%22%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20vx%20%3D%20v0%20*%20np.cos(np.deg2rad(theta))%0A%20%20%20%20vy%20%3D%20v0%20*%20np.sin(np.deg2rad(theta))%0A%20%20%20%20t_flight%20%3D%20(vy%20%2B%20np.sqrt(vy**2%20%2B%202%20*%20g%20*%20h0))%20%2F%20g%0A%0A%20%20%20%20return%20t_flight%2C%20vx%20*%20t_flight%2C%20h0%20%2B%20vy**2%20%2F%20(2%20*%20g)%0A%0A%0A%40app.function%0Adef%20plot_trajectories(v0%2C%20angles%2C%20h0%3D0.0%2C%20g%3D9.8)%3A%0A%20%20%20%20%22%22%22Plot%20the%20trajectories%20of%20a%20projectile%20released%20at%20different%20angles.%22%22%22%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%0A%20%20%20%20_%2C%20ax%20%3D%20plt.subplots(figsize%3D(9%2C%204.5))%0A%20%20%20%20for%20_theta%20in%20angles%3A%0A%20%20%20%20%20%20%20%20_%2C%20_x%2C%20_y%20%3D%20trajectory(v0%2C%20_theta%2C%20h0%3Dh0%2C%20g%3Dg)%0A%20%20%20%20%20%20%20%20ax.plot(_x%2C%20_y%2C%20linewidth%3D2%2C%20label%3Df%22%7B_theta%3A.0f%7D%24%5Eo%24%22)%0A%20%20%20%20%20%20%20%20ax.plot(_x%5B-1%5D%2C%20_y%5B-1%5D%2C%20%22o%22%2C%20color%3Dax.lines%5B-1%5D.get_color())%0A%0A%20%20%20%20ax.axhline(0%2C%20color%3D%22k%22%2C%20linewidth%3D1)%0A%20%20%20%20ax.set_xlabel(%22Horizontal%20position%20%5Bm%5D%22)%0A%20%20%20%20ax.set_ylabel(%22Vertical%20position%20%5Bm%5D%22)%0A%20%20%20%20ax.set_title(f%22Projectile%20motion%2C%20%24v_0%24%20%3D%20%7Bv0%7D%20m%2Fs%2C%20%24h_0%24%20%3D%20%7Bh0%7D%20m%22)%0A%20%20%20%20ax.legend(title%3D%22Release%20angle%22%2C%20loc%3D%22upper%20right%22)%0A%20%20%20%20ax.set_ylim(bottom%3D0)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20plt.show()%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20plot_trajectories(v0%3D10%2C%20angles%3D%5B15%2C%2030%2C%2045%2C%2060%2C%2075%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20print(%22Angle%20%20%20Time%20of%20flight%20%20%20Distance%20%20%20Peak%20height%22)%0A%20%20%20%20for%20_theta%20in%20%5B15%2C%2030%2C%2045%2C%2060%2C%2075%2C%2090%5D%3A%0A%20%20%20%20%20%20%20%20_t%2C%20_d%2C%20_h%20%3D%20flight(v0%3D10%2C%20theta%3D_theta)%0A%20%20%20%20%20%20%20%20print(f%22%7B_theta%3A4.0f%7D%C2%B0%20%7B_t%3A12.2f%7D%20s%20%7B_d%3A10.2f%7D%20m%20%7B_h%3A11.2f%7D%20m%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Release%20angle%20for%20maximum%20horizontal%20distance%0A%0A%20%20%20%20From%20the%20expression%20for%20the%20range%2C%20we%20note%20that%20the%20maximum%20value%20is%20reached%20when%20%24%5Csin(2%5Ctheta)%3D1%24%2C%20which%20gives%20%24%5Ctheta%3D45%5Eo%24.%20The%20figure%20and%20the%20table%20confirm%20it.%0A%0A%20%20%20%20They%20also%20show%20the%20symmetry%20that%20the%20algebra%20was%20hiding.%20Because%20%24%5Csin(2%5Ctheta)%20%3D%20%5Csin(180%5Eo%20-%202%5Ctheta)%24%2C%20any%20two%20angles%20that%20add%20up%20to%20%2490%5Eo%24%20give%20exactly%20the%20same%20range%3A%20%2430%5Eo%24%20and%20%2460%5Eo%24%20land%20in%20the%20same%20place%2C%20and%20so%20do%20%2415%5Eo%24%20and%20%2475%5Eo%24.%20They%20get%20there%20by%20very%20different%20routes%20%E2%80%94%20one%20flat%20and%20quick%2C%20one%20high%20and%20slow%20%E2%80%94%20but%20they%20get%20there.%0A%0A%20%20%20%20%23%23%23%20Release%20angle%20for%20maximum%20height%0A%0A%20%20%20%20From%20the%20expression%20for%20the%20maximum%20height%2C%20we%20note%20that%20the%20maximum%20value%20is%20reached%20when%20%24%5Csin%5E2(%5Ctheta)%3D1%24%2C%20which%20gives%20%24%5Ctheta%3D90%5Eo%24.%20Straight%20up.%20Obvious%20once%20stated%2C%20and%20the%20last%20row%20of%20the%20table%20is%20the%20reminder%20of%20what%20it%20costs%3A%20a%20range%20of%20zero.%0A%0A%20%20%20%20**Challenge%202.**%20The%20curve%20of%20range%20against%20angle%20is%20*flat*%20near%20its%20maximum%3A%20going%20from%20%2445%5Eo%24%20to%20%2440%5Eo%24%20costs%20surprisingly%20little%20distance.%20Use%20the%20%60flight%60%20function%20to%20work%20out%20how%20much%20you%20lose%2C%20in%20percent%2C%20at%20%2440%5Eo%24%20and%20at%20%2435%5Eo%24.%20Keep%20the%20answer%20in%20mind%20%E2%80%94%20the%20long%20jump%20section%20is%20about%20to%20make%20it%20matter.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Playing%20with%20projectile%20motion%0A%0A%20%20%20%20Here%20is%20an%20interactive%20animation%20of%20a%20projectile%20motion%20where%20you%20can%20change%20the%20initial%20angle%20and%20speed%20of%20the%20body%20(or%2C%20to%20start%2C%20simply%20press%20the%20button%20*Fire*%20in%20the%20rectangular%20menu).%20Try%20to%20reproduce%20the%20symmetry%20you%20just%20found%3A%20fire%20at%20%2430%5Eo%24%2C%20then%20at%20%2460%5Eo%24%2C%20with%20the%20same%20speed.%20And%20then%20turn%20on%20air%20resistance%20and%20watch%20the%20symmetry%20break.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.Html(%0A%20%20%20%20%20%20%20%20%22%22%22%3Ciframe%0A%20%20%20%20%20%20%20%20src%3D%22https%3A%2F%2Fphet.colorado.edu%2Fsims%2Fhtml%2Fprojectile-motion%2Flatest%2Fprojectile-motion_en.html%22%0A%20%20%20%20%20%20%20%20width%3D%22100%25%22%20height%3D%22500%22%20style%3D%22border%3Anone%22%3E%3C%2Fiframe%3E%22%22%22%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**Exercise%202.**%20At%20fixed%20speed%20and%20equal%20release%2Flanding%20height%2C%20what%20fraction%20of%20the%20maximum%20range%20is%20obtained%20at%2030%C2%B0%3F%20What%20other%20angle%20has%20that%20range%3F%0A%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Worked%20solution%20%E2%80%94%20Exercise%202%0A%0A%20%20%20%20%24R%2FR_%7Bmax%7D%3D%5Csin(2%5Ctheta)%3D%5Csin60%5E%5Ccirc%3D%5Csqrt3%2F2%5Capprox0.866%24.%20The%20complementary%20angle%2060%C2%B0%20gives%20the%20same%20range%20but%20a%20longer%20flight%20and%20higher%20apex.%0A%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Kinematics%20of%20the%20long%20jump%0A%0A%20%20%20%20We%20can%20study%20the%20kinematics%20of%20jumps%20by%20humans%20and%20other%20animals%20as%20projectile%20motions%20with%20the%20equations%20of%20motion%20we%20derived%2C%20if%20we%20consider%20the%20body%20as%20a%20particle.%20There%20is%20a%20particular%20point%20in%20the%20body%20(a%20virtual%20point)%20that%20will%20strictly%20follow%20those%20equations.%20This%20point%20is%20called%20the%20**center%20of%20mass**%2C%20or%20center%20of%20gravity%2C%20and%20represents%20an%20average%20position%20of%20all%20the%20masses%20in%20the%20body.%20We%20will%20study%20it%20later%3B%20for%20now%20just%20consider%20that%20when%20applying%20the%20equations%20for%20projectile%20motion%20to%20a%20body%20with%20many%20particles%2C%20we%20are%20in%20fact%20describing%20the%20motion%20of%20its%20center%20of%20mass.%0A%0A%20%20%20%20This%20is%20the%20formal%20version%20of%20what%20the%20triple-jump%20animation%20showed.%20The%20athlete's%20limbs%20are%20not%20projectiles.%20One%20imaginary%20point%20inside%20him%20is.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20The%20different%20phases%20of%20the%20long%20jump%0A%0A%20%20%20%20The%20track%20and%20field%20event%20long%20jump%20has%20some%20particularities%20we%20must%20consider%20to%20analyze%20it%20as%20a%20projectile%20motion%3B%20the%20figure%20below%20shows%20the%20kinematic%20characteristics%20relevant%20for%20this%20analysis.%0A%0A%20%20%20%20%3Cfigure%20aria-describedby%3D%22figure-caption-2%22%3E%3Ccenter%3E%3Cimg%20src%3D%22https%3A%2F%2Fgithub.com%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fimages%2Flongjump.png%3Fraw%3D1%22%20width%3D700%20alt%3D%22longjump%22%2F%3E%3C%2Fcenter%3E%3C%2Ffigure%3E%0A%0A%20%20%20%20%3Cspan%20id%3D%22figure-caption-2%22%20class%3D%22figure-caption%22%20style%3D%22display%3Ablock%3Btext-align%3Acenter%3Bfont-style%3Aitalic%22%3EFigure.%20Diagram%20of%20a%20long%20jump%20and%20its%20kinematic%20characteristics.%20The%20red%20circle%20represents%20the%20center%20of%20mass%20of%20the%20jumper.%20Adapted%20from%20Linthorne%20(2007).%3C%2Fspan%3E%0A%0A%20%20%20%20The%20distance%20officially%20considered%20as%20the%20jump%20distance%2C%20%24d_%7Bjump%7D%24%2C%20can%20be%20described%20as%20the%20sum%20of%20three%20distances%20as%20indicated%20in%20the%20figure%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20d_%7Bjump%7D%20%3D%20d_%7Btake-off%7D%20%2B%20d_%7Bflight%7D%20%2B%20d_%7Blanding%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20Only%20the%20middle%20term%20is%20projectile%20motion.%20The%20other%20two%20are%20bookkeeping%2C%20and%20they%20are%20where%20a%20competition%20is%20quietly%20won%20or%20lost%3A%20%24d_%7Btake-off%7D%24%20is%20how%20far%20in%20front%20of%20the%20board%20the%20center%20of%20mass%20already%20is%20when%20the%20foot%20leaves%20it%2C%20and%20%24d_%7Blanding%7D%24%20is%20how%20far%20in%20front%20of%20the%20center%20of%20mass%20the%20heels%20are%20allowed%20to%20reach%20before%20the%20body%20follows.%0A%0A%20%20%20%20**Guiding%20questions%202.**%0A%0A%20%20%20%201.%20The%20figure%20shows%20the%20center%20of%20mass%20*higher*%20at%20take-off%20than%20at%20landing.%20Why%2C%20given%20that%20both%20happen%20at%20ground%20level%3F%0A%20%20%20%202.%20Which%20of%20the%20three%20distances%20would%20you%20try%20to%20improve%20if%20you%20were%20coaching%20a%20jumper%20who%20keeps%20fouling%20at%20the%20board%3F%0A%20%20%20%203.%20Is%20%24d_%7Blanding%7D%24%20limited%20by%20physics%20or%20by%20technique%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20The%20distance%20of%20flight%0A%0A%20%20%20%20The%20jump%20in%20the%20air%20is%20the%20part%20of%20the%20jump%20that%20we%20can%20describe%20as%20a%20projectile%20motion%2C%20and%20its%20distance%2C%20%24d_%7Bflight%7D%24%2C%20is%20typically%2090%25%20of%20the%20jump%20distance%20for%20professional%20jumpers.%0A%0A%20%20%20%20Let's%20derive%20an%20expression%20for%20%24d_%7Bflight%7D%24%2C%20which%20we%20called%20range%20before%2C%20as%20a%20function%20of%20the%20velocity%20and%20angle%20at%20take-off.%20Looking%20at%20the%20long%20jump%20diagram%2C%20we%20see%20that%20the%20jumper%20takes%20off%20from%20a%20higher%20height%20than%20when%20they%20land.%20The%20equation%20for%20the%20vertical%20displacement%20of%20the%20jumper's%20center%20of%20mass%20during%20the%20flight%20phase%20will%20be%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20h_%7Blanding%7D%20%3D%20h_%7Btake-off%7D%20%2B%20v_0%5Csin(%5Ctheta)%5C%3At%20-%20%5Cfrac%7Bg%5C%3At%5E2_%7Bflight%7D%7D%7B2%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20For%20simplicity%20let's%20adopt%20%24h_0%3Dh_%7Btake-off%7D-h_%7Blanding%7D%24%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%200%20%3D%20h_0%20%2B%20v_0%5Csin(%5Ctheta)%5C%3At%20-%20%5Cfrac%7Bg%5C%3At%5E2_%7Bflight%7D%7D%7B2%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20Solving%20this%20second-order%20equation%20for%20%24t_%7Bflight%7D%24%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20t_%7Bflight%7D%20%3D%20%5Cfrac%7Bv_0%20%5Csin(%5Ctheta)%20%5Cpm%20%5Csqrt%7Bv%5E2_0%20%5Csin%5E2(%5Ctheta)%20%2B%202%20h_0%20g%7D%7D%7Bg%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20This%20expression%20is%20different%20from%20the%20one%20we%20derived%20before%20because%20the%20initial%20and%20final%20heights%20are%20different%20in%20the%20long%20jump.%20However%2C%20it%20reduces%20to%20the%20former%20expression%20when%20this%20difference%20is%20zero%2C%20%24h_0%3D0%24.%0A%0A%20%20%20%20We%20are%20only%20interested%20in%20the%20positive%20solution%20of%20the%20equation%20(the%20negative%20solution%20results%20in%20a%20negative%20time)%2C%20and%20substituting%20this%20result%20in%20the%20equation%20for%20the%20horizontal%20distance%20we%20have%20an%20expression%20for%20%24d_%7Bflight%7D%24%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20d_%7Bflight%7D%20%3D%20%5Cfrac%7Bv_0%5Ccos(%5Ctheta)%5Cleft%5Bv_0%20%5Csin(%5Ctheta)%20%2B%20%5Csqrt%7Bv%5E2_0%5Csin%5E2(%5Ctheta)%20%2B%202%20h_0%20g%7D%5C%3A%5Cright%5D%7D%7Bg%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20Once%20again%2C%20when%20%24h_0%3D0%24%2C%20we%20have%20the%20same%20expression%20we%20derived%20before.%20This%20is%20exactly%20the%20formula%20already%20implemented%20in%20the%20%60flight%60%20function%20above%20%E2%80%94%20the%20%60h0%60%20argument%20we%20have%20been%20leaving%20at%20its%20default.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**Exercise%203.**%20A%20horizontal%20throw%20leaves%20a%20height%20of%202%20m%20at%205%20m%2Fs.%20Find%20flight%20time%20and%20range.%20Why%20does%20the%20equal-height%20formula%20fail%3F%0A%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Worked%20solution%20%E2%80%94%20Exercise%203%0A%0A%20%20%20%20%24y%3D2-gt%5E2%2F2%24%20gives%20%24T%3D%5Csqrt%7B4%2Fg%7D%3D0.639%24%20s%20and%20%24R%3D5T%3D3.193%24%20m.%20The%20equal-height%20formula%20assumes%20the%20final%20vertical%20displacement%20is%20zero%2C%20which%20is%20false%20here.%0A%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20The%20optimum%20angle%20of%20take-off%0A%0A%20%20%20%20We%20can%20now%20find%20the%20angle%20that%20maximizes%20the%20range%20given%20that%20the%20projectile%20is%20released%20(the%20body%20jumps)%20from%20an%20initial%20height.%20To%20find%20such%20an%20angle%2C%20we%20differentiate%20the%20previous%20equation%20with%20respect%20to%20the%20angle%2C%20set%20this%20derivative%20equal%20to%20zero%2C%20and%20solve%20it%20(read%20about%20how%20to%20find%20maxima%20points%20in%20a%20function%20%5Bhere%5D(https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FMaxima_and_minima)).%20It%20can%20be%20shown%20that%20the%20solution%20is%20(for%20a%20proof%2C%20see%20%5Bhere%5D(http%3A%2F%2Fmath.stackexchange.com%2Fquestions%2F127300%2Fmaximum-range-of-a-projectile-launched-from-an-elevation)%20or%20%5Bhere%5D(http%3A%2F%2Fwww.themcclungs.net%2Fphysics%2Fdownload%2FH%2F2_D_Motion%2FProjectile%2520Cliff.pdf))%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Ctheta%20%3D%20%5Carctan%5Cleft(%5Cfrac%7Bv_0%7D%7B%5Csqrt%7Bv_0%5E2%20%2B%202gh_0%7D%7D%5Cright)%0A%20%20%20%20%24%24%0A%0A%20%20%20%20For%20%24h_0%3D0%24%20the%20angle%20is%20%24%5Carctan(1)%24%2C%20which%20is%20%2445%5Eo%24%2C%20as%20obtained%20before.%20But%20the%20higher%20the%20release%2C%20the%20smaller%20the%20fraction%2C%20and%20the%20smaller%20the%20optimum%20angle.%20Falling%20further%20than%20you%20rose%20is%20a%20free%20extension%20of%20the%20flight%2C%20and%20it%20is%20bought%20more%20cheaply%20with%20horizontal%20speed%20than%20with%20height.%0A%0A%20%20%20%20%23%23%23%23%20Computation%20of%20the%20optimum%20angle%0A%0A%20%20%20%20Let's%20write%20a%20function%20to%20calculate%20the%20optimum%20angle%20given%20the%20initial%20height%20and%20velocity%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.function%0Adef%20optimum_angle(height%2C%20velocity%2C%20g%3D9.8)%3A%0A%20%20%20%20%22%22%22Optimum%20angle%20%5Bdeg%5D%20for%20maximum%20range%20of%20a%20projectile.%0A%0A%20%20%20%20For%20a%20projectile%20released%20from%20%60height%60%20%5Bm%5D%20with%20speed%20%60velocity%60%20%5Bm%2Fs%5D.%0A%20%20%20%20%22%22%22%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20if%20velocity%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20return%200.0%0A%0A%20%20%20%20return%20float(%0A%20%20%20%20%20%20%20%20np.rad2deg(np.arctan(velocity%20%2F%20np.sqrt(velocity**2%20%2B%202%20*%20g%20*%20height)))%0A%20%20%20%20)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Let's%20determine%20the%20optimum%20angle%20for%20an%20initial%20height%20of%200.6%20m%20and%20an%20initial%20velocity%20of%209%20m%2Fs%20%E2%80%94%20actual%20values%20for%20long%20jump%20athletes%20%E2%80%94%20and%20see%20what%20that%20angle%20is%20worth%20in%20metres%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20jump_height%20%3D%200.6%20%20%23%20difference%20in%20height%20of%20the%20center%20of%20mass%2C%20m%0A%20%20%20%20jump_velocity%20%3D%209%20%20%23%20take-off%20speed%2C%20m%2Fs%0A%20%20%20%20jump_angle%20%3D%20optimum_angle(jump_height%2C%20jump_velocity)%0A%0A%20%20%20%20print(%0A%20%20%20%20%20%20%20%20f%22The%20optimum%20angle%20for%20a%20jump%20with%20h%20%3D%20%7Bjump_height%3A.1f%7D%20m%20and%20%22%0A%20%20%20%20%20%20%20%20f%22v%20%3D%20%7Bjump_velocity%3A.1f%7D%20m%2Fs%20is%20%7Bjump_angle%3A.1f%7D%20degrees%22%0A%20%20%20%20)%0A%20%20%20%20for%20_theta%20in%20%5Bjump_angle%2C%2045%2C%2030%2C%2020%5D%3A%0A%20%20%20%20%20%20%20%20_%2C%20_d%2C%20_%20%3D%20flight(jump_velocity%2C%20_theta%2C%20h0%3Djump_height)%0A%20%20%20%20%20%20%20%20print(f%22%20%20take-off%20at%20%7B_theta%3A4.1f%7D%20degrees%20%20-%3E%20%20d_flight%20%3D%20%7B_d%3A.2f%7D%20m%22)%0A%20%20%20%20return%20(jump_height%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20We%20can%20even%20plot%20the%20optimum%20angle%20for%20different%20values%20of%20initial%20height%20and%20velocity%20(e.g.%2C%20heights%20from%200%20to%201%20m%20and%20velocities%20from%205%20to%2010%20m%2Fs)%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.function%0Adef%20plot_optimum_angle(heights%2C%20velocities)%3A%0A%20%20%20%20%22%22%22Surface%20of%20the%20optimum%20release%20angle%20vs%20initial%20height%20and%20velocity.%22%22%22%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20from%20matplotlib%20import%20cm%0A%0A%20%20%20%20angles%20%3D%20np.zeros((len(heights)%2C%20len(velocities)))%0A%20%20%20%20for%20i%2C%20_h%20in%20enumerate(heights)%3A%0A%20%20%20%20%20%20%20%20for%20j%2C%20_v%20in%20enumerate(velocities)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20angles%5Bi%2C%20j%5D%20%3D%20optimum_angle(height%3D_h%2C%20velocity%3D_v)%0A%0A%20%20%20%20h%2C%20v%20%3D%20np.meshgrid(heights%2C%20velocities%2C%20indexing%3D%22ij%22)%0A%0A%20%20%20%20fig%20%3D%20plt.figure(figsize%3D(10%2C%205))%0A%20%20%20%20ax%20%3D%20fig.add_subplot(projection%3D%223d%22)%0A%20%20%20%20ax.plot_surface(%0A%20%20%20%20%20%20%20%20h%2C%0A%20%20%20%20%20%20%20%20v%2C%0A%20%20%20%20%20%20%20%20angles%2C%0A%20%20%20%20%20%20%20%20rstride%3D1%2C%0A%20%20%20%20%20%20%20%20cstride%3D1%2C%0A%20%20%20%20%20%20%20%20cmap%3Dcm.coolwarm%2C%0A%20%20%20%20%20%20%20%20linewidth%3D0%2C%0A%20%20%20%20%20%20%20%20antialiased%3DFalse%2C%0A%20%20%20%20)%0A%20%20%20%20ax.set_xlim(heights%5B0%5D%2C%20heights%5B-1%5D)%0A%20%20%20%20ax.set_ylim(velocities%5B0%5D%2C%20velocities%5B-1%5D)%0A%20%20%20%20ax.set_zlim(np.min(angles)%2C%2045)%0A%20%20%20%20ax.set_xlabel(%22Initial%20height%20(m)%22%2C%20fontsize%3D12)%0A%20%20%20%20ax.set_ylabel(%22Initial%20velocity%20(m%2Fs)%22%2C%20fontsize%3D12)%0A%20%20%20%20ax.set_zlabel(%22Optimum%20angle%20(%24%5Eo%24)%22%2C%20fontsize%3D12)%0A%20%20%20%20ax.set_title(%22Projectile%20motion%3A%20optimum%20angle%20for%20maximum%20range%22%2C%20fontsize%3D16)%0A%20%20%20%20plt.show()%0A%0A%0A%40app.cell%0Adef%20_(np)%3A%0A%20%20%20%20plot_optimum_angle(%0A%20%20%20%20%20%20%20%20heights%3Dnp.arange(0%2C%201.05%2C%200.05)%2C%0A%20%20%20%20%20%20%20%20velocities%3Dnp.arange(5%2C%2010.25%2C%200.25)%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20The%20whole%20surface%20lives%20between%20about%20%2437%5Eo%24%20and%20%2445%5Eo%24.%20Over%20the%20entire%20range%20of%20heights%20and%20speeds%20a%20human%20being%20can%20produce%2C%20the%20physics%20never%20asks%20for%20an%20angle%20far%20from%20%2445%5Eo%24.%0A%0A%20%20%20%20Hold%20on%20to%20that%2C%20because%20it%20is%20about%20to%20be%20contradicted%20by%20every%20long%20jumper%20who%20has%20ever%20competed.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Actual%20take-off%20angles%20from%20human%20jumps%20are%20different%20from%20the%20prediction%0A%0A%20%20%20%20The%20typical%20angles%20of%20take-off%20among%20athletes%20vary%20between%20%2415%5Eo%24%20and%20%2427%5Eo%24%20(Linthorne%2C%202007)%20%E2%80%94%20much%20lower%20than%20we%20predicted.%20Neither%20the%20physics%20nor%20the%20simplifications%20we%20adopted%20are%20wrong.%0A%0A%20%20%20%20What%20happens%20is%20that%20humans%20are%20unable%20to%20run%20horizontally%20at%2010%20m%2Fs%20and%20suddenly%20change%20their%20direction%20to%20%2445%5Eo%24%20without%20losing%20a%20large%20amount%20of%20that%20speed.%20The%20contact%20time%20of%20the%20foot%20with%20the%20ground%20just%20before%20jumping%2C%20for%20a%20long%20jump%20athlete%2C%20is%20about%2010%20ms.%20Our%20muscles%20do%20not%20have%20the%20capacity%20to%20act%20fast%20enough%20and%20generate%20the%20necessary%20amount%20of%20force%20in%20such%20a%20short%20time.%0A%0A%20%20%20%20Look%20carefully%20at%20what%20this%20changes%20in%20the%20problem.%20Our%20derivation%20assumed%20%24v_0%24%20and%20%24%5Ctheta%24%20were%20*independent*%3A%20you%20pick%20an%20angle%2C%20and%20the%20speed%20is%20whatever%20it%20is.%20For%20a%20real%20jumper%20they%20are%20not%20independent%20at%20all.%20Every%20degree%20of%20take-off%20angle%20is%20paid%20for%20in%20take-off%20speed%2C%20and%20the%20optimum%20we%20computed%20is%20the%20optimum%20of%20a%20choice%20nobody%20gets%20to%20make.%0A%0A%20%20%20%20**Before%20you%20run%20the%20next%20cells**%2C%20predict%3A%20if%20each%20extra%20degree%20of%20take-off%20angle%20costs%20the%20athlete%20a%20tenth%20of%20a%20metre%20per%20second%20of%20take-off%20speed%2C%20roughly%20where%20does%20the%20best%20angle%20end%20up%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.function%0Adef%20plot_takeoff_tradeoff(v_max%2C%20h0%2C%20costs%2C%20theta_max%3D60)%3A%0A%20%20%20%20%22%22%22Flight%20distance%20vs%20take-off%20angle%20when%20speed%20is%20traded%20for%20angle.%0A%0A%20%20%20%20The%20take-off%20speed%20is%20modelled%20as%20%60%60v0%20%3D%20v_max%20-%20cost*theta%60%60%2C%20a%20crude%0A%20%20%20%20stand-in%20for%20the%20fact%20that%20a%20jumper%20cannot%20redirect%20the%20run-up%20upwards%20for%0A%20%20%20%20free.%20%60costs%60%20are%20the%20speed%20penalties%20%5Bm%2Fs%20per%20degree%5D%3B%20%60cost%20%3D%200%60%20is%20the%0A%20%20%20%20independent%20case%20assumed%20in%20the%20derivations%20above.%20Prints%20and%20returns%20the%0A%20%20%20%20best%20angle%20and%20distance%20for%20each%20cost.%0A%20%20%20%20%22%22%22%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20theta%20%3D%20np.linspace(0%2C%20theta_max%2C%20601)%0A%20%20%20%20best%20%3D%20%5B%5D%0A%0A%20%20%20%20_%2C%20ax%20%3D%20plt.subplots(figsize%3D(9%2C%204.5))%0A%20%20%20%20for%20cost%20in%20costs%3A%0A%20%20%20%20%20%20%20%20v0%20%3D%20np.clip(v_max%20-%20cost%20*%20theta%2C%200%2C%20None)%0A%20%20%20%20%20%20%20%20d%20%3D%20np.array(%5Bflight(_v%2C%20_th%2C%20h0%3Dh0)%5B1%5D%20for%20_v%2C%20_th%20in%20zip(v0%2C%20theta)%5D)%0A%20%20%20%20%20%20%20%20i%20%3D%20int(d.argmax())%0A%20%20%20%20%20%20%20%20best.append((cost%2C%20theta%5Bi%5D%2C%20d%5Bi%5D))%0A%20%20%20%20%20%20%20%20ax.plot(theta%2C%20d%2C%20linewidth%3D2%2C%20label%3Df%22%7Bcost%3A.2f%7D%20m%2Fs%20per%20degree%22)%0A%20%20%20%20%20%20%20%20ax.plot(theta%5Bi%5D%2C%20d%5Bi%5D%2C%20%22o%22%2C%20color%3Dax.lines%5B-1%5D.get_color())%0A%0A%20%20%20%20ax.axvspan(15%2C%2027%2C%20color%3D%220.85%22%2C%20zorder%3D0)%0A%20%20%20%20ax.set_ylim(0%2C%20ax.get_ylim()%5B1%5D%20*%201.2)%0A%20%20%20%20ax.text(21%2C%20ax.get_ylim()%5B1%5D%20*%200.04%2C%20%22observed%22%2C%20ha%3D%22center%22%2C%20fontsize%3D11)%0A%20%20%20%20ax.set_xlabel(%22Take-off%20angle%20%5B%24%5Eo%24%5D%22)%0A%20%20%20%20ax.set_ylabel(%22Flight%20distance%20%5Bm%5D%22)%0A%20%20%20%20ax.set_title(f%22Cost%20of%20the%20angle%2C%20%24v_%7B%7Bmax%7D%7D%24%20%3D%20%7Bv_max%7D%20m%2Fs%2C%20%24h_0%24%20%3D%20%7Bh0%7D%20m%22)%0A%20%20%20%20ax.legend(title%3D%22Speed%20penalty%22%2C%20loc%3D%22upper%20right%22)%0A%20%20%20%20plt.tight_layout()%0A%20%20%20%20plt.show()%0A%0A%20%20%20%20print(%22Speed%20penalty%20%20%20%20%20%20Best%20angle%20%20%20Take-off%20speed%20%20%20Flight%20distance%22)%0A%20%20%20%20for%20cost%2C%20theta_best%2C%20d_best%20in%20best%3A%0A%20%20%20%20%20%20%20%20print(%0A%20%20%20%20%20%20%20%20%20%20%20%20f%22%7Bcost%3A5.2f%7D%20m%2Fs%20per%20degree%20%7Btheta_best%3A9.1f%7D%C2%B0%20%22%0A%20%20%20%20%20%20%20%20%20%20%20%20f%22%7Bv_max%20-%20cost%20*%20theta_best%3A13.2f%7D%20m%2Fs%20%7Bd_best%3A12.2f%7D%20m%22%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20return%20best%0A%0A%0A%40app.cell%0Adef%20_(jump_height)%3A%0A%20%20%20%20_%20%3D%20plot_takeoff_tradeoff(v_max%3D10.0%2C%20h0%3Djump_height%2C%20costs%3D%5B0.0%2C%200.05%2C%200.10%2C%200.15%5D)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20With%20no%20penalty%20the%20optimum%20sits%20at%20the%20%2443%5Eo%24%20we%20derived.%20A%20penalty%20of%20a%20tenth%20of%20a%20metre%20per%20second%20per%20degree%20%E2%80%94%20a%20small%20number%2C%20and%20not%20an%20implausible%20one%20%E2%80%94%20drags%20the%20optimum%20straight%20into%20the%20band%20that%20athletes%20actually%20use%2C%20and%20the%20curve%20there%20is%20so%20flat%20that%20the%20exact%20angle%20hardly%20matters.%0A%0A%20%20%20%20Be%20clear%20about%20what%20that%20model%20is%20and%20is%20not.%20The%20linear%20penalty%20is%20a%20caricature%2C%20invented%20here%20to%20make%20one%20point%20visible%3B%20the%20real%20relationship%20between%20take-off%20speed%20and%20take-off%20angle%20has%20been%20measured%2C%20and%20it%20is%20the%20subject%20of%20Linthorne%20(2007).%20But%20the%20shape%20of%20the%20conclusion%20survives%20the%20caricature%3A%20**once%20the%20take-off%20speed%20depends%20on%20the%20take-off%20angle%2C%20the%20optimum%20angle%20collapses**%2C%20and%20it%20collapses%20to%20roughly%20where%20human%20beings%20jump.%0A%0A%20%20%20%20So%20don't%20conclude%20that%20the%20physics%20of%20projectile%20motion%20is%20useless%20for%20understanding%20human%20jumps%20%E2%80%94%20quite%20the%20contrary.%20It%20is%20possible%20to%20model%20the%20mechanical%20and%20physiological%20properties%20of%20the%20human%20body%20and%20simulate%20a%20long%20jump%2C%20using%20these%20same%20equations%20of%20motion%2C%20and%20reproduce%20most%20of%20the%20characteristics%20of%20a%20real%20jump%3B%20see%2C%20for%20example%2C%20Alexander%20(1990)%20and%20Seyfarth%20et%20al.%20(2000).%20We%20can%20even%20use%20this%20kind%20of%20modeling%20to%20ask%20what%20would%20happen%20if%20an%20athlete%20changed%20some%20part%20of%20their%20technique.%0A%0A%20%20%20%20See%20experimental%20values%20for%20the%20kinematic%20properties%20of%20long%20jumps%20measured%20during%20competitions%20on%20the%20websites%20%5BResearch%20Projects%5D(http%3A%2F%2Fwww.iaaf.org%2Fdevelopment%2Fresearch)%20(from%20the%20International%20Association%20of%20Athletics%20Federations)%20and%20%5BAn%C3%A1lise%20Biomec%C3%A2nica%20do%20Salto%20em%20Dist%C3%A2ncia%5D(https%3A%2F%2Fbmclab.pesquisa.ufabc.edu.br%2Fx%2Fsalto%2F)%20(in%20Portuguese).%0A%0A%20%20%20%20**Challenge%203.**%20Find%2C%20by%20trial%20and%20error%20with%20the%20function%20above%2C%20the%20speed%20penalty%20that%20puts%20the%20optimum%20at%20exactly%20%2420%5Eo%24.%20Then%20answer%20the%20harder%20question%3A%20how%20would%20you%20*measure*%20that%20penalty%20on%20a%20real%20athlete%2C%20rather%20than%20assume%20it%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20On%20the%20calculation%20of%20the%20angle%20from%20kinematic%20data%0A%0A%20%20%20%20Everything%20above%20assumed%20the%20take-off%20angle%20was%20given.%20In%20an%20experiment%20it%20has%20to%20be%20measured%2C%20and%20measuring%20it%20is%20less%20innocent%20than%20it%20looks.%0A%0A%20%20%20%20The%20angle%20of%20the%20projectile%20with%20the%20horizontal%20(in%20the%20context%20of%20a%20human%20jump%2C%20the%20angle%20of%20the%20trajectory%20of%20the%20center%20of%20gravity%20with%20the%20horizontal%20in%20the%20sagittal%20plane)%20at%20a%20given%20instant%20is%2C%20by%20definition%2C%20the%20arc%20whose%20tangent%20is%20the%20ratio%20of%20the%20vertical%20(%24y%24)%20and%20horizontal%20(%24x%24)%20displacements%3A%0A%0A%20%20%20%20%3Cfigure%20aria-describedby%3D%22figure-caption-3%22%3E%3Ccenter%3E%3Cimg%20src%3D%22https%3A%2F%2Fgithub.com%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fimages%2Fsegment.png%3Fraw%3D1%22%20width%3D250%20alt%3D%22segment%22%2F%3E%3C%2Fcenter%3E%3C%2Ffigure%3E%0A%0A%20%20%20%20%3Cspan%20id%3D%22figure-caption-3%22%20class%3D%22figure-caption%22%20style%3D%22display%3Ablock%3Btext-align%3Acenter%3Bfont-style%3Aitalic%22%3EFigure.%20A%20segment%20in%20a%20plane%20and%20its%20coordinates.%3C%2Fspan%3E%0A%0A%20%20%20%20Given%20the%20coordinates%20at%20two%20instants%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Ctheta%20%3D%20%5Carctan%5Cleft(%5Cfrac%7By_2-y_1%7D%7Bx_2-x_1%7D%5Cright)%0A%20%20%20%20%24%24%0A%0A%20%20%20%20A%20simple%20way%20to%20determine%20the%20angle%20with%20experimental%20data%2C%20rather%20than%20calculating%20the%20finite%20differences%20of%20position%20in%20the%20two%20directions%2C%20is%20to%20calculate%20the%20angle%20from%20the%20ratio%20of%20the%20vertical%20and%20horizontal%20velocities%2C%20%24v(t)%24%2C%20since%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Ctheta(t)%20%3D%20%5Carctan%5Cleft(%5Cfrac%7Bv_y(t)%7D%7Bv_x(t)%7D%5Cright)%20%3D%0A%20%20%20%20%5Carctan%5Cleft(%5Cdfrac%7B%5Cdfrac%7By_%7Bt%7D-y_%7Bt-1%7D%7D%7B%5CDelta%20t%7D%7D%7B%5Cdfrac%7Bx_%7Bt%7D-x_%7Bt-1%7D%7D%7B%5CDelta%20t%7D%7D%5Cright)%20%3D%0A%20%20%20%20%5Carctan%5Cleft(%5Cfrac%7By_%7Bt%7D-y_%7Bt-1%7D%7D%7Bx_%7Bt%7D-x_%7Bt-1%7D%7D%5Cright)%0A%20%20%20%20%24%24%0A%0A%20%20%20%20The%20%24%5CDelta%20t%24%20cancels%2C%20which%20is%20convenient%20and%20slightly%20misleading%3A%20it%20suggests%20the%20sampling%20rate%20does%20not%20matter.%20It%20does.%20The%20ratio%20of%20finite%20differences%20is%20the%20*average*%20direction%20over%20the%20interval%2C%20and%20the%20direction%20is%20changing%20throughout%20it%20%E2%80%94%20that%20is%20what%20gravity%20does.%20So%20the%20angle%20you%20recover%20is%20always%20the%20angle%20of%20a%20chord%2C%20never%20of%20the%20tangent%20at%20take-off.%0A%0A%20%20%20%20**Before%20you%20run%20the%20next%20cell**%2C%20predict%3A%20a%20jumper%20really%20takes%20off%20at%20%2420%5Eo%24%3B%20you%20film%20them%20at%2030%20Hz%20and%20compute%20the%20angle%20from%20the%20first%20two%20frames.%20How%20far%20off%20will%20you%20be%20%E2%80%94%20a%20hundredth%20of%20a%20degree%2C%20a%20tenth%2C%20or%20a%20whole%20degree%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.function%0Adef%20angle_from_samples(v0%2C%20theta%2C%20rates%2C%20h0%3D0.0%2C%20g%3D9.8)%3A%0A%20%20%20%20%22%22%22Take-off%20angle%20%5Bdeg%5D%20recovered%20by%20finite%20differences%20at%20several%20rates.%0A%0A%20%20%20%20Samples%20the%20true%20trajectory%20of%20a%20projectile%20released%20at%20%60theta%60%20%5Bdeg%5D%20with%0A%20%20%20%20speed%20%60v0%60%20%5Bm%2Fs%5D%20at%20each%20sampling%20rate%20in%20%60rates%60%20%5BHz%5D%2C%20then%20estimates%20the%0A%20%20%20%20angle%20from%20the%20first%20two%20samples%2C%20as%20one%20would%20from%20filmed%20data.%20Returns%20a%0A%20%20%20%20list%20of%20(rate%2C%20estimated%20angle%2C%20error).%0A%20%20%20%20%22%22%22%0A%20%20%20%20import%20numpy%20as%20np%0A%0A%20%20%20%20out%20%3D%20%5B%5D%0A%20%20%20%20for%20rate%20in%20rates%3A%0A%20%20%20%20%20%20%20%20dt%20%3D%201%20%2F%20rate%0A%20%20%20%20%20%20%20%20t%20%3D%20np.array(%5B0%2C%20dt%5D)%0A%20%20%20%20%20%20%20%20x%20%3D%20v0%20*%20np.cos(np.deg2rad(theta))%20*%20t%0A%20%20%20%20%20%20%20%20y%20%3D%20h0%20%2B%20v0%20*%20np.sin(np.deg2rad(theta))%20*%20t%20-%20g%20*%20t**2%20%2F%202%0A%20%20%20%20%20%20%20%20estimated%20%3D%20float(np.rad2deg(np.arctan2(y%5B1%5D%20-%20y%5B0%5D%2C%20x%5B1%5D%20-%20x%5B0%5D)))%0A%20%20%20%20%20%20%20%20out.append((rate%2C%20estimated%2C%20estimated%20-%20theta))%0A%0A%20%20%20%20return%20out%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20print(%22True%20take-off%20angle%3A%2020.0%C2%B0%5Cn%22)%0A%20%20%20%20print(%22Sampling%20rate%20%20%20Estimated%20angle%20%20%20Error%22)%0A%20%20%20%20for%20_rate%2C%20_est%2C%20_err%20in%20angle_from_samples(%0A%20%20%20%20%20%20%20%20v0%3D9%2C%20theta%3D20%2C%20rates%3D%5B30%2C%2060%2C%20120%2C%20240%2C%201000%5D%0A%20%20%20%20)%3A%0A%20%20%20%20%20%20%20%20print(f%22%7B_rate%3A8.0f%7D%20Hz%20%7B_est%3A15.2f%7D%C2%B0%20%7B_err%3A8.2f%7D%C2%B0%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20The%20error%20is%20always%20negative%20%E2%80%94%20the%20estimate%20is%20always%20too%20shallow%20%E2%80%94%20because%20the%20projectile%20is%20losing%20vertical%20velocity%20during%20the%20interval%20and%20gaining%20none%20horizontally.%20It%20is%20a%20*bias*%2C%20not%20noise%3A%20averaging%20more%20trials%20will%20not%20remove%20it%2C%20and%20it%20shrinks%20only%20as%20the%20sampling%20interval%20shrinks.%0A%0A%20%20%20%20At%2030%20Hz%2C%20a%20standard%20video%20camera%2C%20you%20underestimate%20a%20%2420%5Eo%24%20take-off%20by%20about%20a%20degree.%20Whether%20that%20matters%20depends%20on%20what%20you%20do%20with%20the%20number.%20If%20you%20feed%20it%20into%20the%20range%20equation%20to%20predict%20the%20jump%2C%20it%20is%20negligible.%20If%20you%20are%20comparing%20two%20athletes%20whose%20take-off%20angles%20differ%20by%20%242%5Eo%24%2C%20you%20have%20just%20spent%20half%20of%20your%20effect%20on%20the%20frame%20rate.%0A%0A%20%20%20%20This%20is%20the%20same%20lesson%20that%20the%20100%20m%20analysis%20in%20%5BKinematics%20of%20a%20particle%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fkinematics_particle.py)%20arrives%20at%20from%20the%20other%20direction%3A%20**a%20finite%20difference%20cannot%20resolve%20anything%20faster%20than%20its%20own%20interval**%2C%20and%20every%20derivative%20you%20take%20from%20measured%20positions%20is%20a%20compromise%20between%20that%20blur%20and%20the%20noise%20you%20amplify%20by%20shortening%20the%20interval.%20See%20the%20notebooks%20on%20%5Bdata%20filtering%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fdata_filtering.py)%20and%20%5Bresidual%20analysis%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fresidual_analysis.py).%0A%0A%20%20%20%20**Challenge%204.**%20Modify%20%60angle_from_samples%60%20to%20estimate%20the%20angle%20from%20a%20*centered*%20difference%20%E2%80%94%20the%20samples%20just%20before%20and%20just%20after%20take-off%20%E2%80%94%20instead%20of%20a%20forward%20one.%20Does%20the%20bias%20get%20better%2C%20worse%2C%20or%20disappear%3F%20Can%20you%20say%20why%20before%20you%20run%20it%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20**Exercise%204.**%20A%20takeoff%20velocity%20is%20estimated%20by%20a%20forward%20difference%20over%200.02%20s.%20What%20bias%20does%20constant%20gravity%20add%20to%20its%20vertical%20component%3F%0A%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Worked%20solution%20%E2%80%94%20Exercise%204%0A%0A%20%20%20%20The%20average%20velocity%20over%20the%20interval%20is%20%24v_y(0)-g%5CDelta%20t%2F2%24%2C%20so%20the%20bias%20is%20%24-0.0981%24%20m%2Fs.%20A%20centered%20difference%20on%20a%20purely%20ballistic%20quadratic%20trajectory%20has%20zero%20truncation%20bias%2C%20though%20measurement%20noise%20remains.%0A%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Checkpoint%20questions%0A%0A%20%20%20%20Pause%20here%20before%20the%20problems.%0A%0A%20%20%20%201.%20A%20jumper%20wants%20to%20stay%20in%20the%20air%20longer.%20What%20exactly%20must%20change%20at%20take-off%2C%20and%20what%20will%20it%20cost%20them%20in%20distance%3F%0A%20%20%20%202.%20Why%20is%20the%20time%20of%20flight%20independent%20of%20the%20horizontal%20velocity%2C%20while%20the%20range%20is%20not%3F%0A%20%20%20%203.%20We%20predicted%20an%20optimum%20take-off%20angle%20near%20%2445%5Eo%24%20and%20observed%20%2415%5Eo%24%E2%80%93%2427%5Eo%24.%20Was%20the%20prediction%20wrong%2C%20was%20the%20measurement%20wrong%2C%20or%20was%20the%20question%20wrong%3F%0A%20%20%20%204.%20Two%20athletes%20take%20off%20with%20the%20same%20speed%2C%20one%20at%20%2422%5Eo%24%20and%20the%20other%20at%20%2425%5Eo%24.%20Without%20computing%2C%20is%20the%20difference%20in%20their%20flight%20distance%20likely%20to%20be%20larger%20or%20smaller%20than%20the%20difference%20in%20their%20take-off%20angles%20suggests%3F%0A%20%20%20%205.%20You%20have%20video%20of%20a%20jump%20at%2030%20Hz%20and%20you%20need%20the%20take-off%20velocity%20vector.%20Name%20two%20sources%20of%20error%20in%20the%20result%20and%20say%20which%20one%20you%20could%20reduce%20by%20buying%20a%20better%20camera.%0A%20%20%20%206.%20The%20center%20of%20mass%20follows%20a%20parabola%20in%20flight.%20A%20gymnast%20performing%20a%20somersault%20clearly%20does%20not.%20Is%20the%20model%20broken%3F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Problems%0A%0A%20%20%20%201.%20An%20athlete%20during%20a%20long%20jump%20had%20at%20the%20moment%20of%20takeoff%20a%20velocity%20of%20(8.10%2C%203.58%2C%200)%20%5Bin%20m%2Fs%5D%2C%20where%20%24%5Cmathbf%7Bx%2C%20y%2C%20z%7D%24%20are%20the%20horizontal%20(anterior-posterior)%2C%20vertical%2C%20and%20medio-lateral%20directions%2C%20respectively.%3Cbr%3E%0A%20%20%20%20%20%20%20a.%20Calculate%20the%20magnitude%20of%20the%20velocity%20at%20the%20takeoff.%3Cbr%3E%0A%20%20%20%20%20%20%20b.%20Calculate%20the%20angle%20of%20the%20jump%20at%20the%20takeoff.%3Cbr%3E%0A%20%20%20%20%20%20%20c.%20Calculate%20the%20jump%20distance.%3Cbr%3E%0A%20%20%20%20%20%20%20d.%20The%20actual%20jump%20distance%20was%206.75%20m.%20Comment%20about%20the%20difference%20between%20this%20value%20and%20the%20distance%20found%20in%20(c).%0A%0A%20%20%20%202.%20A%20person%20throws%20a%20ball%20upward%20(vertically)%20into%20the%20air%20with%20an%20initial%20speed%20of%2010%20m%2Fs%20and%20initial%20height%20of%20release%20of%202%20m.%20Determine%20the%20following%20quantities%20for%20the%20ball%3A%3Cbr%3E%0A%20%20%20%20%20%20%20a.%20Maximum%20height.%3Cbr%3E%0A%20%20%20%20%20%20%20b.%20Total%20time%20in%20the%20air.%3Cbr%3E%0A%20%20%20%20%20%20%20c.%20Velocity%20just%20before%20impact%20with%20the%20ground.%3Cbr%3E%0A%20%20%20%20%20%20%20d.%20Plots%20for%20position%2C%20velocity%2C%20and%20acceleration.%0A%0A%20%20%20%203.%20An%20athlete%20of%20diving%20jumps%20from%20a%2010-m%20height%20platform%20and%20reaches%20the%20water%20at%20a%20horizontal%20distance%20of%205%20m%20after%202.5%20s.%20Calculate%20the%20following%20quantities%20for%20the%20diver's%20center%20of%20mass%3A%3Cbr%3E%0A%20%20%20%20%20%20%20a.%20Initial%20speed%20and%20angle%20at%20the%20takeoff.%3Cbr%3E%0A%20%20%20%20%20%20%20b.%20Maximum%20height%20reached.%0A%0A%20%20%20%204.%20A%20ball%20is%20thrown%20with%20a%20speed%20%24v_0%3D25%24%20m%2Fs%20and%20angle%20%24%5Ctheta%3D%5Ctan%5E%7B-1%7D(4%2F3)%24%20and%20strikes%20the%20inclined%20surface%20shown%20in%20the%20figure%20below.%20Determine%20the%20position%20%24s%24%20at%20which%20the%20ball%20will%20strike%20the%20inclined%20surface.%0A%0A%20%20%20%20%20%20%20%20%3Cfigure%3E%3Ccenter%3E%3Cimg%20src%3D%22https%3A%2F%2Fgithub.com%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fimages%2Fex1_12_rade.png%3Fraw%3D1%22%20width%3D400%20alt%3D%22inclined%20surface%22%2F%3E%3C%2Fcenter%3E%3C%2Ffigure%3E%0A%0A%20%20%20%205.%20Investigate%20and%20propose%20at%20least%20three%20different%20methods%20to%20measure%20these%20kinematic%20quantities%20during%20training%20and%20sporting%20events.%20Discuss%20the%20limitations%20and%20advantages%20of%20each%20method%20considering%20their%20application%20in%20different%20sports.%0A%0A%20%20%20%206.%20Return%20to%20the%20jump%20or%20throw%20you%20chose%20in%20Challenge%200.%20Estimate%20its%20release%20speed%20and%20angle%20from%20your%20own%20guesses%20about%20its%20height%20and%20range%2C%20using%20the%20equations%20in%20this%20notebook.%20Then%20say%20which%20of%20the%20three%20modelling%20assumptions%20in%20*The%20model%2C%20and%20what%20it%20throws%20away*%20is%20the%20one%20you%20would%20have%20to%20abandon%20first%20to%20do%20better.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%2F%2F%2F%20details%20%7C%20Final%20answers%20to%20the%20problems%0A%0A%20%20%20%201.%20(a)%208.856%20m%2Fs.%20(b)%2023.844%C2%B0%20above%20horizontal.%20(c)%205.912%20m%20if%20the%20centre%20of%20mass%20lands%20at%20its%20takeoff%20height.%20(d)%20The%20measured%206.75%20m%20includes%20takeoff%2Flanding%20geometry%20and%20can%20involve%20a%20different%20centre-of-mass%20landing%20height%3B%20those%20quantities%20are%20absent%20from%20the%20equal-height%20estimate.%0A%20%20%20%202.%20Maximum%20height%207.0968%20m%20above%20ground%3B%20flight%20time%202.2222%20s%3B%20impact%20vertical%20velocity%20%E2%88%9211.8%20m%2Fs.%20The%20curves%20are%20%24y%3D2%2B10t-4.905t%5E2%24%2C%20%24v_y%3D10-9.81t%24%2C%20%24a_y%3D-9.81%24%20for%20%240%5Cle%20t%5Cle2.2222%24%20s.%0A%20%20%20%203.%20Initial%20components%20%24(2%2C8.2625)%24%20m%2Fs%3B%20speed%208.5011%20m%2Fs%2C%20angle%2076.3929%C2%B0%2C%20peak%20height%2013.4796%20m%20above%20water.%0A%20%20%20%204.%20%24s%3D40.04%24%20m%20along%20the%2030%C2%B0%20incline%2C%20with%20the%20launch%20angle%20measured%20above%20the%20horizontal.%0A%20%20%20%205.%20Calibrated%20high-speed%20video%20gives%20position%20and%20direction%20but%20needs%20visibility%20and%20perspective%20control%3B%20motion%20capture%20gives%20multiple%203D%20landmarks%20but%20requires%20calibration%20and%20a%20measurement%20volume%3B%20radar%20measures%20a%20line-of-sight%20velocity%20component%20but%20needs%20geometric%20alignment.%20These%20are%20examples%2C%20not%20a%20unique%20instrument%20list.%0A%20%20%20%206.%20For%20an%20equal-height%20flight%20with%20peak%20height%20%24H%24%20above%20release%20and%20range%20%24R%24%2C%20%24v_y%3D%5Csqrt%7B2gH%7D%24%2C%20%24v_x%3DR%5Csqrt%7Bg%2F(8H)%7D%24%2C%20%24v_0%3D%5Csqrt%7Bv_x%5E2%2Bv_y%5E2%7D%24%20and%20%24%5Ctheta%3D%5Coperatorname%7Batan2%7D(v_y%2Cv_x)%24.%20The%20first%20assumption%20to%20abandon%20depends%20on%20the%20chosen%20movement%3A%20aerodynamic%20forces%20for%20a%20shuttlecock%2C%20or%20launch%2Flanding%20geometry%20for%20a%20human%20jump.%0A%0A%20%20%20%20%2F%2F%2F%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20More%20examples%0A%0A%20%20%20%20-%20%5BHorizontally%20Launched%20Projectiles%20%E2%80%94%20Problem-Solving%5D(https%3A%2F%2Fwww.physicsclassroom.com%2Fclass%2Fvectors%2FLesson-2%2FHorizontally-Launched-Projectiles-Problem-Solving)%0A%20%20%20%20-%20%5BNon-Horizontally%20Launched%20Projectiles%20%E2%80%94%20Problem-Solving%5D(https%3A%2F%2Fwww.physicsclassroom.com%2Fclass%2Fvectors%2FLesson-2%2FNon-Horizontally-Launched-Projectiles-Problem-Solv)%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Go%20deeper%0A%0A%20%20%20%20-%20Read%20the%20text%3A%20Linthorne%20NP%20(2007)%20%3Ca%20href%3D%22http%3A%2F%2Fwww.brunel.ac.uk%2F~spstnpl%2FPublications%2FCh24LongJump(Linthorne).pdf%22%3EBiomechanics%20of%20the%20long%20jump%3C%2Fa%3E.%20In%20Routledge%20Handbook%20of%20Biomechanics%20and%20Human%20Movement%20Science%2C%20Y.%20Hong%20and%20R.%20Bartlett%20(Editors)%2C%20Routledge%2C%20London.%20pp.%20340%E2%80%93353.%20It%20measures%20the%20speed%E2%80%93angle%20trade-off%20we%20only%20caricatured%20here.%0A%20%20%20%20-%20%5BKinematics%20of%20a%20particle%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fkinematics_particle.py)%20%E2%80%94%20where%20the%20constant-acceleration%20equations%20used%20here%20come%20from.%0A%20%20%20%20-%20%5BScalar%20and%20vector%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fscalar_vector.py)%20%E2%80%94%20how%20to%20handle%20the%20velocity%20vector%20at%20take-off%20in%20Python.%0A%20%20%20%20-%20%5BCenter%20of%20mass%20and%20moment%20of%20inertia%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fcenter_of_mass_and_moment_of_inertia.py)%20%E2%80%94%20the%20point%20that%20actually%20follows%20the%20parabola.%0A%20%20%20%20-%20%5BData%20filtering%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fdata_filtering.py)%20and%20%5Bresidual%20analysis%5D(https%3A%2F%2Fmolab.marimo.io%2Fgithub%2FBMClab%2FBMC%2Fblob%2Fmaster%2Fnotebooks%2Fresidual_analysis.py)%20%E2%80%94%20on%20getting%20velocities%20out%20of%20measured%20positions.%0A%0A%20%20%20%20%23%23%23%20Video%20lectures%20on%20the%20Internet%0A%0A%20%20%20%20-%20Khan%20Academy%3A%20%5BTwo-dimensional%20motion%5D(https%3A%2F%2Fwww.khanacademy.org%2Fscience%2Fap-physics-1%2Fap-two-dimensional-motion)%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%23%20Optional%20assignments%20from%20the%20original%20sources%0A%0A%20%20%20%20These%20original%20reading%20assignments%20remain%20available%20for%20further%20study.%20Their%20full%20statements%20and%20source-specific%20answer%20keys%20are%20external%20to%20this%20guide.%0A%0A%20%20%20%20-%20The%20website%20%5BPhysics%20Classroom%5D(https%3A%2F%2Fwww.physicsclassroom.com%2Fcurriculum%2Fvectors%2FProjectile-Motion)%20has%20a%20link%20to%20a%20pdf%20document%20with%2026%20problems%20about%20projectile%20motion%20and%20links%20to%20the%20lessons%20about%20this%20topic.%20Download%20the%20pdf%20and%20solve%20the%20problems.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20References%0A%0A%20%20%20%20-%20Alexander%20RM%20(1990)%20%5BOptimum%20take-off%20techniques%20for%20high%20and%20long%20jumps%5D(http%3A%2F%2Frstb.royalsocietypublishing.org%2Fcgi%2Fpmidlookup%3Fview%3Dlong%26pmid%3D1976267).%20Philosophical%20Transactions%20of%20the%20Royal%20Society%20of%20London.%20Series%20B%2C%20Biological%20Sciences%2C%20329(1252)%2C%203-10.%0A%0A%20%20%20%20-%20%5BAn%C3%A1lise%20Biomec%C3%A2nica%20do%20Salto%20em%20Dist%C3%A2ncia%5D(https%3A%2F%2Fbmclab.pesquisa.ufabc.edu.br%2Fx%2Fsalto%2F)%0A%0A%20%20%20%20-%20Linthorne%20NP%20(2007)%20%3Ca%20href%3D%22http%3A%2F%2Fwww.brunel.ac.uk%2F~spstnpl%2FPublications%2FCh24LongJump(Linthorne).pdf%22%3EBiomechanics%20of%20the%20long%20jump%3C%2Fa%3E.%20In%20Routledge%20Handbook%20of%20Biomechanics%20and%20Human%20Movement%20Science%2C%20Y.%20Hong%20and%20R.%20Bartlett%20(Editors)%2C%20Routledge%2C%20London.%20pp.%20340%E2%80%93353.%0A%0A%20%20%20%20-%20%5BResearch%20Projects%5D(http%3A%2F%2Fwww.iaaf.org%2Fdevelopment%2Fresearch)%20from%20the%20International%20Association%20of%20Athletics%20Federations.%0A%0A%20%20%20%20-%20Seyfarth%20A%2C%20Blickhan%20R%2C%20Van%20Leeuwen%20JL%20(2000)%20%5BOptimum%20take-off%20techniques%20and%20muscle%20design%20for%20long%20jump%5D(http%3A%2F%2Fjeb.biologists.org%2Fcgi%2Fpmidlookup%3Fview%3Dlong%26pmid%3D10648215).%20Journal%20of%20Experimental%20Biology%2C%20203(Pt%204)%2C%20741-50.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
7a3c2e4bb83b565518cb27217fd1e19b