Movement of a ball constrained on an elliptic surface
(Local) In[]:=
arrowAxes[arrowLength_]:=Map[{Apply[RGBColor,#],Arrow[Tube[{{0,0,0},#}]]}&,arrowLength*IdentityMatrix[3]]
(Local) In[]:=
(*ConstraintconditionontheCartesiancoordinate*)gC[{r1_,r2_,r3_}]:=r1^2+r2^2/4+r3^2/9-1
Visualization of constraint
(Local) In[]:=
cp3d=ContourPlot3D[gC[{r1,r2,r3}]0,{r1,-4,4},{r2,-4,4},{r3,-4,4},ContourStyleOpacity[0.3],AxesLabelAutomatic]
(Local) Out[]=
(Local) In[]:=
Show[cp3d,Graphics3D[arrowAxes[4]]]
(Local) Out[]=
Lagrangian on the Cartesian coordinate
(Local) In[]:=
VC[{r1_,r2_,r3_}]=ag*r3;(*agisthegravitationalacceleration*)
(Local) In[]:=
TC[{r1d_,r2d_,r3d_}]=(m/2){r1d,r2d,r3d}.{r1d,r2d,r3d};
(Local) In[]:=
LC[t_,{r1_,r2_,r3_},{r1d_,r2d_,r3d_}]=TC[{r1d,r2d,r3d}]-VC[{r1,r2,r3}];
(Local) In[]:=
LC[t,{r1[t],r2[t],r3[t]},D[{r1[t],r2[t],r3[t]},t]]
(Local) Out[]=
-agr3[t]+m([t]+[t]+[t])
1
2
2
′
r1
2
′
r2
2
′
r3
Coordinate transformation
(Local) In[]:=
r_from_q[{q1_,q2_,q3_}]={q3*Sin[q1]*Cos[q2],2q3*Sin[q1]*Sin[q2],3q3*Cos[q1]};
(Local) In[]:=
r_from_q[{q1,q2,q3}]
(Local) Out[]=
{q3Cos[q2]Sin[q1],2q3Sin[q1]Sin[q2],3q3Cos[q1]}
(Local) In[]:=
(*r1[q1_,q2_,q3_]=q3*Sin[q1]*Cos[q2];r2[q1_,q2_,q3_]=2q3*Sin[q1]*Sin[q2];r3[q1_,q2_,q3_]=3q3*Cos[q1];*)
Constraint on the generalized coordinate
(Local) In[]:=
g[{q1_,q2_,q3_}]=Simplify[gC[r_from_q[{q1,q2,q3}]]]
(Local) Out[]=
-1+
2
q3
(Local) In[]:=
-1+(*q3[t]iseasilysolvedtobe1.*)
2
q3
(Local) Out[]=
-1+
2
q3
(Local) In[]:=
D[g[{q1,q2,q3}],{{q1,q2,q3}}]
(Local) Out[]=
{0,0,2q3}
Lagrangian on the generalized coordinate
(Local) In[]:=
LC[t,r_from_q[{q1[t],q2[t],q3[t]}],D[r_from_q[{q1[t],q2[t],q3[t]}],t]]
(Local) Out[]=
-3agCos[q1[t]]q3[t]+m(++)
1
2
2
(-3q3[t]Sin[q1[t]][t]+3Cos[q1[t]][t])
′
q1
′
q3
2
(Cos[q1[t]]Cos[q2[t]]q3[t][t]-q3[t]Sin[q1[t]]Sin[q2[t]][t]+Cos[q2[t]]Sin[q1[t]][t])
′
q1
′
q2
′
q3
2
(2Cos[q1[t]]q3[t]Sin[q2[t]][t]+2Cos[q2[t]]q3[t]Sin[q1[t]][t]+2Sin[q1[t]]Sin[q2[t]][t])
′
q1
′
q2
′
q3
(Local) In[]:=
L[t_,{q1_,q2_,q3_},{q1d_,q2d_,q3d_}]=LC[t,r_from_q[{q1[t],q2[t],q3[t]}],D[r_from_q[{q1[t],q2[t],q3[t]}],t]]/.{q1[t]q1,q2[t]q2,q3[t]q3,q1'[t]q1d,q2'[t]q2d,q3'[t]q3d};
(Local) In[]:=
L[t,{q1,q2,q3},{q1d,q2d,q3d}]
(Local) Out[]=
-3agq3Cos[q1]+m(++)
1
2
2
(3q3dCos[q1]-3q1dq3Sin[q1])
2
(q1dq3Cos[q1]Cos[q2]+q3dCos[q2]Sin[q1]-q2dq3Sin[q1]Sin[q2])
2
(2q2dq3Cos[q2]Sin[q1]+2q1dq3Cos[q1]Sin[q2]+2q3dSin[q1]Sin[q2])
Lagrange’s equation of motion on the generalized coordinate
(Local) In[]:=
generalizedForce=FullSimplify[D[L[t,{q1[t],q2[t],q3[t]},D[{q1[t],q2[t],q3[t]},t]],{{q1[t],q2[t],q3[t]}}]/.{q3[t]1,q3'[t]0}]
(Local) Out[]=
(m(13+3Cos[2q2[t]])Sin[2q1[t]][t]+6mCos[2q1[t]]Sin[2q2[t]][t][t]+2Sin[q1[t]](6ag+mCos[q1[t]](5+3Cos[2q2[t]])[t])),m(Sin[2q2[t]][t]+Cos[2q2[t]]Sin[2q1[t]][t][t]-Sin[2q2[t]][t]),-3agCos[q1[t]]+m(9[t]+4+)
1
4
2
′
q1
′
q1
′
q2
2
′
q2
3
2
2
Cos[q1[t]]
2
′
q1
′
q1
′
q2
2
Sin[q1[t]]
2
′
q2
2
Sin[q1[t]]
2
′
q1
2
(Cos[q1[t]]Sin[q2[t]][t]+Cos[q2[t]]Sin[q1[t]][t])
′
q1
′
q2
2
(Cos[q1[t]]Cos[q2[t]][t]-Sin[q1[t]]Sin[q2[t]][t])
′
q1
′
q2
(Local) In[]:=
generalizedAcceleration=FullSimplify[D[L[t,{q1[t],q2[t],q3[t]},D[{q1[t],q2[t],q3[t]},t]],{D[{q1[t],q2[t],q3[t]},t]},t]/.{q3[t]1,[t]->0,[t]0}]
′
q3
′′
q3
(Local) Out[]=
m(26Sin[2q1[t]][t]+23[t]-13Cos[2q1[t]][t]+6Cos[q1[t]]Cos[2q2[t]](2Sin[q1[t]]([t]+[t])-Cos[q1[t]][t])+3Sin[2q2[t]](2(1+2Cos[2q1[t]])[t][t]+Sin[2q1[t]][t])),m(3Cos[2q1[t]]Sin[2q2[t]][t]+(5+6Cos[2q2[t]])Sin[2q1[t]][t][t]+Sin[q1[t]](3Sin[2q2[t]](-2Sin[q1[t]][t]+Cos[q1[t]][t])+(5+3Cos[2q2[t]])Sin[q1[t]][t])),m(-2Cos[2q1[t]](13+3Cos[2q2[t]])[t]+12Sin[2q1[t]]Sin[2q2[t]][t][t]+12Cos[2q2[t]][t]-(13+3Cos[2q2[t]])Sin[2q1[t]][t]+6Sin[2q2[t]][t])
1
4
2
′
q1
′′
q1
′′
q1
2
′
q1
2
′
q2
′′
q1
′
q1
′
q2
′′
q2
1
2
2
′
q1
′
q1
′
q2
2
′
q2
′′
q1
′′
q2
1
4
2
′
q1
′
q1
′
q2
2
Sin[q1[t]]
2
′
q2
′′
q1
2
Sin[q1[t]]
′′
q2
Numerical solution
(Local) In[]:=
sol_qdd=FullSimplify[Solve[generalizedForce[[;;2]]generalizedAcceleration[[;;2]],{q1''[t],q2''[t]}]/.{m1,ag10}]
(Local) Out[]=
[t],[t]
′′
q1
2Sin[q1[t]](150+90Cos[2q2[t]]-Cos[q1[t]](37+27Cos[2q2[t]])[t]+8Cos[q1[t]][t])
2
′
q1
2
′
q2
53-37Cos[2q1[t]]+54Cos[2q2[t]]
2
Sin[q1[t]]
′′
q2
54Sin[2q2[t]][t]+(-69Cot[q1[t]]+37Cos[3q1[t]]Csc[q1[t]]-54Cos[2q2[t]]Sin[2q1[t]])[t][t]+18Sin[2q2[t]](-10Cos[q1[t]]+3[t])
2
′
q1
′
q1
′
q2
2
Sin[q1[t]]
2
′
q2
53-37Cos[2q1[t]]+54Cos[2q2[t]]
2
Sin[q1[t]]
(Local) In[]:=
traject_q=NDSolve[{[t]sol_qdd[[1,1,2]],[t]==sol_qdd[[1,2,2]],q1[0]Pi/3,q2[0]Pi/4,q1'[0]0,q2'[0]0},{q1,q2},{t,0,20}]
′′
q1
′′
q2