Bungee Jumping

Manipulate[
Module[{sol},(sol=NDSolve[{w/32.  yy''[tt]+ w+k yy[tt] UnitStep[-yy[tt]]+β yy'[tt]==0,yy[0]==100,yy'[0]==0},yy,{tt,0,ttt},MaxStepFraction->1/1000];
Which[
display==3,
Plot[Evaluate[{-w/k,yy[tt]}/.sol],{tt,0,ttt},PlotRange->{-150,175},PlotStyle->{Directive[Red,Opacity[.5],Dashed,AbsoluteThickness[1]],Directive[Red,AbsoluteThickness[3]],Directive[Blue,Opacity[.5],AbsoluteThickness[1]]},ImageSize->.9{600,400},PlotLabel->Style[TraditionalForm[y[t]],Red,14],LabelStyle->12,AxesLabel->{t,None}],
display==1,
Plot[Evaluate[{-w/k,yy[tt],yy''[tt]}/.sol],{tt,0,ttt},PlotRange->{-150,175},PlotStyle->{Directive[Red,Opacity[.5],Dashed,AbsoluteThickness[1]],Directive[Red,AbsoluteThickness[3]],Directive[Blue,Opacity[.5],AbsoluteThickness[1]]},ImageSize->.9{600,400},PlotLabel->Row[{Style[TraditionalForm[y[t]],Red,14],Spacer[20], Style[TraditionalForm[y''[t]],14,Blue]}],LabelStyle->12,AxesLabel->{t,None}],
display==2,
Plot[Evaluate[{-w/k,yy[tt],yy'[tt]}/.sol],{tt,0,ttt},PlotRange->{-150,175},PlotStyle->{Directive[Red,Opacity[.5],Dashed,AbsoluteThickness[1]],Directive[Red,AbsoluteThickness[3]],Directive[Darker@Green,Opacity[.5],AbsoluteThickness[1]]},ImageSize->.9{600,400},PlotLabel->Row[{Style[TraditionalForm[y[t]],Red,14],Spacer[20], Style[TraditionalForm[y'[t]],14,Darker@Green]}],LabelStyle->12,
AxesLabel->{t,None}]])],
Row[{
Control@{{display, 1,""},{
1-> Row[{TraditionalForm[y[t]]," and ", TraditionalForm[y''[t]]}],2-> Row[{TraditionalForm[y[t]]," and ", TraditionalForm[y'[t]]}],
3-> Row[{TraditionalForm[y[t]]," only"}]},Setter},
Spacer[40],
Control@{{ttt,20,"time (sec)"},10,40,10,ControlType->RadioButton}
}],
{{w,140,"weight (lbs)"},100,220,20,Appearance->"Labeled"},
{{β,0.5,"damping coefficient β"},0,1,.1,Appearance->"Labeled"},
{{k,5,"spring constant k"},5,10,1,Appearance->"Labeled"}
]

CAPTION

The following second-order nonlinear differential equation models a bungee jump:

m y''(t)+m g +b[y(t)]+β y'(t)=0.

Here y(t) is the position of the jumper at time t, m is the mass of the jumper, g is the gravitational constant, and β is the damping coefficient due to air resistance.

A bungee cord acts like a spring when stretched, but it has no restoring force when "compressed". The restoring force of the bungee cord b(y) is thus modeled as follows: b(y)=k y if y≤0, and b(y)=0 if y>0, where k is the spring constant of the bungee cord.

With "y'(t) and y''(t)" selected, the Demonstration shows the position y(t) and the acceleration y''(t) of the jumper at time t. The dashed line shows the equilibrium solution, that is, the position of the jumper at the end of the jump. The natural length of the bungee cord is 100 ft, and the jump starts at a height of 100 ft.

You can change the weight of the jumper, the damping coefficient β, and the spring constant k of the bungee cord.

THIS NOTEBOOK IS THE SOURCE CODE FROM

Helmut Knaust

"Bungee Jumping"
 http://demonstrations.wolfram.com/BungeeJumping/
 Wolfram Demonstrations Project
 Published: October 11, 2013

A full-function Wolfram Mathematica system is required to edit this notebook.
GET WOLFRAM MATHEMATICA »

© Wolfram Demonstrations Project & Contributors   |   Terms of Use   |   Make a new version of this Demonstration »