Point symmetries of heat equation

Run NTMF064.Package.m first!

Clear["Global`*"]

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

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

Expression to substitute for in the infinitesimal criterion of invariance, when dealing with the heat equation all time derivatives can be replaced by space derivatives

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

Finding point symmetries by using a more and more specific ansatz

General ansatz

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

(* Coefficients of the polynomial in u[...] should be zero *)
Column[GetConditionsForPointSymmetries[zero,Table[u[j],{j,1,5}]]]

Second ansatz

ξ[t]=τ[t];
ξ[x]=1/2D[τ[t],t] x+χ[t];
η[u]=α[x,t]u[x,t]+β[x,t];
zero=CheckPointSymmetryOfDE[PDEs,subs, IndepVar, DepVar,ξ,η]

Column[GetConditionsForPointSymmetries[zero,Table[u[j],{j,0,5}]]]

Third ansatz

ξ[t]=τ[t];
ξ[x]=1/2D[τ[t],t] x+χ[t];
η[u]=(-1/8 D[τ[t],t,t]x^2-1/2D[χ[t],t]x+γ[t])u[x,t]+β[x,t];
zero=CheckPointSymmetryOfDE[PDEs,subs, IndepVar, DepVar,ξ,η]

Column[GetConditionsForPointSymmetries[zero,Flatten[{Table[u[j],{j,0,5}],x}] ]]

The last ansatz

ξ[x]=c[1]+c[4] x+2c[5] t+4c[6] x t;
ξ[t]=c[2]+2c[4] t+4c[6] t^2;
η[u]=(c[3]-c[5] x-2c[6] t-c[6] x^2)u[x,t]+β[x,t];
zero=CheckPointSymmetryOfDE[PDEs,subs, IndepVar, DepVar,ξ,η]

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

ShowPointSymmetriesAndCommutationRelations[X,f,ϵ,IndepVar,DepVar,ξ,η,c,6,{β[x,t]->0}]