restart: with(linalg): u:=vector(3,[0,alpha[1]*H[1](x)+alpha[2]*D[1](x)+alpha[6]*H[2](x)+alpha[7]*D[2](x),alpha[3]*H[1](x)+alpha[4]*D[1](x)+alpha[8]*H[2](x)+alpha[9]*D[2](x)]); theta:=alpha[5]*L[1](x)+alpha[10]*L[2](x); A:=matrix(3,3,[mu*G,0,0,0,E*I2,0,0,0,E*I3]); t:=vector(3,[1,0,0]); dx:=proc(f) diff(f,x);end; du:=map(dx,u); w:=map(dx,evalm((crossprod(t,du)+theta*t)));lprint(op(w)); w:=subs(diff(L[1](x),x)=vni[5,2],diff(L[2](x),x)=vni[6,2],diff(diff(H[1](x),x),x)=vni[1,3],diff(diff(D[1](x),x),x)=vni[2,3],diff(diff(H[2](x),x),x)=vni[3,3],diff(diff(D[2](x),x),x)=vni[4,3],op(w)); ener:=evalm(1/2*transpose(w)&*A&*w); vv:=grad(ener,[seq(alpha[i],i=1..10)]); vkg:=matrix(10,10);for i to 10 do for j to 10 do vkg[i,j]:=diff(vv[i],alpha[j]):od;od; op(vkg);latex(vkg); with(CodeGeneration); Fortran(vkg);