Point symmetries of y''=0

Run NTMF064.Package.m first!

Clear["Global`*"]

Variables and differential equations in the form R(x,u,∂u,...) = 0

(* Independent variables *)
IndepVar={x};
(* Dependent variables *)
DepVar={y};
(* PDEs, only the functions R(...) without "== 0" *)
PDEs = {D[y[x],x,x]}

Expression to substitute for in the infinitesimal criterion of invariance

subs = {D[y[x],x,x]};
sol=Solve[PDEs==0, subs]

Finding point symmetries by using a more and more specific ansatz

General ansatz

(* Infinitesimals for all variables *)
ξ[x] = Ξ[x,y[x]];
η[y]=H[x,y[x]];
(* Next expression should return zeroes if infinitesimals give a point symmetry of PDEs *)
zero=CheckPointSymmetryOfDE[PDEs,subs, IndepVar, DepVar,ξ,η]

(* Coefficients of the polynomial in y[1] should be zero *)
Column[GetConditionsForPointSymmetries[zero,{y[1]}]]

Second ansatz

ξ[x]=c[1]+c[2] x+c[3] x^2+c[4]y[x]+c[5]x y[x]+c[6]x^2y[x];η[y]=d[1]+d[2] x+d[3]y[x]+d[4]x y[x]+d[5]y[x]^2+d[6]x y[x]^2;
zero=CheckPointSymmetryOfDE[PDEs,subs, IndepVar, DepVar,ξ,η]

Column[GetConditionsForPointSymmetries[zero,{y[1],y[0],x}]]

The last ansatz

nc=8;
ξ[x]=c[1]+c[3] x+c[7] x^2+c[5]y[x]+c[8]x y[x];
η[y]=c[2]+c[6] x+c[4]y[x]+c[7]x y[x]+c[8]y[x]^2;
zero=CheckPointSymmetryOfDE[PDEs,subs, IndepVar, DepVar,ξ,η]

Infinitesimal generators, point transformations and commutator table from the last ansatz

ShowPointSymmetriesAndCommutationRelations[X,f,t,IndepVar,DepVar,ξ,η,c,nc,{}]

Vector fields

xmin=-5.0; xmax=5.0; ymin=-5.0;ymax=5.0;

Translation

{VectorPlot[{1,0},{x,xmin,xmax},{y,ymin,ymax},ImageSize->Medium],VectorPlot[{0,1},{x,xmin,xmax},{y,ymin,ymax},ImageSize->Medium]}

Scaling

{VectorPlot[{x,0},{x,xmin,xmax},{y,ymin,ymax},ImageSize->Medium],VectorPlot[{0,y},{x,xmin,xmax},{y,ymin,ymax},ImageSize->Medium]}

Rotation and Lorentz transformation

{VectorPlot[{-y,x},{x,xmin,xmax},{y,ymin,ymax},ImageSize->Medium],VectorPlot[{-y,-x},{x,xmin,xmax},{y,ymin,ymax},ImageSize->Medium]}

Galileo transformation

{VectorPlot[{0,x},{x,xmin,xmax},{y,ymin,ymax},ImageSize->Medium],VectorPlot[{y,0},{x,xmin,xmax},{y,ymin,ymax},ImageSize->Medium]}

Projective transformation

{VectorPlot[{x^2,x y},{x,xmin,xmax},{y,ymin,ymax},ImageSize->Medium],VectorPlot[{y x,y^2},{x,xmin,xmax},{y,ymin,ymax},ImageSize->Medium]}

All transformations at once

Manipulate[VectorPlot[{Tx+Sx x+Gx y+Px x^2+Py x y,Ty+Gy x+Sy y+Px x y+Py y^2},{x,xmin,xmax},{y,ymin,ymax}],{{Tx,0,"Translation in x"},-10,10,1},{{Sx,0,"Scaling of x"},-10,10,1},{{Gx,0,"Galileo transformation in x"},-10,10,1},{{Px,0,"Projective transformation in x"},-10,10,1},{{Ty,0,"Translation in y"},-10,10,1},{{Sy,0,"Scaling of y"},-10,10,1},{{Gy,0,"Galileo transformation in y"},-10,10,1},{{Py,0,"Projective transformation in y"},-10,10,1}]