Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (* much faster than yesterday's *)
- g = 0.1; k = 0.01; TMax = 100; num = 40; vxmax = 0.99; boxwidth = 15; \
- tail = TMax;
- path[vx_] := NDSolve[{x'[0] == vx, y'[0] == Sqrt[1 - vx^2],
- x''[t] == -20 Sign[x[t]] ( Tanh[x[t]^2 - boxwidth^2] + 1),
- y''[t] == -0.1 - 20 (Tanh[20 y[t]] - 1)/2 - k y'[t], x[0] == 0,
- y[0] == 0.1}, {x[t], y[t]}, {t, 0, TMax}];
- paths = Table[path[v], {v, -vxmax, vxmax, (2 vxmax)/num}];
- frame[T_] :=
- Show[Table[
- ParametricPlot[
- First[{x[t], y[t]} /. paths[[i]]] /. {t -> tt}, {tt,
- Max[0, T - tail], T},
- PlotRange -> {{-boxwidth, boxwidth}, {-1, 10}}, Axes -> None,
- PlotStyle ->
- Directive[Opacity[0.8],
- ColorData["RedBlueTones"][i/Length[paths]]]]
- , {i, Length@paths}],
- Graphics[{
- PointSize[Medium], RGBColor[0.3, 0.4, 0.9],
- Table[{Darker@Darker@ColorData["RedBlueTones"][i/Length[paths]],
- Point[First[{x[t], y[t]} /. paths[[i]] /. {t -> T}]]}
- , {i, Length@paths}]
- }
- ]
- ];
- Manipulate[frame[T], {T, 0.01, TMax}]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement