Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- eqns = {
- x''[t] + (Sqrt[x[t]^2 + y[t]^2] - 1) x[t]/ Sqrt[
- x[t]^2 + y[t]^2] == 0,
- y''[t] + (Sqrt[x[t]^2 + y[t]^2] - 1) y[t]/ Sqrt[x[t]^2 + y[t]^2] +
- 1/4 == 0,
- x'[0] == 0, x[0] == 0.001,
- y'[0] == 0.5, y[0] == -1};
- soln = NDSolve[eqns, {x[t], y[t], x'[t], y'[t]}, {t, 0, 114.8},
- Method -> "ExplicitRungeKutta", MaxSteps -> 30000];
- Rugo[xkezd_, ykezd_, xveg_, yveg_] :=
- Module[{hx, hossz, dh, hy, veghossz, szel}, {
- hx = xveg - xkezd; hy = yveg - ykezd; szel = 0.1; veghossz = 0.3;
- hossz = Sqrt[hx^2 + hy^2];
- dh = (hossz - 2*veghossz)/30;
- {xkezd, ykezd}}~
- Join~{{xkezd + hx*(dh + veghossz)/hossz,
- ykezd + hy*(dh + veghossz)/hossz}}~Join~
- Table[If[
- OddQ[i], {xkezd + hx*(i*dh + veghossz)/hossz + hy*szel/hossz,
- ykezd + hy*(i*dh + veghossz)/hossz - hx*szel/hossz},
- {xkezd + hx*(i*dh + veghossz)/hossz - hy*szel/hossz,
- ykezd + hy*(i*dh + veghossz)/hossz + hx*szel/hossz}], {i, 2,
- 28}]~Join~{{xkezd + hx*(29*dh + veghossz)/hossz,
- ykezd + hy*(29*dh + veghossz)/hossz}}~Join~{{xveg, yveg}}];
- frame[tt_] := Show[
- Graphics[{
- Line[Rugo @@ First[{0, 0, x[t], y[t]} /. soln /. {t -> tt}]],
- Disk[First[{x[t], y[t]} /. soln /. {t -> tt}], 0.1]
- }, PlotRange -> {{-1.2, 1.2}, {-1.8, 0}}, ImageSize -> 300],
- ParametricPlot[{x[t], y[t]} /. soln /. {t -> \[Tau]}, {\[Tau], tt,
- tt + 1}, PlotStyle -> Directive[Thick, Red]]
- ];
- Manipulate[frame[tt],{tt,0,114.8}]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement