Message Boards Message Boards

GROUPS:

Animate these 2D plots?

Posted 2 months ago
594 Views
|
8 Replies
|
4 Total Likes
|

Consider the following code:

z1 = {-R*W*Sin[W*t] + l'[t]*Sin[\[Phi][t]] + 
            l[t]*(\[Phi]'[t])*Cos[\[Phi][t]], 
           R*W*Cos[W*t] - l'[t]*Cos[\[Phi][t]] + 
            l[t]*(\[Phi]'[t])*Sin[\[Phi][t]]};

        V = m*g*(R*Sin[W*t] - l[t]*Cos[\[Phi][t]]) + 1/2*k*(l[t] - l0)^2;
        T = 1/2*m*z1.z1;
        Lagrange = T - V;
        eqs = D[D[Lagrange, \[Phi]'[t]], t] - D[Lagrange, \[Phi][t]];
        eqs2 = D[D[Lagrange, l'[t]], t] - D[Lagrange, l[t]];

        g = 9.7; m = 1; l0 = 1; k = 1000; R = 2; W = Pi/2;
        sol = NDSolveValue[{eqs == 0, eqs2 == 0, l[0] == l0, l'[0] == 0, 
           Derivative[1][\[Phi]][0] == 0, \[Phi][0] == 0}, {l[t], \[Phi][
            t]}, {t, 0, 20}]

        {Plot[sol.{1, 0}, {t, 0, 5}, AxesLabel -> {"t", "l"}], 
         Plot[sol.{0, 1}, {t, 0, 5}, AxesLabel -> {"t", "\[Phi]"}]}
8 Replies

Is it this what you want to see?

I am afraid that no. you wrote that z1 is the derivative of your position-vector. So

xx = \[Integral]z1 \[DifferentialD]t

and

p1 = R {Cos[W t], Sin[W t]};
xxa = xx /. Flatten[sol /. a_[t] -> a];
Animate[Graphics[{Circle[{0, 0}, R], PointSize[.05], Black, 
   Point[p1 /. t -> tt], Red, Point[xxa /. t -> tt], Blue, 
   Line[{p1, xxa} /. t -> tt]}, Axes -> True, 
  PlotRange -> {{-4, 4}, {-4, 4}}], {tt, 0, 20}]

is perhaps more what you want to see.

Try

Plot[Evaluate[#[[2]] & /@ Flatten[sol] /. t -> tt], {tt, 0, 5},  PlotStyle -> {Red, Blue}]

Dear Ă–mer,

I don't know what you really want to do, what the physical situation is you want to describe and if your equations are correct.

Anyhow, what about this? Is it this what you want to see?

z1 = {-R*W*Sin[W*t] + l'[t]*Sin[\[Phi][t]] + 
    l[t]*(\[Phi]'[t])*Cos[\[Phi][t]], 
   R*W*Cos[W*t] - l'[t]*Cos[\[Phi][t]] + 
    l[t]*(\[Phi]'[t])*Sin[\[Phi][t]]};

V = m*g*(R*Sin[W*t] - l[t]*Cos[\[Phi][t]]) + 1/2*k*(l[t] - l0)^2;
T = 1/2*m*z1.z1;
Lagrange = T - V;
eqs = D[D[Lagrange, \[Phi]'[t]], t] - D[Lagrange, \[Phi][t]];
eqs2 = D[D[Lagrange, l'[t]], t] - D[Lagrange, l[t]];

g = 9.7; m = 1; l0 = 1; k = 1000; R = 2; W = Pi/2;
sol = NDSolve[{eqs == 0, eqs2 == 0, l[0] == l0, l'[0] == 0, 
    Derivative[1][\[Phi]][0] == 0, \[Phi][0] == 0}, {l[t], \[Phi][
     t]}, {t, 0, 20}];

p1 = R {Cos[W t], Sin[W t]};
z1a = z1 /. Flatten[sol /. a_[t] -> a];
Animate[Graphics[{Circle[{0, 0}, R], PointSize[.05], Black, 
   Point[p1 /. t -> tt], Red, Point[z1a /. t -> tt], Blue, 
   Line[{p1, z1a} /. t -> tt]}, Axes -> True, 
  PlotRange -> {{-4, 4}, {-4, 4}}], {tt, 0, 20}]
Posted 2 months ago

I mean like this double-pendulum animation here.How can I make like this for my equation?

https://mathematica.stackexchange.com/questions/48059/animation-of-double-pendulum

You could try this, I hope it helps.

z1 = {-R*W*Sin[W*t] + l'[t]*Sin[\[Phi][t]] + 
l[t]*(\[Phi]'[t])*Cos[\[Phi][t]], 
R*W*Cos[W*t] - l'[t]*Cos[\[Phi][t]] + 
l[t]*(\[Phi]'[t])*Sin[\[Phi][t]]};

V = m*g*(R*Sin[W*t] - l[t]*Cos[\[Phi][t]]) + 1/2*k*(l[t] - l0)^2;
T = 1/2*m*z1.z1;
Lagrange = T - V;
eqs = D[D[Lagrange, \[Phi]'[t]], t] - D[Lagrange, \[Phi][t]];
eqs2 = D[D[Lagrange, l'[t]], t] - D[Lagrange, l[t]];

g = 9.7; m = 1; l0 = 1; k = 1000; R = 2; W = Pi/2;
sol = NDSolve[{eqs == 0, eqs2 == 0, l[0] == l0, l'[0] == 0, 
Derivative[1][\[Phi]][0] == 0, \[Phi][0] == 0}, {l[t], \[Phi][
t]}, {t, 0, 20}];

z1a = z1 /. Flatten[sol /. a_[t] -> a];
Animate[
Graphics[{Red, PointSize[.05], Point[z1a /. t -> tt]}, Axes -> True, 
PlotRange -> {{-4, 4}, {-4, 4}}],
{tt, 0, 20}]

Or did you mean something like this?

ParametricPlot[z1a /. t -> tt, {tt, 0, 3}, Axes -> True,  PlotRange -> {{-10, 10}, {-10, 10}}]
Posted 2 months ago

Yes it is works, but there is a disc and the spring pendulum rotating at above the disc. How can I show the disc in this code?

Posted 2 months ago

Thanks for reply.It was helpful.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract