MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Projectile motion


Hi,

a) it is not wise to solve the ode every time even when the
    analytical solution can be found and the time where the ball
    hit the ground is known to be
     2 v Sin[Theta]/g
b)

Manipulate[
  Module[{eqns, soln, x, y, t},
   eqns = {x'[t] == v Cos[Theta], x[0] == 0,
     y'[t] == -g t + v Sin[Theta], y[0] == 0};
   soln = Flatten[NDSolve[eqns, {x, y}, {t, 0, 2 v Sin[Theta]/g}]];
   With[{d = x[p] /. soln, h = y[p] /. soln},
    Graphics[{Blue, Disk[{d, h}, .2]},
     PlotRange -> {{-.5, 12}, {-.5, 6}}, Frame -> True,
     PlotLabel ->
      TableForm[{"Theta =" <>
         ToString[NumberForm[Theta 180/Pi, {2, 0}]],
        "vx =" <> ToString[NumberForm[Chop[N[v Cos[Theta]]], {2, 1}]],
        "vy =" <> ToString[NumberForm[Chop[N[v Sin[Theta]]], {2, 1}]],
        "xmax =" <>
         ToString[NumberForm[N[(v2 Sin[2 Theta])/g], {3, 2}]],
        "ymax =" <>
         ToString[
          NumberForm[N[(v Sin[Theta]) 2/(2 g)], {3, 2}]]}]]]], {{v, 5,
    "Initial Velocity"}, 1, 10}, {{g, 9.8, "Gravitational Constant"},
   0, 30}, {{Theta, Pi/4, "Theta"}, 0, Pi/2}, {{p, 0, "Animate"}, 0,
   2 v Sin[Theta]/g, ControlType -> Trigger}]

will do that.

Regards
   Jens


Mike wrote:
> All:
> 
> I'd like to be able to stop the "disk" when it arrives at xmax. Can anyone give me a hint?
> 
> Thx,
> 
> Mike
> 
> 
> Manipulate[
>  Module[{eqns, soln, x, y, t}, 
>   eqns = {x'[t] == v Cos[Theta], x[0] == 0, 
>     y'[t] == -g t + v Sin[Theta], y[0] == 0}; 
>   soln = Flatten[NDSolve[eqns, {x, y}, {t, 0, p}]]; 
>   With[{d = x[p] /. soln, h = y[p] /. soln}, 
>    Graphics[{Blue, Disk[{d, h}, .2]}, 
>     PlotRange -> {{-.5, 12}, {-.5, 6}}, Frame -> True, 
>     PlotLabel -> 
>      TableForm[{"Theta =" <> 
>         ToString[NumberForm[Theta 180/Pi , {2, 0}]], 
>        "vx =" <> 
>         ToString[NumberForm[Chop[N[v Cos[Theta]]] , {2, 1}]], 
>        "vy =" <> 
>         ToString[NumberForm[Chop[N[v Sin[Theta]]] , {2, 1}]], 
>        "xmax =" <> 
>         ToString[NumberForm[N[(v^2 Sin[2 Theta])/g] , {3, 2}]], 
>        "ymax =" <> 
>         ToString[
>          NumberForm[N[(v Sin[Theta])^2/(2 g)] , {3, 2}]]}]]]], {{v,
>     5, "Initial Velocity"}, 1, 
>   10}, {{g, 9.8, "Gravitational Constant"}, 0, 
>   30}, {{Theta, Pi/4 , "Theta"}, 0, Pi/
>   2}, {{p, 0, "Animate"}, 0, 2, ControlType -> Trigger}]
> 


  • Prev by Date: Re: Beta function, Integral
  • Next by Date: Can model parameters be global?
  • Previous by thread: Re: Projectile motion
  • Next by thread: Re: Projectile motion