Invariant Euler-Lagrange and Helmholtz Operators

> with(Vessiot):

(a package, designed by Ian Anderson et. al. that contains commands for all the basic operations of calculus on jet spaces. Available from http://www.math.usu.edu/~fg_mp/Pages/SymbolicsPage/Symbolics.html)

> read("iVBstructure"):

(a procedure that computes structure equations for an invariant coframe on a jet bundle. Available from Irina Kogan: iakogan@ncsu.edu)

> read("iVarCalc"):

(a package that implements variational calculus relative to invariant frames. Available from Irina Kogan: iakogan@ncsu.edu)

SE(2) action on plane curves

Input:

Invariant  frame:

Invariant coordinates and bases:

Euler-Lagrange operator

SA(2) action on plane curves

Input:

Invariant  frame:

Invariant coordinates and bases:

Euler-Lagrange operator

sigma[1] (= da )

mfr1 > lambda:=evalV(sigma1);

lambda := sigma1[``]

mfr1 > EL:=mfEL(lambda);rewrite11(%);

EL := 2/9*u[4]*sigma1[``]*`^ `*Theta1[``]

2/9*kappa[0]*sigma1[``]*`^ `*Theta1[``]

EL=Iparts(dV(lambda ))

mfr1 > EL,mu:=Iparts(dV(lambda));

EL, mu := 2/9*u[4]*sigma1[``]*`^ `*Theta1[``], -1/3*Theta2[``]

EL=dV(lambda )-dH(mu )

mfr1 > evalV(dV(lambda)-dH(mu));

2/9*u[4]*sigma1[``]*`^ `*Theta1[``]

kappa*sigma[1]

mfr1 > lambda:=evalV(u[4]* sigma1);

lambda := u[4]*sigma1[``]

mfr1 > EL:=mfEL(lambda);rewrite11(%);

EL := (28/9*u[4]^2-2/3*u[6])*sigma1[``]*`^ `*Theta1[``]

(-2/9*kappa[0]^2-2/3*kappa[2])*sigma1[``]*`^ `*Theta1[``]

EL=Iparts(dV(lambda ))

mfr1 > EL,mu:=Iparts(dV(lambda));

EL, mu := (28/9*u[4]^2-2/3*u[6])*sigma1[``]*`^ `*Theta1[``], 2/3*u[5]*Theta1[``]-2/3*u[4]*Theta2[``]-Theta4[``]

EL=dV(lambda)-dH(mu)

mfr1 > evalV(dV(lambda)-dH(mu));

(28/9*u[4]^2-2/3*u[6])*sigma1[``]*`^ `*Theta1[``]

(kappa[0]^2+3*kappa[2])*sigma[1]

mfr1 > lambda:=evalV(( 2*u[6]-28/3*u[4]^2 )* sigma1);

lambda := (2*u[6]-28/3*u[4]^2)*sigma1[``]

mfr1 > EL:=mfEL(lambda);rewrite11(%);

EL := (32*u[6]*u[4]-248/3*u[4]^3-4/3*u[8]+20*u[5]^2)*sigma1[``]*`^ `*Theta1[``]

(-28/9*kappa[0]*kappa[2]-4/9*kappa[0]^3-4/3*kappa[4]-8/3*kappa[1]^2)*sigma1[``]*`^ `*Theta1[``]

EL=Iparts(dV(lambda ))

mfr1 > EL,mu:=Iparts(dV(lambda));

EL, mu := (248/9*u[4]^3-32/3*u[6]*u[4]+4/9*u[8]-20/3*u[5]^2)*sigma1[``]*`^ `*Theta1[``], (20/3*u[5]*u[4]-4/9*u[7])*Theta1[``]+(-2*u[4]^2+4/9*u[6])*Theta2[``]-16/9*u[5]*Theta3[``]-26/9*u[4]*Theta4[``]+...

EL=dV(lambda )-dH(mu )

mfr1 > evalV(dV(lambda)-dH(mu));

(248/9*u[4]^3-32/3*u[6]*u[4]+4/9*u[8]-20/3*u[5]^2)*sigma1[``]*`^ `*Theta1[``]

kappa^2*sigma[1]

mfr1 > lambda:=evalV(u[4]^2* sigma1);

lambda := u[4]^2*sigma1[``]

mfr1 > EL:=mfEL(lambda);rewrite11(%);

EL := (-124*u[4]^3+48*u[6]*u[4]-2*u[8]+30*u[5]^2)*sigma1[``]*`^ `*Theta1[``]

(-2/3*kappa[0]^3-14/3*kappa[0]*kappa[2]-2*kappa[4]-4*kappa[1]^2)*sigma1[``]*`^ `*Theta1[``]

EL=Iparts(dV(lambda ))

mfr1 > EL,mu:=Iparts(dV(lambda));

EL, mu := (-124*u[4]^3+48*u[6]*u[4]-2*u[8]+30*u[5]^2)*sigma1[``]*`^ `*Theta1[``], (-30*u[5]*u[4]+2*u[7])*Theta1[``]+(9*u[4]^2-2*u[6])*Theta2[``]+2*u[5]*Theta3[``]-2*u[4]*Theta4[``]

EL=dV(lambda )-dH(mu )

mfr1 > evalV(dV(lambda)-dH(mu));

(-124*u[4]^3+48*u[6]*u[4]-2*u[8]+30*u[5]^2)*sigma1[``]*`^ `*Theta1[``]

Helmholtz operator

applied to a variational source form

dfr> lambda:=evalV(u[4]*sigma1);rewrite11(%);

lambda := u[4]*sigma1[``]

kappa[0]*sigma1[``]

dfr> EL:=mfEL(lambda);rewrite11(%);

EL := (28/9*u[4]^2-2/3*u[6])*sigma1[``]*`^ `*Theta1[``]

(-2/9*kappa[0]^2-2/3*kappa[2])*sigma1[``]*`^ `*Theta1[``]

mfr1 > h:=mfHelm(EL);

h := `0 `*sigma1[``]*`^ `*Theta1[``]*`^ `*Theta2[``]

Helm(EL)=I(dV(EL))

mfr1 > h,nu:=Iparts(dV(EL));

h, nu := `0 `*sigma1[``]*`^ `*Theta1[``]*`^ `*Theta2[``], 14/9*u[5]*Theta1[``]*`^ `*Theta3[``]+28/9*u[4]*Theta1[``]*`^ `*Theta4[``]-2/3*Theta1[``]*`^ `*Theta6[``]-14/9*u[4]*Theta2[``]*`^ `*Theta3[``]+...

Helm(EL)=dV(EL)-dH(nu )

mfr1 > h:=simplify(evalV(dV(EL)-dH(nu)));

h := 0

applied to a non-variational source form

dfr> tau:=evalV((u[4]^3)*sigma1&wedge Theta1);

tau := u[4]^3*sigma1[``]*`^ `*Theta1[``]

dfr> h:=mfHelm(tau);

h := (390*u[5]*u[4]^2-12*u[7]*u[4]-36*u[6]*u[5])*sigma1[``]*`^ `*Theta1[``]*`^ `*Theta2[``]+(90*u[4]^3-18*u[6]*u[4]-18*u[5]^2)*sigma1[``]*`^ `*Theta1[``]*`^ `*Theta3[``]-12*u[5]*u[4]*sigma1[``]*`^ `*T...

Helm(EL)=I(dV(EL))

dfr> h,nu:=Iparts(dV(tau));

h, nu := (390*u[5]*u[4]^2-12*u[7]*u[4]-36*u[6]*u[5])*sigma1[``]*`^ `*Theta1[``]*`^ `*Theta2[``]+(90*u[4]^3-18*u[6]*u[4]-18*u[5]^2)*sigma1[``]*`^ `*Theta1[``]*`^ `*Theta3[``]-12*u[5]*u[4]*sigma1[``]*`^...

Helm=dV(tau )-dH(nu ):

dfr> h:=evalV(dV(tau)-dH(nu));

h := (390*u[5]*u[4]^2-12*u[7]*u[4]-36*u[6]*u[5])*sigma1[``]*`^ `*Theta1[``]*`^ `*Theta2[``]+(90*u[4]^3-18*u[6]*u[4]-18*u[5]^2)*sigma1[``]*`^ `*Theta1[``]*`^ `*Theta3[``]-12*u[5]*u[4]*sigma1[``]*`^ `*T...

SE(3) action on surfaces in 3D

Input:

variables:

mf3 > coord_frame([x,y],[u],fr3);

`frame name: fr3`

infinitesimal generators:

fr1> vectE3:=map(evalV,[vect(x),vect(y),vect(u[0,0]),-y*vect(x)+x*vect(y), -u[0,0]*vect(y)+y*vect(u[0,0]),-u[0,0]*vect(x)+x*vect(u[0,0])]);

vectE3 := [D_x[``], D_y[``], D_u[[0, 0]][``], -y*D_x[``]+x*D_y[``], -u[0, 0]*D_y[``]+y*D_u[[0, 0]][``], -u[0, 0]*D_x[``]+x*D_u[[0, 0]][``]]

cross-section:

> sectE3:=[x=0,y=0,u[0,0]=0,u[1,0]=0,u[0,1]=0,u[1,1]=0];

sectE3 := [x = 0, y = 0, u[0, 0] = 0, u[1, 0] = 0, u[0, 1] = 0, u[1, 1] = 0]

Invariant  frame:

computing structure equations

fr2> str:=iVB(vectE3,sectE3,7,mfrE3,false):

defining invariant frame:

fr2> iVBframe_init(str[1],7):

Invariant coordinates and bases:

Coordinates

> iJetVariables(mfrE3);

iJetVariables(mfrE3)

dfr> iJetCoframe(mfr1);

[sigma1[``], Theta1[``], Theta2[``], Theta3[``], Theta4[``], Theta5[``], Theta6[``], Theta7[``], Theta8[``], Theta9[``], Theta10[``], Theta11[``]]

mfr1> iJetFrame(mfr1);

[X1[``], V1[``], V2[``], V3[``], V4[``], V5[``], V6[``], V7[``], V8[``], V9[``], V10[``], V11[``]]

Euler-Lagrange operator

sigma1*Lambda*sigma2

mfr1 > lambda:=(evalV(sigma1 &w sigma2));

lambda := sigma1[``]*`^ `*sigma2[``]

mfr1 > EL:=mfEL(lambda);

EL := (-u[0, 2]-u[2, 0])*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]

EL = Iparts(dV(lambda))

mfr1 > EL,mu:=Iparts(dV(lambda));

EL, mu := (-u[0, 2]-u[2, 0])*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``], `0 `*sigma1[``]*`^ `*Theta1[``]

EL = dV(lambda)-dH(mu)

mfr1 > evalV(dV(lambda)-dH(mu));

(-u[0, 2]-u[2, 0])*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]

Helmholtz operator

dfr> h:=mfHelm(EL);

h := `0 `*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]*`^ `*Theta2[``]

Helm(EL) = I(dV(EL))

dfr> h,nu:=Iparts(dV(EL));

h, nu := `0 `*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]*`^ `*Theta2[``], -sigma1[``]*`^ `*Theta1[``]*`^ `*Theta3[``]+sigma2[``]*`^ `*Theta1[``]*`^ `*Theta2[``]

Helm(EL) = dV(EL)-dH(nu)

dfr> h:=evalV(dV(EL)-dH(nu));

h := 0

mean curvature: 1/2 ( kappa[1]+kappa[2] ) sigma[1]*Lambda*sigma[2]

mfr1 > lambda:=(evalV(1/2*(u[2,0]+u[0,2])*sigma1 &w sigma2));

lambda := (1/2*u[2, 0]+1/2*u[0, 2])*sigma1[``]*`^ `*sigma2[``]

mfr1 > EL:=mfEL(lambda);

EL := -u[0, 2]*u[2, 0]*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]

EL = Iparts(dV(lambda))

mfr1 > EL,mu:=Iparts(dV(lambda));

EL, mu := -u[0, 2]*u[2, 0]*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``], -1/2*sigma1[``]*`^ `*Theta3[``]+1/2*sigma2[``]*`^ `*Theta2[``]

EL = dV(lambda)-dH(mu)

mfr1 > evalV(dV(lambda)-dH(mu));

-u[0, 2]*u[2, 0]*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]

Helmholtz operator

dfr> h:=mfHelm(EL);

h := `0 `*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]*`^ `*Theta2[``]

Helm(EL) = I(dV(EL))

dfr> h,nu:=Iparts(dV(EL));

h, nu := `0 `*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]*`^ `*Theta2[``], -u[2, 0]*sigma1[``]*`^ `*Theta1[``]*`^ `*Theta3[``]+u[0, 2]*sigma2[``]*`^ `*Theta1[``]*`^ `*Theta2[``]

Helm(EL) = dV(EL)-dH(nu)

dfr> h:=evalV(dV(EL)-dH(nu));

h := 0

Gaussian curvature: kappa[1]*kappa[2] sigma[1]*Lambda*sigma[2]

mfr1 > lambda:=(evalV((u[2,0]*u[0,2])*sigma1 &w sigma2));

lambda := u[0, 2]*u[2, 0]*sigma1[``]*`^ `*sigma2[``]

mfr1 > EL:=mfEL(lambda);

EL := `0 `*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]

Willmore Lagrangian:   1/2 (kappa[1]+kappa[2])^2 sigma[1]*Lambda*sigma[2]

mfr1 > lambda:=evalV((1/2*(u[2,0]+u[0,2])^2)*sigma1 &w sigma2);

lambda := 1/2*(u[2, 0]+u[0, 2])^2*sigma1[``]*`^ `*sigma2[``]

mfr1 > EL:=mfEL(lambda);

EL := (-5/2*u[2, 0]^3-3/2*u[0, 2]*u[2, 0]^2-3/2*u[2, 0]*u[0, 2]^2+u[4, 0]+u[0, 4]-5/2*u[0, 2]^3+2*u[2, 2])*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]

EL = Iparts(dV(lambda))

mfr1 > EL,mu:=Iparts(dV(lambda));

EL, mu := (-5/2*u[2, 0]^3-3/2*u[0, 2]*u[2, 0]^2-3/2*u[2, 0]*u[0, 2]^2+u[4, 0]+u[0, 4]-5/2*u[0, 2]^3+2*u[2, 2])*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``], (u[2, 1]+u[0, 3])*sigma1[``]*`^ `*Theta1[``]+...

EL = dV(lambda)-dH(mu)

mfr1 > evalV(dV(lambda)-dH(mu));

(-5/2*u[2, 0]^3-3/2*u[0, 2]*u[2, 0]^2-3/2*u[2, 0]*u[0, 2]^2+u[4, 0]+u[0, 4]-5/2*u[0, 2]^3+2*u[2, 2])*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]

SA(3) action on surfaces in 3D

Input:

variables:

mf3 > coord_frame([x,y],[u],fr3);

`frame name: fr3`

infinitesimal generators:

fr1> vectA3:=map(evalV,[y*vect(x),u[0,0]*vect(x),x*vect(x)-y*vect(y),  x*vect(x)-u[0,0]*vect(u[0,0]),x*vect(y),u[0,0]*vect(y),x*vect(u[0,0]), y*vect(u[0,0]),vect(x),vect(y),vect(u[0,0])]);

vectA3 := [y*D_x[``], u[0, 0]*D_x[``], x*D_x[``]-y*D_y[``], x*D_x[``]-u[0, 0]*D_u[[0, 0]][``], x*D_y[``], u[0, 0]*D_y[``], x*D_u[[0, 0]][``], y*D_u[[0, 0]][``], D_x[``], D_y[``], D_u[[0, 0]][``]]

cross-section:

> sectA3:=[x=0,y=0,u[0,0]=0,u[1,0]=0,u[0,1]=0,u[2,0]=1,u[1,1]=0,u[0,2]=1,u[3,0]=1,u[2,1]=0,u[1,2]=0];

sectA3 := [x = 0, y = 0, u[0, 0] = 0, u[1, 0] = 0, u[0, 1] = 0, u[2, 0] = 1, u[1, 1] = 0, u[0, 2] = 1, u[3, 0] = 1, u[2, 1] = 0, u[1, 2] = 0]

Invariant  frame:

computing structure equations

fr2> str:=iVB(vectA3,sectA3,7,mfrA3,false):

defining invariant frame:

fr2> iVBframe_init(str[1],6):

Invariant coordinates and bases:

Coordinates

> iJetVariables(mfrA3);

[u[0, 3], u[4, 0], u[3, 1], u[2, 2], u[1, 3], u[0, 4], u[5, 0], u[4, 1], u[3, 2], u[2, 3], u[1, 4], u[0, 5], u[6, 0], u[5, 1], u[4, 2], u[3, 3], u[2, 4], u[1, 5], u[0, 6], u[7, 0], u[6, 1], u[5, 2], u...

Euler-Lagrange operator

sigma[1]*Lambda*sigma[2]

mfr1 > lambda:=(evalV(sigma1 &w sigma2));

lambda := sigma1[``]*`^ `*sigma2[``]

mfr1 > EL:=mfEL(lambda);

EL := (21/64+21/64*u[0, 3]^2-3/8*u[2, 2]-3/16*u[4, 0]-3/16*u[0, 4])*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]

EL=Iparts(dV(lambda))

mfr1 > EL,mu:=Iparts(dV(lambda));

EL, mu := (21/64+21/64*u[0, 3]^2-3/8*u[2, 2]-3/16*u[4, 0]-3/16*u[0, 4])*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``], -3/16*u[0, 3]*sigma1[``]*`^ `*Theta1[``]-1/4*sigma1[``]*`^ `*Theta3[``]+3/16*sigma2[...

EL=dV(lambda)-dH(mu)

mfr1 > evalV(dV(lambda)-dH(mu));

(21/64+21/64*u[0, 3]^2-3/8*u[2, 2]-3/16*u[4, 0]-3/16*u[0, 4])*sigma1[``]*`^ `*sigma2[``]*`^ `*Theta1[``]

(mean curvature)sigma[1]*Lambda*sigma[2]

mfr1 > lambda:=evalV((21/64+21/64*u[0,3]^2-3/8*u[2,2]-3/16*u[4,0]-3/16*u[0, 4])*sigma1 &w sigma2);

lambda := (21/64+21/64*u[0, 3]^2-3/8*u[2, 2]-3/16*u[4, 0]-3/16*u[0, 4])*sigma1[``]*`^ `*sigma2[``]

mfr1 > EL:=mfEL(lambda);

EL := (-3/256*u[0, 3]^2*u[4, 0]-735/256*u[0, 3]^2*u[0, 4]+9/8*u[3, 1]*u[1, 3]+9/256*u[0, 3]^2+9/64*u[0, 3]*u[4, 1]+45/64*u[5, 0]+27/32*u[3, 2]-165/128*u[0, 3]^2*u[2, 2]+15/32*u[0, 4]^2+9/64*u[1, 4]+9/...EL := (-3/256*u[0, 3]^2*u[4, 0]-735/256*u[0, 3]^2*u[0, 4]+9/8*u[3, 1]*u[1, 3]+9/256*u[0, 3]^2+9/64*u[0, 3]*u[4, 1]+45/64*u[5, 0]+27/32*u[3, 2]-165/128*u[0, 3]^2*u[2, 2]+15/32*u[0, 4]^2+9/64*u[1, 4]+9/...