Off[General::spell1];
Off[General::spell];

(*position analysis*)

m1=m2=m;

L1=L2=L;

rA={L1*Sin[q1[t]],L1*Cos[q1[t]],0};

rC1={L1*Sin[q1[t]]/2.,L1*Cos[q1[t]]/2.,0};

rB=rA+{L2*Sin[q2[t]],L2*Cos[q2[t]],0};

rC2=rA+{L2*Sin[q2[t]]/2.,L2*Cos[q2[t]]/2.,0};

(*velocity analysis*)

vA=D[rA,t];

vC1=D[rC1,t];

vB=D[rB,t];

vC2=D[rC2,t];

w1={0,0,-q1'[t]};

w2={0,0,-q2'[t]};

JC1=m1*L1^2/12.;

JC2=m2*L2^2/12.;
T1=m1 vC1.vC1/2.+JC1 w1.w1/2.;
T2=m2 vC2.vC2/2.+JC2 w2.w2/2.;

(*T1 can be calculated as T1=J0 w1.w1/2.
where  J0=m1*L1^2/3 *)
Simplify[T1];
Simplify[T2];

T=T1+T2;

Simplify[T];
(*external forces*)

FC1={0,m1 g,0};

FC2={0,m2 g,0};
(*generalized forces*)

Q1=FC1.D[rC1,q1[t]]+FC2.D[rC2,q1[t]];

Q2=FC1.D[rC1,q2[t]]+FC2.D[rC2,q2[t]];
(*Lagrange's equations*)

eq1=D[D[T,q1'[t],t]]-D[T,q1[t]]-Q1;

eq2=D[D[T,q2'[t],t]]-D[T,q2[t]]-Q2;

(*input data*)

inp={m1->1.,L1->1.,m2->1.,L2->1.,g->10.};
equation1=eq1/.inp;

equation2=eq2/.inp;
sol=NDSolve[{equation1==0,equation2==0,
q1[0]==.1,q2[0]==.1,q1'[0]==0.,q2'[0]==0.},
{q1,q2},{t,0.,40.},MaxSteps->2000];

Plot[Evaluate[q1[t]]/.sol,{t,0.,40.}]
Plot[Evaluate[q2[t]]/.sol,{t,0.,40.}]