Procedures voor het bestuderen van de aangedreven slinger

Dit notebook kan worden gebruikt bij het bestuderen van de differentiaalvergelijking voor de aangedreven slinger.

sol[x0,y0,k] lost de differentiaalvergelijking met startwaarden x0 en y0 tot en met tijd 2 Pi k op.

\(\(\(sol[x0_, y0_, k_] := \ 
        NDSolve[{eq, x[0] == x0, \(x'\)[0] == y0}, 
          x, \ {t, \ 0, \ 2*Pi*k/f}];\)\(
\)
    \)\)

De d.v. zelf staat in de opgave

eq  =  x''[t]  +  
          c*x'[t]  +  (1 + A*f*f*Cos[f*t])*Sin[x[t]]  ==  
        0

Voor de drie parameters kiezen we de waarden

c = 0;
A = 0;
f = 1;

Een oplossing wordt getoond door onderstaande opdracht uit te voeren.

Plot[
Evaluate[
          2*Pi*FractionalPart[(x[t] + 1001*Pi)/(2*Pi)] - Pi /. 
            sol[0,  1,  10 ]], 
{t,  0,  
          2*Pi*10}, 
AxesLabel -> {"tijd", "hoek\
"}
];

faseportret[x0,y0,k] toont de baan x met beginwaarden x0 en y0 in het fasevlak.

\(\(faseportret[x0_, y0_, k_] := \ 
        ParametricPlot[
Evaluate[{2*Pi*
                    FractionalPart[\((x[t] + 1001*Pi)\)/\((2*Pi)\)] - 
                  Pi, \(x'\)[t]} /. 
              sol[x0, \ y0, \ k\ ]], 
{t, \ 0, \ 
            2*Pi*k}, 
AxesLabel -> {"hoek", "snelheid"}, 
AspectRatio -> 
            1
];\)\)

Een baan wordt verkregen door onderstaande opdracht uit te voeren.

faseportret[0,  1,  1];

scoop[x0,y0,k] sampled de oplossing x met beginwaarden x0 en y0.

scoop[x0_, y0_, k_] :=  
        Flatten[Table[
Evaluate[{2*Pi*
                      FractionalPart[(x[i] + 1001*Pi)/(2*Pi)] - 
                    Pi, x'[i]} /. 
                sol[x0,  y0,  k ]], 
{i,  0,  
              k}
], 1];

Dit levert stroboscopische plaatjes op

\(\(strobo = \ 
        ListPlot[\ 
          Join[\ scoop[0, \ 1, \ 50], scoop[0, \ 2, \ 50], 
            scoop[0, \ 3, \ 50], 
            scoop[0, \ \(-3\), \ 
              50]], 
AxesLabel -> {"hoek", "snelheid"}, 
AspectRatio -> 1, 
          PlotStyle -> AbsolutePointSize[3]
];\)\)