Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Needs["VariationalMethods`"]
- ClearAll[Global]
- variables = {Subscript[[Theta], 1][t], Subscript[[Theta], 2][t],
- Subscript[[Theta], 3][t]};
- Subscript[r, 1] =
- Subscript[l,
- 1] {Sin[Subscript[[Theta], 1][t]], -Cos[
- Subscript[[Theta], 1][t]]};
- Subscript[r, 2] =
- Subscript[r, 1] +
- Subscript[l,
- 2] {Sin[Subscript[[Theta], 2][t]], -Cos[
- Subscript[[Theta], 2][t]]};
- Subscript[r, 3] =
- Subscript[r, 2] +
- Subscript[l,
- 3] {Sin[Subscript[[Theta], 3][t]], -Cos[
- Subscript[[Theta], 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[[Theta], 1][0] == Pi/2,
- Subscript[[Theta], 2][0] == Pi, Subscript[[Theta], 3][0] == Pi/2,
- Subscript[[Theta], 1]'[0] == Pi/2,
- Subscript[[Theta], 2]'[0] == 0, Subscript[[Theta], 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[[Theta], 2]'[t] /. sol, {t, 0, 10}]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement