I have used NDSolve
to solve for a function (an angle of a triple pendulum), and now I wish to plot the derivative of that function (the angular velocity). Mathematica plots an empty plot. I had this issue before with a double pendulum system and ended up having to copy and paste cells into a new notebook one by one, and reevaluating everything. Then it suddenly started working (for the double pendulum). Doing that is not working in the case of my triple pendulum; the plot is still empty.
Needs["VariationalMethods`"]
ClearAll[Global]
variables = {Subscript[θ, 1][t], Subscript[θ, 2][t], Subscript[θ, 3][t]};
Subscript[r, 1] =
Subscript[l, 1] {Sin[Subscript[θ, 1][t]], -Cos[Subscript[θ, 1][t]]};
Subscript[r, 2] = Subscript[r, 1] +
Subscript[l, 2] {Sin[Subscript[θ, 2][t]], -Cos[Subscript[θ, 2][t]]};
Subscript[r, 3] = Subscript[r, 2] +
Subscript[l, 3] {Sin[Subscript[θ, 3][t]], -Cos[Subscript[θ, 3][t]]};
Subscript[l, 1] = 1;
Subscript[l, 2] = 1;
Subscript[l, 3] = 1;
Subscript[m, 1] = 1;
Subscript[m, 2] = 1;
Subscript[m, 3] = 1;
g = 9.81; tMax = 10;
initial =
{Subscript[θ, 1][0] == Pi/2, Subscript[θ, 2][0] == Pi, Subscript[θ, 3][0] == Pi/2,
Subscript[θ, 1]'[0] == Pi/2, Subscript[θ, 2]'[0] == 0, Subscript[θ, 3]'[0] == 0};
lagrangian = (Subscript[m, 1]/2) D[Subscript[r, 1], t].D[Subscript[r,
1], t] + (Subscript[m, 2]/2) D[Subscript[r, 2], t].D[Subscript[
r, 2], t] + (Subscript[m, 3]/2) D[Subscript[r, 3], t].D[
Subscript[r, 3], t] - g {0, 1}.(Subscript[m, 1]*Subscript[r, 1] +
Subscript[m, 2]*Subscript[r, 2] + Subscript[m, 3]*Subscript[r, 3]);
eqs = EulerEquations[lagrangian, variables, t];
sol = First[NDSolve[Join[eqs, initial], variables, {t, 0, tMax}]];
Plot[Subscript[θ, 2]'[t] /. sol, {t, 0, 10}]
and the plot is blank. Like I said, I did the exact same code for the double pendulum, except the Lagrangian was slightly different (no third mass), and I was working with fewer variables. I had the same problem; there was no plot. After copying and pasting, it started working. But no amount of copying and pasting and renaming variables is working with the triple pendulum.
Notice Subscript[θ, 2][t] /. sol /. t -> 5
gives an answer of -5.75151
. But notice Subscript[θ, 2]'[t] /. sol /. t -> 5
simply spits out Derivative[1][Subscript[θ, 2]][5]
(the same thing). So the derivative has not been calculated at all, it seems.
Why is there no plot?
Note: the theta function plots fine. I'm wanting to plot the derivative of each theta function. That is not working.
Comments
Post a Comment