(* Content-type: application/mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 7.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       145,          7]
NotebookDataLength[    110897,       3147]
NotebookOptionsPosition[    103667,       2928]
NotebookOutlinePosition[    104445,       2955]
CellTagsIndexPosition[    104402,       2952]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[TextData[StyleBox["In this example we use the package IntroToSymmetry.m \
to work out point and Lie-Backlund groups of the Burgers potential equation, \
\n\nUxx-(1/2)Ux^2-Ut=0.",
 FontSize->14,
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
This next command turns off spurious spelling error warnings.\
\>", "Text"],

Cell[BoxData[
 RowBox[{"Off", "[", 
  RowBox[{"General", "::", "spell"}], "]"}]], "Input"],

Cell["Clear all symbols in the current context.", "Text",
 CellChangeTimes->{{3.4715644485587473`*^9, 3.47156448605101*^9}}],

Cell[BoxData[
 RowBox[{"ClearAll", "[", 
  RowBox[{"Evaluate", "[", 
   RowBox[{
    RowBox[{"Context", "[", "]"}], "<>", "\"\<*\>\""}], "]"}], "]"}]], "Input"],

Cell[TextData[{
 StyleBox["First read in the package which is located in User Home \
Folder/Library/",
  FontWeight->"Plain"],
 StyleBox["Mathematica",
  FontWeight->"Plain",
  FontSlant->"Italic"],
 StyleBox["/Applications/SymmetryAnalysis.",
  FontWeight->"Plain"]
}], "Text",
 CellChangeTimes->{{3.472046215957556*^9, 3.472046255573135*^9}, {
  3.472046289795615*^9, 3.472046308115048*^9}, {3.4720466725423717`*^9, 
  3.472046673357225*^9}},
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["Needs[\"SymmetryAnalysis`IntroToSymmetry`\"]", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[TextData[StyleBox["Enter the input equation as a string. Don't include \
the == 0 at the end.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
  "inputequation", "=", "\n", 
   "\"\<D[U[x,t],t]+(1/2)*D[U[x,t],x]^2-D[U[x,t],x,x]\>\""}], ";"}]], "Input"],

Cell[TextData[StyleBox["The function U[x,t] is a solution of the equation and \
this constraint must be applied in the form of a rule to the invariance \
condition. Be careful to check signs.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"rulesarray", "=", "\[IndentingNewLine]", 
   RowBox[{
   "{", "\"\<D[U[x,t],x,x]\[Rule]D[U[x,t],t]+(1/2)*D[U[x,t],x]^2\>\"", 
    "}"}]}], ";"}]], "Input"],

Cell[TextData[StyleBox["Enter the list of independent variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"independentvariables", "=", 
   RowBox[{"{", 
    RowBox[{"\"\<x\>\"", ",", "\"\<t\>\""}], "}"}]}], ";"}]], "Input"],

Cell[TextData[StyleBox["Enter the list of dependent variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"dependentvariables", "=", 
   RowBox[{"{", "\"\<U\>\"", "}"}]}], ";"}]], "Input"],

Cell[TextData[StyleBox["Enter the list of function and/or constant names that \
need to be preserved when the equation is expressed in terms of generic \
variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"frozennames", "=", 
   RowBox[{"{", "}"}]}], ";"}]], "Input"],

Cell[TextData[StyleBox["Enter the maximum derivative order of the input \
equation(s).",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"porder", "=", "2"}], ";"}]], "Input"],

Cell[TextData[StyleBox["The maximum derivative order that the infinitesimals \
are assumed to depend on is specified by the input parameter rorder. This \
parameter is only nonzero when the user is looking for Lie contact groups or \
Lie-Backlund groups. For the usual case where one is searching for point \
groups set rorder=0.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"rorder", "=", "0"}], ";"}]], "Input"],

Cell[TextData[StyleBox["When searching for Lie-Backlund groups (rorder=1 or \
greater) one can, without loss of generality, leave the independent variables \
untransformed. The corresponding infinitesimals (the xse's) are set to zero \
by setting xseon=0. If one is searching for point groups then set xseon=1. \
The choice xseon=1 is also an option when looking for Lie-Backlund groups and \
this can be useful when looking for contact symmetries.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"xseon", "=", "1"}], ";"}]], "Input"],

Cell[TextData[StyleBox["When searching for Lie-Backlund groups it is \
necessary to differentiate the input equation to produce derivatives of order \
p+r and append these higher order differential consequences to the set of \
rules applied to the invariance condition. This process is carried out \
automatically when internalrules=1. For point groups the equation or equation \
system is the only rule or set of rules needed and one sets internalrules=0.",
 
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"internalrules", "=", "0"}], ";"}]], "Input"],

Cell[TextData[StyleBox["Now work out the determining equations of the Lie \
point group that leaves the equation invariant. The output is available as a \
table of strings called zdeterminingequations.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"FindDeterminingEquations", "[", "\[IndentingNewLine]", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "frozennames", ",",
     "porder", ",", "rorder", ",", "xseon", ",", "\[IndentingNewLine]", 
    "inputequation", ",", "rulesarray", ",", "internalrules"}], "]"}], 
  "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(94449608\\), the time used = \\!\\(46.61892`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 94449608, 46.61892],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483898107361*^9, 3.4715753407192297`*^9, 
  3.471575403656083*^9, 3.472049542729637*^9, 3.483804094515462*^9}],

Cell[BoxData["\<\"The function FindDeterminingEquations is nearly complete. \
The invariance condition has been created with all rules applied. The final \
step in the generation of the determining equations is to sum together terms \
in the table of invariance condition terms (called infinitesimaltable) that \
are multiplied by the same combination of products of free y derivatives. The \
result is the table infinitesimaltablesums corresponding to matching \
y-derivative expressions. If the invariance condition is long as it often is \
this process could take a long time since it requires sorting through the \
table infinitesimaltable once for each possible combination of y derivative \
products. This is the rate limiting step in the function \
FindDeterminingEquations.Virtually all other steps are quite fast including \
the generation of the extended derivatives of the infinitesimals.\"\>"], \
"Print",
 CellChangeTimes->{3.469483898107361*^9, 3.4715753407192297`*^9, 
  3.471575403656083*^9, 3.472049542729637*^9, 3.48380409458694*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(9\\), the \
byte count of zdeterminingequations = \\!\\(1304\\), the memory in use = \
\\!\\(93376760\\), the time used = \\!\\(46.710356000000004`\\)\"\>",
  StringForm[
  "The determining equations have been expressed in terms of z-variables, the \
length of zdeterminingequations = ``, the byte count of zdeterminingequations \
= ``, the memory in use = ``, the time used = ``", 9, 1304, 93376760, 
   46.710356000000004`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483898107361*^9, 3.4715753407192297`*^9, 
  3.471575403656083*^9, 3.472049542729637*^9, 3.483804094590941*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(93375968\\), the time used = \\!\\(46.710675`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 93375968, 46.710675],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483898107361*^9, 3.4715753407192297`*^9, 
  3.471575403656083*^9, 3.472049542729637*^9, 3.483804094593899*^9}],

Cell[BoxData["\<\"FindDeterminingEquations has finished executing. You can \
look at the output in the table zdeterminingequations. Each entry in this \
table is a determining equation in string format expressed in terms of \
z-variables. Rules for converting between z-variables and conventional \
variables are contained in the table ztableofrules. To view the determining \
equations in terms of conventional variables use the command \
ToExpression[zdeterminingequations]/.ztableofrules. There are two other items \
the user may wish to look at; the equation converted to generic \
(x1,x2,...,y1,y2,...) variables is designated equationgenericvariables and \
the various derivatives of the equation that appear in the invariance \
condition can be viewed in the table invarconditiontable. Rules for \
converting between z-variables and generic variables are contained in the \
table ztableofrulesxy.\"\>"], "Print",
 CellChangeTimes->{3.469483898107361*^9, 3.4715753407192297`*^9, 
  3.471575403656083*^9, 3.472049542729637*^9, 3.483804094597007*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.09263600000000594`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469483898303377*^9, 3.471575340891532*^9, 
  3.4715754037187557`*^9, 3.472049542804041*^9, 3.483804094600697*^9}]
}, Open  ]],

Cell["\<\
Let's look at the partial derivatives of Burgers equation thatappear in the \
invariance condition.\
\>", "Text"],

Cell[CellGroupData[{

Cell["invarconditiontable", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", "0", ",", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}], ",", "1", ",", 
   RowBox[{"-", "1"}], ",", "0", ",", "0"}], "}"}]], "Output",
 CellChangeTimes->{3.469483898380476*^9, 3.471575340965267*^9, 
  3.4715754037581*^9, 3.472049542847394*^9, 3.483804094664785*^9}]
}, Open  ]],

Cell["Here are the determining equations in terms of z-variables.", "Text"],

Cell["zdeterminingequations;", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell["Length[zdeterminingequations]", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData["9"], "Output",
 CellChangeTimes->{3.469483898472527*^9, 3.471575341064233*^9, 
  3.471575403838305*^9, 3.472049542925221*^9, 3.48380409473179*^9}]
}, Open  ]],

Cell["\<\
Here is the correspondence between z-variables and conventional variables.\
\>", "Text"],

Cell[CellGroupData[{

Cell["ztableofrules", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"z1", "\[Rule]", "x"}], ",", 
   RowBox[{"z2", "\[Rule]", "t"}], ",", 
   RowBox[{"z3", "\[Rule]", 
    RowBox[{"U", "[", 
     RowBox[{"x", ",", "t"}], "]"}]}]}], "}"}]], "Output",
 CellChangeTimes->{3.4694838985403013`*^9, 3.471575341130713*^9, 
  3.471575403894166*^9, 3.472049542984666*^9, 3.4838040947885303`*^9}]
}, Open  ]],

Cell["\<\
Now solve the determining equations in terms of multivariable polynomials. \
The Mathematica function Solve uses Gaussian elimination to solve a large \
number of linear equations for the polynomial coefficients. The time roughly \
follows

time/timeref=((number of equations)/(number of equationsref))^n

where the exponent is between 2.4 and 2.7. The Mathematica function Timing \
outputs the time required for the SolveDeterminingEquations function to \
execute.\
\>", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"SolveDeterminingEquations", "[", "\[IndentingNewLine]", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "rorder", ",", 
    "xseon", ",", "zdeterminingequations", ",", 
    RowBox[{"polyorder", "=", "2"}]}], "]"}], "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox["\<\"The variable powertablelength is the number of terms \
required for each multivariate polynomial used for the infinitesimals. This \
number is determined by the choice of polynomial order and the number of \
zvariables. The time needed to solve the determining equations increases as \
powertable increases. powertablelength = \\!\\(10\\)\"\>",
  StringForm[
  "The variable powertablelength is the number of terms required for each \
multivariate polynomial used for the infinitesimals. This number is \
determined by the choice of polynomial order and the number of zvariables. \
The time needed to solve the determining equations increases as powertable \
increases. powertablelength = ``", 10],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.483804094842845*^9}],

Cell[BoxData["\<\"The polynomial expansions have been substituted into the \
determining equations. It is now time to collect the coefficients of various \
powers of zvariables into a table called table of coefficientsall. This step \
uses the function CoefficientList and is a fairly time consuming procedure.\"\
\>"], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.483804094888756*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(50883944\\), The time = \\!\
\\(46.77335`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 50883944, 46.77335],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.483804094891704*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of unknown polynomial coefficients = \
\\!\\(30\\)\"\>",
  StringForm["The number of unknown polynomial coefficients = ``", 30],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.4838040948942432`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(35\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 35],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.4838040948968163`*^9}],

Cell[BoxData["\<\"Now it we are ready to use the function Solve to find the \
nonzero polynomial coefficients corresponding to the symmetries of the input \
equation(s). This can take a while.\"\>"], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.483804094899293*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(47666824\\), The time = \\!\
\\(46.782398`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 47666824, 46.782398],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.48380409490197*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.483804094904498*^9}],

Cell[BoxData["\<\"The function SolveDeterminingEquations is finished \
executing.\"\>"], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.483804094906876*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(47244928\\), The time = \\!\
\\(46.785847000000004`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 47244928, 46.785847000000004`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.48380409490933*^9}],

Cell[BoxData["\<\"You can look at the output in the tables xsefunctions and \
etafunctions. Each entry in these tables is an infinitesimal function in \
string format expressed in terms of z-variables and the group parameters. The \
output can also be viewed with the group parameters stripped away by looking \
at the table infinitesimalgroups. In either case you may wish to convert the \
z-variables to conventional variables using the table ztableofrules. \
\\n\\nKeep in mind that this function only finds solutions of the determining \
equations that are of polynomial form. The determining equations may admit \
solutions that involve transcendental functions and/or integrals. Note that \
arbitrary functions may appear in the infinitesimals and that these can be \
detected by running the package function SolveDeterminingEquations for \
several polynomial orders. If terms of ever increasing order appear, then an \
arbitrary function is indicated.\"\>"], "Print",
 CellChangeTimes->{3.469483898607182*^9, 3.471575341197639*^9, 
  3.471575403946519*^9, 3.47204954303918*^9, 3.483804094911737*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.07075400000000798`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469483898611834*^9, 3.47157534126193*^9, 
  3.471575403968459*^9, 3.472049543057373*^9, 3.4838040949152203`*^9}]
}, Open  ]],

Cell["\<\
Here are the infinitesimal transformation functions for the independent \
variables.\
\>", "Text"],

Cell[CellGroupData[{

Cell["xsefunctions", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"xse1[z1_, z2_, z3_]=a10 + (a23*z1)/2 + b11*z2 + b13*z1*z2\"\>",
    ",", "\<\"xse2[z1_, z2_, z3_]=a20 + a23*z2 + b13*z2^2\"\>"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.4694838986663933`*^9, 3.471575341303075*^9, 
  3.471575404008848*^9, 3.472049543097087*^9, 3.483804094955886*^9}]
}, Open  ]],

Cell["and for the dependent variables.", "Text"],

Cell[CellGroupData[{

Cell["etafunctions", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", "\<\"eta1[z1_, z2_, z3_]=b10 + b11*z1 + (b13*z1^2)/2 + b13*z2\"\
\>", "}"}]], "Output",
 CellChangeTimes->{3.469483898716757*^9, 3.4715753414324913`*^9, 
  3.471575404064131*^9, 3.472049543151743*^9, 3.48380409500235*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[StyleBox["Usually Burger's equation is expressed in terms of x, \
t and U.Express the xse functions in terms of these variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"ToExpression", "[", "xsefunctions", "]"}], "/.", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"z1", "\[Rule]", "x"}], ",", 
    RowBox[{"z2", "\[Rule]", "t"}], ",", 
    RowBox[{"z3", "\[Rule]", "U"}]}], "}"}]}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"a10", "+", 
    RowBox[{"b11", " ", "t"}], "+", 
    FractionBox[
     RowBox[{"a23", " ", "x"}], "2"], "+", 
    RowBox[{"b13", " ", "t", " ", "x"}]}], ",", 
   RowBox[{"a20", "+", 
    RowBox[{"a23", " ", "t"}], "+", 
    RowBox[{"b13", " ", 
     SuperscriptBox["t", "2"]}]}]}], "}"}]], "Output",
 CellChangeTimes->{3.469483898841844*^9, 3.4715753414913597`*^9, 
  3.471575404108851*^9, 3.4720495431979103`*^9, 3.483804095056588*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[StyleBox["Express the eta function in terms of these variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"ToExpression", "[", "etafunctions", "]"}], "/.", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"z1", "\[Rule]", "x"}], ",", 
    RowBox[{"z2", "\[Rule]", "t"}], ",", 
    RowBox[{"z3", "\[Rule]", "U"}]}], "}"}]}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"b10", "+", 
   RowBox[{"b13", " ", "t"}], "+", 
   RowBox[{"b11", " ", "x"}], "+", 
   FractionBox[
    RowBox[{"b13", " ", 
     SuperscriptBox["x", "2"]}], "2"]}], "}"}]], "Output",
 CellChangeTimes->{3.4694838989006567`*^9, 3.4715753415415583`*^9, 
  3.471575404164062*^9, 3.4720495432522087`*^9, 3.483804095100937*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"infinitesimalgroups1", "=", 
   RowBox[{"infinitesimalgroups", "/.", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"z1", "\[Rule]", "x"}], ",", 
      RowBox[{"z2", "\[Rule]", "t"}], ",", 
      RowBox[{"z3", "\[Rule]", "U"}]}], "}"}]}]}], ";"}]], "Input"],

Cell["\<\
Check the groups.xse's are on the left,eta's are on the right.\
\>", "Text"],

Cell[BoxData[
 RowBox[{"Column", "[", "infinitesimalgroups1", "]"}]], "Input"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"1", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "1"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         FractionBox["x", "2"], ",", "t"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "1", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"t", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "x", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{"t", " ", "x"}], ",", 
         SuperscriptBox["t", "2"]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"t", "+", 
         FractionBox[
          SuperscriptBox["x", "2"], "2"]}], "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.4694838989756937`*^9, 3.471575341634307*^9, 
  3.4715754042388906`*^9, 3.472049543327455*^9, 3.4838040951835833`*^9}],

Cell["Check the infinitesimals in the determining equations.", "Text",
 CellChangeTimes->{{3.471145395559845*^9, 3.471145429404257*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Simplify", "[", 
  RowBox[{"ToExpression", "[", "zdeterminingequations", "]"}], "]"}]], "Input",\

 CellChangeTimes->{{3.471145481019026*^9, 3.4711455173104143`*^9}, 
   3.471146122753789*^9, {3.47154140257237*^9, 3.471541418863482*^9}, {
   3.4715667761993*^9, 3.4715667786858253`*^9}, 3.471567789726531*^9, 
   3.471568099275279*^9, 3.4715715735656223`*^9, 3.471572095183077*^9, {
   3.4715726099623337`*^9, 3.471572610792289*^9}, {3.4715729781802893`*^9, 
   3.471572978778569*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", 
   ",", "True", ",", "True", ",", "True"}], "}"}]], "Output",
 CellChangeTimes->{3.471575341670156*^9, 3.471575404294526*^9, 
  3.4720495433858223`*^9, 3.4838040952402353`*^9}]
}, Open  ]],

Cell[TextData[StyleBox["This is the six-parameter point group of the Burger's \
potential equation. Note that the package does not capture the infinite \
parameter group involving an arbitrary solution of the heat equation. This is \
discussed extensively in Chapter 14 and Chapter 16. Let's construct the \
commutator table.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"MakeCommutatorTable", "[", "\[IndentingNewLine]", 
  RowBox[{
  "independentvariables", ",", "dependentvariables", ",", 
   "infinitesimalgroups1"}], "]"}]], "Input"],

Cell[BoxData["\<\"MakeCommutatorTable has finished executing. You can look at \
the output in the table commutatortable. To present the output in the most \
readable form you may want view it as a matrix using \
MatrixForm[commutatortable]. Occasionally the entries in the commutatortable \
will have terms that cancel. To get rid of these terms use the function \
Simplify before viewing the table.\"\>"], "Print",
 CellChangeTimes->{3.469483899034384*^9, 3.4715753417102757`*^9, 
  3.471575404330164*^9, 3.4720495434360323`*^9, 3.48380409536726*^9}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"MatrixForm", "[", "commutatortable", "]"}]], "Input"],

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             FractionBox["1", "2"], ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "1", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"t", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "x", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "1"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"1", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"x", ",", 
             RowBox[{"2", " ", "t"}]}], "}"}]},
          {
           RowBox[{"{", "1", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", 
              FractionBox["1", "2"]}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", 
             RowBox[{"-", "1"}]}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             FractionBox["t", "2"], ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            FractionBox["x", "2"], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"t", " ", "x"}], ",", 
             SuperscriptBox["t", "2"]}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{"t", "+", 
             FractionBox[
              SuperscriptBox["x", "2"], "2"]}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{"-", "1"}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", "1"}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", 
              FractionBox["t", "2"]}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{"-", 
             FractionBox["x", "2"]}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", "t"}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{"-", "x"}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", "x"}], ",", 
             RowBox[{
              RowBox[{"-", "2"}], " ", "t"}]}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{"-", "1"}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{
              RowBox[{"-", "t"}], " ", "x"}], ",", 
             RowBox[{"-", 
              SuperscriptBox["t", "2"]}]}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", "t"}], "-", 
             FractionBox[
              SuperscriptBox["x", "2"], "2"]}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]}
    },
    GridBoxAlignment->{
     "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, 
      "RowsIndexed" -> {}},
    GridBoxSpacings->{"Columns" -> {
        Offset[0.27999999999999997`], {
         Offset[0.7]}, 
        Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
        Offset[0.2], {
         Offset[0.4]}, 
        Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
  Function[BoxForm`e$, 
   MatrixForm[BoxForm`e$]]]], "Output",
 CellChangeTimes->{3.469483899091922*^9, 3.471575341793432*^9, 
  3.471575404386099*^9, 3.472049543576474*^9, 3.483804095430408*^9}]
}, Open  ]],

Cell["\<\
Note that the package does not capture the infinite parameter group involving \
an arbitrary solution of the heat equation. This is discussed extensively in \
Chapter 14 and Chapter 16. Let's see if we can find this group using a \
slightly different approach to the invariance condition. \
\>", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"rorder", "=", "0"}]], "Input"],

Cell[BoxData["0"], "Output",
 CellChangeTimes->{3.469483899149749*^9, 3.4715753418341837`*^9, 
  3.4715754045070972`*^9, 3.47204954361898*^9, 3.48380409547443*^9}]
}, Open  ]],

Cell["Turn off the transformation of independent variables.", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"xseon", "=", "0"}]], "Input"],

Cell[BoxData["0"], "Output",
 CellChangeTimes->{3.469483899196035*^9, 3.471575341887932*^9, 
  3.471575404547097*^9, 3.4720495436648693`*^9, 3.4838040955199547`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"FindDeterminingEquations", "[", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "frozennames", ",",
     "porder", ",", "rorder", ",", "xseon", ",", "inputequation", ",", 
    "rulesarray", ",", "internalrules"}], "]"}], "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(47246968\\), the time used = \\!\\(46.817846`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 47246968, 46.817846],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694838992505083`*^9, 3.471575341938693*^9, 
  3.471575404597398*^9, 3.4720495437207003`*^9, 3.4838040955751743`*^9}],

Cell[BoxData["\<\"The function FindDeterminingEquations is nearly complete. \
The invariance condition has been created with all rules applied. The final \
step in the generation of the determining equations is to sum together terms \
in the table of invariance condition terms (called infinitesimaltable) that \
are multiplied by the same combination of products of free y derivatives. The \
result is the table infinitesimaltablesums corresponding to matching \
y-derivative expressions. If the invariance condition is long as it often is \
this process could take a long time since it requires sorting through the \
table infinitesimaltable once for each possible combination of y derivative \
products. This is the rate limiting step in the function \
FindDeterminingEquations.Virtually all other steps are quite fast including \
the generation of the extended derivatives of the infinitesimals.\"\>"], \
"Print",
 CellChangeTimes->{3.4694838992505083`*^9, 3.471575341938693*^9, 
  3.471575404597398*^9, 3.4720495437207003`*^9, 3.4838040955779552`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(3\\), the \
byte count of zdeterminingequations = \\!\\(416\\), the memory in use = \
\\!\\(47200152\\), the time used = \\!\\(46.86226200000001`\\)\"\>",
  StringForm[
  "The determining equations have been expressed in terms of z-variables, the \
length of zdeterminingequations = ``, the byte count of zdeterminingequations \
= ``, the memory in use = ``, the time used = ``", 3, 416, 47200152, 
   46.86226200000001],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694838992505083`*^9, 3.471575341938693*^9, 
  3.471575404597398*^9, 3.4720495437207003`*^9, 3.483804095581376*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(47201248\\), the time used = \\!\\(46.862579000000004`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 47201248, 46.862579000000004`],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694838992505083`*^9, 3.471575341938693*^9, 
  3.471575404597398*^9, 3.4720495437207003`*^9, 3.483804095583703*^9}],

Cell[BoxData["\<\"FindDeterminingEquations has finished executing. You can \
look at the output in the table zdeterminingequations. Each entry in this \
table is a determining equation in string format expressed in terms of \
z-variables. Rules for converting between z-variables and conventional \
variables are contained in the table ztableofrules. To view the determining \
equations in terms of conventional variables use the command \
ToExpression[zdeterminingequations]/.ztableofrules. There are two other items \
the user may wish to look at; the equation converted to generic \
(x1,x2,...,y1,y2,...) variables is designated equationgenericvariables and \
the various derivatives of the equation that appear in the invariance \
condition can be viewed in the table invarconditiontable. Rules for \
converting between z-variables and generic variables are contained in the \
table ztableofrulesxy.\"\>"], "Print",
 CellChangeTimes->{3.4694838992505083`*^9, 3.471575341938693*^9, 
  3.471575404597398*^9, 3.4720495437207003`*^9, 3.483804095585826*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.045570999999995365`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.4694838992584963`*^9, 3.471575341945361*^9, 
  3.47157540460532*^9, 3.472049543729052*^9, 3.4838040955889378`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"zdeterminingequations1", "=", 
  RowBox[{
   RowBox[{"ToExpression", "[", "zdeterminingequations", "]"}], "/.", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"z1", "\[Rule]", "x"}], ",", 
     RowBox[{"z2", "\[Rule]", "t"}], ",", 
     RowBox[{"z3", "\[Rule]", "U"}]}], "}"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{
      FractionBox["1", "2"], " ", 
      RowBox[{
       SuperscriptBox["eta1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"x", ",", "t", ",", "U"}], "]"}]}], "-", 
     RowBox[{
      SuperscriptBox["eta1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t", ",", "U"}], "]"}]}], "\[Equal]", "0"}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{
      SuperscriptBox["eta1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t", ",", "U"}], "]"}], "-", 
     RowBox[{"2", " ", 
      RowBox[{
       SuperscriptBox["eta1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"x", ",", "t", ",", "U"}], "]"}]}]}], "\[Equal]", "0"}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{
      SuperscriptBox["eta1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t", ",", "U"}], "]"}], "-", 
     RowBox[{
      SuperscriptBox["eta1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"2", ",", "0", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t", ",", "U"}], "]"}]}], "\[Equal]", "0"}]}], 
  "}"}]], "Output",
 CellChangeTimes->{3.469483899303424*^9, 3.471575341984392*^9, 
  3.4715754046437683`*^9, 3.472049543766481*^9, 3.483804095641697*^9}]
}, Open  ]],

Cell["\<\
Note that we are now just looking for a single unknown eta1 and it is a point \
group. This is an example where we can turn off the transformation of \
independent variables and still look 
  for a point group rather than a Lie Backlund Group. The frst determining \
equation is
   
  (1/2)eta1u-eta1uu==0.
  
  This is clearly satisfied by a function of the form 
  
  eta1=f[x,t]Exp[u/2]. 
  
  The third equation is also satisfied by the same function. Let's check\
\>", "Text"],

Cell[BoxData[
 RowBox[{
  RowBox[{"eta1", "[", 
   RowBox[{"x_", ",", "t_", ",", "U_"}], "]"}], ":=", 
  RowBox[{
   RowBox[{"f", "[", 
    RowBox[{"x", ",", "t"}], "]"}], "*", 
   RowBox[{"Exp", "[", 
    RowBox[{"U", "/", "2"}], "]"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{"Column", "[", 
  RowBox[{"Simplify", "[", "zdeterminingequations1", "]"}], "]"}]], "Input"],

Cell[BoxData[
 TagBox[GridBox[{
    {"True"},
    {"True"},
    {
     RowBox[{
      RowBox[{
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{"U", "/", "2"}]], " ", 
       RowBox[{"(", 
        RowBox[{
         RowBox[{
          SuperscriptBox["f", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "[", 
          RowBox[{"x", ",", "t"}], "]"}], "-", 
         RowBox[{
          SuperscriptBox["f", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "[", 
          RowBox[{"x", ",", "t"}], "]"}]}], ")"}]}], "\[Equal]", "0"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469483899376739*^9, 3.471575342069235*^9, 
  3.4715754047233057`*^9, 3.47204954384503*^9, 3.483804095719119*^9}],

Cell[TextData[StyleBox["The invariance condition is satisfied if f[x,t] is a \
solution of the heat equation.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[TextData[StyleBox["By summing the Lie series, this infinitesimal group \
generates a solution of the Burgers potential equation in the form of the \
corresponding finite transformation. Let's check this solution in the \
equation. The solution is",
 FontWeight->"Plain",
 FontVariations->{"CompatibilityType"->0}]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"Utilda", "[", 
   RowBox[{"x_", ",", "t_"}], "]"}], ":=", 
  RowBox[{
   RowBox[{"U", "[", 
    RowBox[{"x", ",", "t"}], "]"}], "-", 
   RowBox[{"2", "*", 
    RowBox[{"Log", "[", 
     RowBox[{"1", "-", 
      RowBox[{
       RowBox[{"(", 
        RowBox[{"s", "/", "2"}], ")"}], "*", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}], "*", 
       RowBox[{"Exp", "[", 
        RowBox[{
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}], "/", "2"}], "]"}]}]}], 
     "]"}]}]}]}]], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"D", "[", 
   RowBox[{
    RowBox[{"Utilda", "[", 
     RowBox[{"x", ",", "t"}], "]"}], ",", "t"}], "]"}], "+", 
  RowBox[{
   RowBox[{"(", 
    RowBox[{"1", "/", "2"}], ")"}], "*", 
   RowBox[{
    RowBox[{"D", "[", 
     RowBox[{
      RowBox[{"Utilda", "[", 
       RowBox[{"x", ",", "t"}], "]"}], ",", "x"}], "]"}], "^", "2"}]}], "-", 
  RowBox[{"D", "[", 
   RowBox[{
    RowBox[{"Utilda", "[", 
     RowBox[{"x", ",", "t"}], "]"}], ",", "x", ",", "x"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   SuperscriptBox["U", 
    TagBox[
     RowBox[{"(", 
      RowBox[{"0", ",", "1"}], ")"}],
     Derivative],
    MultilineFunction->None], "[", 
   RowBox[{"x", ",", "t"}], "]"}], "-", 
  FractionBox[
   RowBox[{"2", " ", 
    RowBox[{"(", 
     RowBox[{
      RowBox[{
       RowBox[{"-", 
        FractionBox["1", "2"]}], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{
        SuperscriptBox["f", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x", ",", "t"}], "]"}]}], "-", 
      RowBox[{
       FractionBox["1", "4"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["U", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}]}], 
   RowBox[{"1", "-", 
    RowBox[{
     FractionBox["1", "2"], " ", 
     SuperscriptBox["\[ExponentialE]", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       RowBox[{"U", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
     RowBox[{"f", "[", 
      RowBox[{"x", ",", "t"}], "]"}]}]}]], "-", 
  FractionBox[
   RowBox[{"2", " ", 
    SuperscriptBox[
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         FractionBox["1", "2"]}], " ", 
        SuperscriptBox["\[ExponentialE]", 
         RowBox[{
          FractionBox["1", "2"], " ", 
          RowBox[{"U", "[", 
           RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
        RowBox[{
         SuperscriptBox["f", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x", ",", "t"}], "]"}]}], "-", 
       RowBox[{
        FractionBox["1", "4"], " ", 
        SuperscriptBox["\[ExponentialE]", 
         RowBox[{
          FractionBox["1", "2"], " ", 
          RowBox[{"U", "[", 
           RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
        RowBox[{"f", "[", 
         RowBox[{"x", ",", "t"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["U", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}], "2"]}], 
   SuperscriptBox[
    RowBox[{"(", 
     RowBox[{"1", "-", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}], "2"]], "+", 
  RowBox[{
   FractionBox["1", "2"], " ", 
   SuperscriptBox[
    RowBox[{"(", 
     RowBox[{
      RowBox[{
       SuperscriptBox["U", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"x", ",", "t"}], "]"}], "-", 
      FractionBox[
       RowBox[{"2", " ", 
        RowBox[{"(", 
         RowBox[{
          RowBox[{
           RowBox[{"-", 
            FractionBox["1", "2"]}], " ", 
           SuperscriptBox["\[ExponentialE]", 
            RowBox[{
             FractionBox["1", "2"], " ", 
             RowBox[{"U", "[", 
              RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
           RowBox[{
            SuperscriptBox["f", 
             TagBox[
              RowBox[{"(", 
               RowBox[{"1", ",", "0"}], ")"}],
              Derivative],
             MultilineFunction->None], "[", 
            RowBox[{"x", ",", "t"}], "]"}]}], "-", 
          RowBox[{
           FractionBox["1", "4"], " ", 
           SuperscriptBox["\[ExponentialE]", 
            RowBox[{
             FractionBox["1", "2"], " ", 
             RowBox[{"U", "[", 
              RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
           RowBox[{"f", "[", 
            RowBox[{"x", ",", "t"}], "]"}], " ", 
           RowBox[{
            SuperscriptBox["U", 
             TagBox[
              RowBox[{"(", 
               RowBox[{"1", ",", "0"}], ")"}],
              Derivative],
             MultilineFunction->None], "[", 
            RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}]}], 
       RowBox[{"1", "-", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         SuperscriptBox["\[ExponentialE]", 
          RowBox[{
           FractionBox["1", "2"], " ", 
           RowBox[{"U", "[", 
            RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
         RowBox[{"f", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]}]]}], ")"}], "2"]}], "-", 
  RowBox[{
   SuperscriptBox["U", 
    TagBox[
     RowBox[{"(", 
      RowBox[{"2", ",", "0"}], ")"}],
     Derivative],
    MultilineFunction->None], "[", 
   RowBox[{"x", ",", "t"}], "]"}], "+", 
  RowBox[{
   FractionBox["1", 
    RowBox[{"1", "-", 
     RowBox[{
      FractionBox["1", "2"], " ", 
      SuperscriptBox["\[ExponentialE]", 
       RowBox[{
        FractionBox["1", "2"], " ", 
        RowBox[{"U", "[", 
         RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
      RowBox[{"f", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]}]], 
   RowBox[{"2", " ", 
    RowBox[{"(", 
     RowBox[{
      RowBox[{
       RowBox[{"-", 
        FractionBox["1", "2"]}], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{
        SuperscriptBox["f", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x", ",", "t"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["U", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x", ",", "t"}], "]"}]}], "-", 
      RowBox[{
       FractionBox["1", "8"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}], " ", 
       SuperscriptBox[
        RowBox[{
         SuperscriptBox["U", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"x", ",", "t"}], "]"}], "2"]}], "-", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{
        SuperscriptBox["f", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"2", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x", ",", "t"}], "]"}]}], "-", 
      RowBox[{
       FractionBox["1", "4"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}], " ", 
       RowBox[{
        SuperscriptBox["U", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"2", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}]}]}]}]], "Output",
 CellChangeTimes->{3.469483899446509*^9, 3.471575342135455*^9, 
  3.471575404813086*^9, 3.4720495439338083`*^9, 3.483804095804326*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ExpandAll", "[", "%", "]"}]], "Input"],

Cell[BoxData[
 RowBox[{
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{
      FractionBox["1", "2"], " ", 
      RowBox[{"U", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
    RowBox[{
     SuperscriptBox["f", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}]}], 
   RowBox[{"1", "-", 
    RowBox[{
     FractionBox["1", "2"], " ", 
     SuperscriptBox["\[ExponentialE]", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       RowBox[{"U", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
     RowBox[{"f", "[", 
      RowBox[{"x", ",", "t"}], "]"}]}]}]], "+", 
  RowBox[{
   SuperscriptBox["U", 
    TagBox[
     RowBox[{"(", 
      RowBox[{"0", ",", "1"}], ")"}],
     Derivative],
    MultilineFunction->None], "[", 
   RowBox[{"x", ",", "t"}], "]"}], "+", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{
      FractionBox["1", "2"], " ", 
      RowBox[{"U", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
    RowBox[{"f", "[", 
     RowBox[{"x", ",", "t"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["U", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}]}], 
   RowBox[{"2", " ", 
    RowBox[{"(", 
     RowBox[{"1", "-", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}]}]], "+", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{"U", "[", 
      RowBox[{"x", ",", "t"}], "]"}]], " ", 
    SuperscriptBox["s", "2"], " ", 
    SuperscriptBox[
     RowBox[{
      SuperscriptBox["f", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t"}], "]"}], "2"]}], 
   RowBox[{"2", " ", 
    SuperscriptBox[
     RowBox[{"(", 
      RowBox[{"1", "-", 
       RowBox[{
        FractionBox["1", "2"], " ", 
        SuperscriptBox["\[ExponentialE]", 
         RowBox[{
          FractionBox["1", "2"], " ", 
          RowBox[{"U", "[", 
           RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
        RowBox[{"f", "[", 
         RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}], "2"]}]], "-", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{"U", "[", 
      RowBox[{"x", ",", "t"}], "]"}]], " ", 
    SuperscriptBox["s", "2"], " ", 
    SuperscriptBox[
     RowBox[{
      SuperscriptBox["f", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t"}], "]"}], "2"]}], 
   RowBox[{"2", " ", 
    RowBox[{"(", 
     RowBox[{"1", "-", 
      RowBox[{
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}], "+", 
      RowBox[{
       FractionBox["1", "4"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{"U", "[", 
         RowBox[{"x", ",", "t"}], "]"}]], " ", 
       SuperscriptBox["s", "2"], " ", 
       SuperscriptBox[
        RowBox[{"f", "[", 
         RowBox[{"x", ",", "t"}], "]"}], "2"]}]}], ")"}]}]], "+", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{"U", "[", 
      RowBox[{"x", ",", "t"}], "]"}]], " ", 
    SuperscriptBox["s", "2"], " ", 
    RowBox[{"f", "[", 
     RowBox[{"x", ",", "t"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["f", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["U", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}]}], 
   RowBox[{"2", " ", 
    SuperscriptBox[
     RowBox[{"(", 
      RowBox[{"1", "-", 
       RowBox[{
        FractionBox["1", "2"], " ", 
        SuperscriptBox["\[ExponentialE]", 
         RowBox[{
          FractionBox["1", "2"], " ", 
          RowBox[{"U", "[", 
           RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
        RowBox[{"f", "[", 
         RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}], "2"]}]], "-", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{"U", "[", 
      RowBox[{"x", ",", "t"}], "]"}]], " ", 
    SuperscriptBox["s", "2"], " ", 
    RowBox[{"f", "[", 
     RowBox[{"x", ",", "t"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["f", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["U", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}]}], 
   RowBox[{"2", " ", 
    RowBox[{"(", 
     RowBox[{"1", "-", 
      RowBox[{
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}], "+", 
      RowBox[{
       FractionBox["1", "4"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{"U", "[", 
         RowBox[{"x", ",", "t"}], "]"}]], " ", 
       SuperscriptBox["s", "2"], " ", 
       SuperscriptBox[
        RowBox[{"f", "[", 
         RowBox[{"x", ",", "t"}], "]"}], "2"]}]}], ")"}]}]], "+", 
  RowBox[{
   FractionBox["1", "2"], " ", 
   SuperscriptBox[
    RowBox[{
     SuperscriptBox["U", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}], "2"]}], "+", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{"U", "[", 
      RowBox[{"x", ",", "t"}], "]"}]], " ", 
    SuperscriptBox["s", "2"], " ", 
    SuperscriptBox[
     RowBox[{"f", "[", 
      RowBox[{"x", ",", "t"}], "]"}], "2"], " ", 
    SuperscriptBox[
     RowBox[{
      SuperscriptBox["U", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t"}], "]"}], "2"]}], 
   RowBox[{"8", " ", 
    SuperscriptBox[
     RowBox[{"(", 
      RowBox[{"1", "-", 
       RowBox[{
        FractionBox["1", "2"], " ", 
        SuperscriptBox["\[ExponentialE]", 
         RowBox[{
          FractionBox["1", "2"], " ", 
          RowBox[{"U", "[", 
           RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
        RowBox[{"f", "[", 
         RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}], "2"]}]], "+", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{
      FractionBox["1", "2"], " ", 
      RowBox[{"U", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
    RowBox[{"f", "[", 
     RowBox[{"x", ",", "t"}], "]"}], " ", 
    SuperscriptBox[
     RowBox[{
      SuperscriptBox["U", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t"}], "]"}], "2"]}], 
   RowBox[{"4", " ", 
    RowBox[{"(", 
     RowBox[{"1", "-", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}]}]], "-", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{"U", "[", 
      RowBox[{"x", ",", "t"}], "]"}]], " ", 
    SuperscriptBox["s", "2"], " ", 
    SuperscriptBox[
     RowBox[{"f", "[", 
      RowBox[{"x", ",", "t"}], "]"}], "2"], " ", 
    SuperscriptBox[
     RowBox[{
      SuperscriptBox["U", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t"}], "]"}], "2"]}], 
   RowBox[{"8", " ", 
    RowBox[{"(", 
     RowBox[{"1", "-", 
      RowBox[{
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}], "+", 
      RowBox[{
       FractionBox["1", "4"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{"U", "[", 
         RowBox[{"x", ",", "t"}], "]"}]], " ", 
       SuperscriptBox["s", "2"], " ", 
       SuperscriptBox[
        RowBox[{"f", "[", 
         RowBox[{"x", ",", "t"}], "]"}], "2"]}]}], ")"}]}]], "-", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{
      FractionBox["1", "2"], " ", 
      RowBox[{"U", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
    RowBox[{
     SuperscriptBox["f", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"2", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}]}], 
   RowBox[{"1", "-", 
    RowBox[{
     FractionBox["1", "2"], " ", 
     SuperscriptBox["\[ExponentialE]", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       RowBox[{"U", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
     RowBox[{"f", "[", 
      RowBox[{"x", ",", "t"}], "]"}]}]}]], "-", 
  RowBox[{
   SuperscriptBox["U", 
    TagBox[
     RowBox[{"(", 
      RowBox[{"2", ",", "0"}], ")"}],
     Derivative],
    MultilineFunction->None], "[", 
   RowBox[{"x", ",", "t"}], "]"}], "-", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{
      FractionBox["1", "2"], " ", 
      RowBox[{"U", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
    RowBox[{"f", "[", 
     RowBox[{"x", ",", "t"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["U", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"2", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}]}], 
   RowBox[{"2", " ", 
    RowBox[{"(", 
     RowBox[{"1", "-", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}]}]]}]], "Output",
 CellChangeTimes->{3.469483899502224*^9, 3.4715753421911983`*^9, 
  3.4715754048975687`*^9, 3.4720495440123253`*^9, 3.483804095858205*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Cancel", "[", "%", "]"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"-", 
   FractionBox[
    RowBox[{"2", " ", 
     SuperscriptBox["\[ExponentialE]", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       RowBox[{"U", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
     RowBox[{
      SuperscriptBox["f", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t"}], "]"}]}], 
    RowBox[{
     RowBox[{"-", "2"}], "+", 
     RowBox[{
      SuperscriptBox["\[ExponentialE]", 
       RowBox[{
        FractionBox["1", "2"], " ", 
        RowBox[{"U", "[", 
         RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
      RowBox[{"f", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]}]]}], "+", 
  RowBox[{
   SuperscriptBox["U", 
    TagBox[
     RowBox[{"(", 
      RowBox[{"0", ",", "1"}], ")"}],
     Derivative],
    MultilineFunction->None], "[", 
   RowBox[{"x", ",", "t"}], "]"}], "-", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{
      FractionBox["1", "2"], " ", 
      RowBox[{"U", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
    RowBox[{"f", "[", 
     RowBox[{"x", ",", "t"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["U", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}]}], 
   RowBox[{
    RowBox[{"-", "2"}], "+", 
    RowBox[{
     SuperscriptBox["\[ExponentialE]", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       RowBox[{"U", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
     RowBox[{"f", "[", 
      RowBox[{"x", ",", "t"}], "]"}]}]}]], "+", 
  RowBox[{
   FractionBox["1", "2"], " ", 
   SuperscriptBox[
    RowBox[{
     SuperscriptBox["U", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}], "2"]}], "-", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{
      FractionBox["1", "2"], " ", 
      RowBox[{"U", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
    RowBox[{"f", "[", 
     RowBox[{"x", ",", "t"}], "]"}], " ", 
    SuperscriptBox[
     RowBox[{
      SuperscriptBox["U", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x", ",", "t"}], "]"}], "2"]}], 
   RowBox[{"2", " ", 
    RowBox[{"(", 
     RowBox[{
      RowBox[{"-", "2"}], "+", 
      RowBox[{
       SuperscriptBox["\[ExponentialE]", 
        RowBox[{
         FractionBox["1", "2"], " ", 
         RowBox[{"U", "[", 
          RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
       RowBox[{"f", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]}], ")"}]}]], "+", 
  FractionBox[
   RowBox[{"2", " ", 
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{
      FractionBox["1", "2"], " ", 
      RowBox[{"U", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
    RowBox[{
     SuperscriptBox["f", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"2", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}]}], 
   RowBox[{
    RowBox[{"-", "2"}], "+", 
    RowBox[{
     SuperscriptBox["\[ExponentialE]", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       RowBox[{"U", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
     RowBox[{"f", "[", 
      RowBox[{"x", ",", "t"}], "]"}]}]}]], "-", 
  RowBox[{
   SuperscriptBox["U", 
    TagBox[
     RowBox[{"(", 
      RowBox[{"2", ",", "0"}], ")"}],
     Derivative],
    MultilineFunction->None], "[", 
   RowBox[{"x", ",", "t"}], "]"}], "+", 
  FractionBox[
   RowBox[{
    SuperscriptBox["\[ExponentialE]", 
     RowBox[{
      FractionBox["1", "2"], " ", 
      RowBox[{"U", "[", 
       RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
    RowBox[{"f", "[", 
     RowBox[{"x", ",", "t"}], "]"}], " ", 
    RowBox[{
     SuperscriptBox["U", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"2", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x", ",", "t"}], "]"}]}], 
   RowBox[{
    RowBox[{"-", "2"}], "+", 
    RowBox[{
     SuperscriptBox["\[ExponentialE]", 
      RowBox[{
       FractionBox["1", "2"], " ", 
       RowBox[{"U", "[", 
        RowBox[{"x", ",", "t"}], "]"}]}]], " ", "s", " ", 
     RowBox[{"f", "[", 
      RowBox[{"x", ",", "t"}], "]"}]}]}]]}]], "Output",
 CellChangeTimes->{3.46948389955436*^9, 3.471575342240542*^9, 
  3.471575404961821*^9, 3.4720495441026583`*^9, 3.483804095906136*^9}]
}, Open  ]],

Cell[TextData[StyleBox["This is the Burgers potential equation plus a term \
proportional to f[x,t] substituted into the heat equation plus the Burgers \
potential equation multiplied by f[x,t]*Exp[-U[x,t]. As long as U[x,t] is a \
solution of the Burgers potential equation and f[x,t] is a solution of the \
heat equation then Utilda is a solution.",
 FontWeight->"Plain",
 FontVariations->{"CompatibilityType"->0}]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
*************************************************************\
\>", "Text"],

Cell[TextData[StyleBox["Let's use the package to work out the first order \
order Lie-Backlund groups of the Burgers potential equation.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"rorder", "=", "1"}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"xseon", "=", "0"}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"internalrules", "=", "1"}], ";"}]], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"FindDeterminingEquations", "[", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "frozennames", ",",
     "porder", ",", "rorder", ",", "xseon", ",", "inputequation", ",", 
    "rulesarray", ",", "internalrules"}], "]"}], "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(47259280\\), the time used = \\!\\(46.91453`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 47259280, 46.91453],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483899695142*^9, 3.471575342434897*^9, 
  3.471575405125882*^9, 3.472049544233893*^9, 3.483804096036211*^9}],

Cell[BoxData["\<\"The function FindDeterminingEquations is nearly complete. \
The invariance condition has been created with all rules applied. The final \
step in the generation of the determining equations is to sum together terms \
in the table of invariance condition terms (called infinitesimaltable) that \
are multiplied by the same combination of products of free y derivatives. The \
result is the table infinitesimaltablesums corresponding to matching \
y-derivative expressions. If the invariance condition is long as it often is \
this process could take a long time since it requires sorting through the \
table infinitesimaltable once for each possible combination of y derivative \
products. This is the rate limiting step in the function \
FindDeterminingEquations.Virtually all other steps are quite fast including \
the generation of the extended derivatives of the infinitesimals.\"\>"], \
"Print",
 CellChangeTimes->{3.469483899695142*^9, 3.471575342434897*^9, 
  3.471575405125882*^9, 3.472049544233893*^9, 3.4838040961136513`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(3\\), the \
byte count of zdeterminingequations = \\!\\(1248\\), the memory in use = \
\\!\\(47373080\\), the time used = \\!\\(47.013172`\\)\"\>",
  StringForm[
  "The determining equations have been expressed in terms of z-variables, the \
length of zdeterminingequations = ``, the byte count of zdeterminingequations \
= ``, the memory in use = ``, the time used = ``", 3, 1248, 47373080, 
   47.013172],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483899695142*^9, 3.471575342434897*^9, 
  3.471575405125882*^9, 3.472049544233893*^9, 3.483804096160152*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(47374496\\), the time used = \\!\\(47.013591`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 47374496, 47.013591],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483899695142*^9, 3.471575342434897*^9, 
  3.471575405125882*^9, 3.472049544233893*^9, 3.483804096161718*^9}],

Cell[BoxData["\<\"FindDeterminingEquations has finished executing. You can \
look at the output in the table zdeterminingequations. Each entry in this \
table is a determining equation in string format expressed in terms of \
z-variables. Rules for converting between z-variables and conventional \
variables are contained in the table ztableofrules. To view the determining \
equations in terms of conventional variables use the command \
ToExpression[zdeterminingequations]/.ztableofrules. There are two other items \
the user may wish to look at; the equation converted to generic \
(x1,x2,...,y1,y2,...) variables is designated equationgenericvariables and \
the various derivatives of the equation that appear in the invariance \
condition can be viewed in the table invarconditiontable. Rules for \
converting between z-variables and generic variables are contained in the \
table ztableofrulesxy.\"\>"], "Print",
 CellChangeTimes->{3.469483899695142*^9, 3.471575342434897*^9, 
  3.471575405125882*^9, 3.472049544233893*^9, 3.4838040961641607`*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.10004199999999486`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.46948389980538*^9, 3.471575342525861*^9, 
  3.4715754052347403`*^9, 3.47204954431631*^9, 3.4838040961655416`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"SolveDeterminingEquations", "[", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "rorder", ",", 
    "xseon", ",", "\[IndentingNewLine]", "zdeterminingequations", ",", 
    RowBox[{"polyorder", "=", "4"}]}], "]"}], "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox["\<\"The variable powertablelength is the number of terms \
required for each multivariate polynomial used for the infinitesimals. This \
number is determined by the choice of polynomial order and the number of \
zvariables. The time needed to solve the determining equations increases as \
powertable increases. powertablelength = \\!\\(126\\)\"\>",
  StringForm[
  "The variable powertablelength is the number of terms required for each \
multivariate polynomial used for the infinitesimals. This number is \
determined by the choice of polynomial order and the number of zvariables. \
The time needed to solve the determining equations increases as powertable \
increases. powertablelength = ``", 126],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.483804096211227*^9}],

Cell[BoxData["\<\"The polynomial expansions have been substituted into the \
determining equations. It is now time to collect the coefficients of various \
powers of zvariables into a table called table of coefficientsall. This step \
uses the function CoefficientList and is a fairly time consuming procedure.\"\
\>"], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.4838040962542057`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(47555808\\), The time = \\!\
\\(47.08332600000001`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 47555808, 47.08332600000001],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.4838040962556353`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of unknown polynomial coefficients = \
\\!\\(126\\)\"\>",
  StringForm["The number of unknown polynomial coefficients = ``", 126],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.4838040962569647`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(221\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 221],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.483804096258309*^9}],

Cell[BoxData["\<\"Now it we are ready to use the function Solve to find the \
nonzero polynomial coefficients corresponding to the symmetries of the input \
equation(s). This can take a while.\"\>"], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.4838040962597723`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(47661392\\), The time = \\!\
\\(47.095029000000004`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 47661392, 47.095029000000004`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.483804096261468*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.4838040962630043`*^9}],

Cell[BoxData["\<\"The function SolveDeterminingEquations is finished \
executing.\"\>"], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.4838040962642612`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(47714584\\), The time = \\!\
\\(47.107473`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 47714584, 47.107473],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.4838040962932568`*^9}],

Cell[BoxData["\<\"You can look at the output in the tables xsefunctions and \
etafunctions. Each entry in these tables is an infinitesimal function in \
string format expressed in terms of z-variables and the group parameters. The \
output can also be viewed with the group parameters stripped away by looking \
at the table infinitesimalgroups. In either case you may wish to convert the \
z-variables to conventional variables using the table ztableofrules. \
\\n\\nKeep in mind that this function only finds solutions of the determining \
equations that are of polynomial form. The determining equations may admit \
solutions that involve transcendental functions and/or integrals. Note that \
arbitrary functions may appear in the infinitesimals and that these can be \
detected by running the package function SolveDeterminingEquations for \
several polynomial orders. If terms of ever increasing order appear, then an \
arbitrary function is indicated.\"\>"], "Print",
 CellChangeTimes->{3.469483899985304*^9, 3.47157534257463*^9, 
  3.471575405280052*^9, 3.4720495443490887`*^9, 3.4838040963340693`*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.09308800000000161`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.4694839000403147`*^9, 3.471575342663924*^9, 
  3.471575405317253*^9, 3.472049544436954*^9, 3.483804096365993*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"ToExpression", "[", "xsefunctions", "]"}], "/.", 
  "\[IndentingNewLine]", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"z1", "\[Rule]", "x"}], ",", 
    RowBox[{"z2", "\[Rule]", "t"}], ",", 
    RowBox[{"z3", "\[Rule]", "U"}], ",", 
    RowBox[{"z4", "\[Rule]", "Ux"}], ",", 
    RowBox[{"z5", "\[Rule]", "Ut"}]}], "}"}]}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0"}], "}"}]], "Output",
 CellChangeTimes->{3.4694839000824223`*^9, 3.47157534270303*^9, 
  3.471575405358193*^9, 3.472049544480784*^9, 3.483804096504578*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"ToExpression", "[", "etafunctions", "]"}], "/.", 
  "\[IndentingNewLine]", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"z1", "\[Rule]", "x"}], ",", 
    RowBox[{"z2", "\[Rule]", "t"}], ",", 
    RowBox[{"z3", "\[Rule]", "U"}], ",", 
    RowBox[{"z4", "\[Rule]", "Ux"}], ",", 
    RowBox[{"z5", "\[Rule]", "Ut"}]}], "}"}]}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"b10", "-", 
   RowBox[{"b177", " ", "t"}], "+", 
   RowBox[{"b170", " ", "Ut"}], "+", 
   RowBox[{"b174", " ", "t", " ", "Ut"}], "+", 
   RowBox[{"b177", " ", 
    SuperscriptBox["t", "2"], " ", "Ut"}], "+", 
   RowBox[{"b135", " ", "Ux"}], "+", 
   RowBox[{"b139", " ", "t", " ", "Ux"}], "-", 
   RowBox[{"b139", " ", "x"}], "+", 
   FractionBox[
    RowBox[{"b174", " ", "Ux", " ", "x"}], "2"], "+", 
   RowBox[{"b177", " ", "t", " ", "Ux", " ", "x"}], "-", 
   FractionBox[
    RowBox[{"b177", " ", 
     SuperscriptBox["x", "2"]}], "2"]}], "}"}]], "Output",
 CellChangeTimes->{3.469483900138135*^9, 3.471575342757679*^9, 
  3.471575405415635*^9, 3.4720495446134777`*^9, 3.4838040965723057`*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"Column", "[", "infinitesimalgroups", "]"}], "/.", 
  "\[InvisibleSpace]", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"z1", "\[Rule]", "x"}], ",", 
    RowBox[{"z2", "\[Rule]", "t"}], ",", 
    RowBox[{"z3", "\[Rule]", "U"}], ",", 
    RowBox[{"z4", "\[Rule]", "Ux"}], ",", 
    RowBox[{"z5", "\[Rule]", "Ut"}]}], "}"}]}]], "Input"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "1", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "Ux", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"t", " ", "Ux"}], "-", "x"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "Ut", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"t", " ", "Ut"}], "+", 
         FractionBox[
          RowBox[{"Ux", " ", "x"}], "2"]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"-", "t"}], "+", 
         RowBox[{
          SuperscriptBox["t", "2"], " ", "Ut"}], "+", 
         RowBox[{"t", " ", "Ux", " ", "x"}], "-", 
         FractionBox[
          SuperscriptBox["x", "2"], "2"]}], "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469483900183844*^9, 3.471575342808484*^9, 
  3.471575405542183*^9, 3.472049544648334*^9, 3.483804096638425*^9}],

Cell["Check the infinitesimals in the determining equations.", "Text",
 CellChangeTimes->{{3.471145395559845*^9, 3.471145429404257*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Simplify", "[", 
  RowBox[{"ToExpression", "[", "zdeterminingequations", "]"}], "]"}]], "Input",\

 CellChangeTimes->{{3.471145481019026*^9, 3.4711455173104143`*^9}, 
   3.471146122753789*^9, {3.47154140257237*^9, 3.471541418863482*^9}, {
   3.4715667761993*^9, 3.4715667786858253`*^9}, 3.471567789726531*^9, 
   3.471568099275279*^9, 3.4715715735656223`*^9, 3.471572095183077*^9, {
   3.4715726099623337`*^9, 3.471572610792289*^9}, {3.4715729781802893`*^9, 
   3.471572978778569*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"True", ",", "True", ",", "True"}], "}"}]], "Output",
 CellChangeTimes->{3.471575405597905*^9, 3.4720495447009974`*^9, 
  3.4838040967051888`*^9}]
}, Open  ]],

Cell[TextData[StyleBox["These are the six first-order Lie-Backlund symmetries \
corresponding to the point groups of the Burgers potential equation.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"MaxMemoryUsed", "[", " ", "]"}]], "Input"],

Cell[BoxData["864633528"], "Output",
 CellChangeTimes->{3.469483900239359*^9, 3.471575342857306*^9, 
  3.4715754056481237`*^9, 3.4720495447515783`*^9, 3.483804096772168*^9}]
}, Open  ]]
},
WindowToolbars->{},
CellGrouping->Manual,
WindowSize->{1123, 1007},
WindowMargins->{{18, Automatic}, {Automatic, 43}},
PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}},
ShowCellLabel->True,
ShowCellTags->False,
RenderingOptions->{"ObjectDithering"->True,
"RasterDithering"->False},
MacintoshSystemPageSetup -> \
"01@0001804P000000_82@?okonh34`9B;@85:0?l0@00009H0UP00P0068dB`001\n\
2@00I00100000@004Q800BL?0040000000000000000004<001000`00000@0?oH\n\
ofXIX1=F8040400000400000000000l1",
Magnification->1.25,
FrontEndVersion->"7.0 for Mac OS X x86 (32-bit) (February 18, 2009)",
StyleDefinitions->"Default.nb"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[545, 20, 262, 5, 76, "Text"],
Cell[810, 27, 85, 2, 32, "Text"],
Cell[898, 31, 90, 2, 33, "Input"],
Cell[991, 35, 124, 1, 32, "Text"],
Cell[1118, 38, 160, 4, 33, "Input"],
Cell[1281, 44, 476, 13, 32, "Text"],
Cell[1760, 59, 93, 1, 33, "Input"],
Cell[1856, 62, 164, 3, 32, "Text"],
Cell[2023, 67, 144, 4, 53, "Input"],
Cell[2170, 73, 257, 4, 32, "Text"],
Cell[2430, 79, 190, 5, 53, "Input"],
Cell[2623, 86, 130, 2, 32, "Text"],
Cell[2756, 90, 151, 4, 33, "Input"],
Cell[2910, 96, 128, 2, 32, "Text"],
Cell[3041, 100, 116, 3, 33, "Input"],
Cell[3160, 105, 230, 4, 32, "Text"],
Cell[3393, 111, 96, 3, 33, "Input"],
Cell[3492, 116, 152, 3, 32, "Text"],
Cell[3647, 121, 72, 2, 33, "Input"],
Cell[3722, 125, 395, 6, 51, "Text"],
Cell[4120, 133, 72, 2, 33, "Input"],
Cell[4195, 137, 514, 7, 70, "Text"],
Cell[4712, 146, 71, 2, 33, "Input"],
Cell[4786, 150, 524, 8, 70, "Text"],
Cell[5313, 160, 79, 2, 33, "Input"],
Cell[5395, 164, 267, 4, 51, "Text"],
Cell[CellGroupData[{
Cell[5687, 172, 360, 7, 72, "Input"],
Cell[6050, 181, 469, 8, 25, "Print"],
Cell[6522, 191, 1051, 14, 178, "Print"],
Cell[7576, 207, 746, 12, 64, "Print"],
Cell[8325, 221, 439, 8, 25, "Print"],
Cell[8767, 231, 1054, 14, 178, "Print"],
Cell[9824, 247, 230, 4, 33, "Output"]
}, Open  ]],
Cell[10069, 254, 123, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[10217, 261, 68, 1, 33, "Input"],
Cell[10288, 264, 483, 13, 42, "Output"]
}, Open  ]],
Cell[10786, 280, 75, 0, 32, "Text"],
Cell[10864, 282, 71, 1, 33, "Input"],
Cell[CellGroupData[{
Cell[10960, 287, 78, 1, 33, "Input"],
Cell[11041, 290, 160, 2, 33, "Output"]
}, Open  ]],
Cell[11216, 295, 98, 2, 32, "Text"],
Cell[CellGroupData[{
Cell[11339, 301, 62, 1, 33, "Input"],
Cell[11404, 304, 369, 9, 33, "Output"]
}, Open  ]],
Cell[11788, 316, 489, 11, 126, "Text"],
Cell[CellGroupData[{
Cell[12302, 331, 305, 6, 53, "Input"],
Cell[12610, 339, 898, 14, 64, "Print"],
Cell[13511, 355, 460, 6, 64, "Print"],
Cell[13974, 363, 351, 6, 25, "Print"],
Cell[14328, 371, 341, 6, 25, "Print"],
Cell[14672, 379, 364, 7, 25, "Print"],
Cell[15039, 388, 340, 4, 45, "Print"],
Cell[15382, 394, 352, 6, 25, "Print"],
Cell[15737, 402, 185, 2, 25, "Print"],
Cell[15925, 406, 229, 3, 25, "Print"],
Cell[16157, 411, 374, 7, 25, "Print"],
Cell[16534, 420, 1106, 14, 216, "Print"],
Cell[17643, 436, 229, 4, 33, "Output"]
}, Open  ]],
Cell[17887, 443, 108, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[18020, 450, 61, 1, 33, "Input"],
Cell[18084, 453, 329, 6, 33, "Output"]
}, Open  ]],
Cell[18428, 462, 48, 0, 32, "Text"],
Cell[CellGroupData[{
Cell[18501, 466, 61, 1, 33, "Input"],
Cell[18565, 469, 249, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[18851, 478, 208, 3, 32, "Text"],
Cell[19062, 483, 253, 7, 33, "Input"],
Cell[19318, 492, 488, 13, 53, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[19843, 510, 143, 2, 32, "Text"],
Cell[19989, 514, 253, 7, 33, "Input"],
Cell[20245, 523, 362, 9, 57, "Output"]
}, Open  ]],
Cell[20622, 535, 292, 8, 33, "Input"],
Cell[20917, 545, 86, 2, 32, "Text"],
Cell[21006, 549, 78, 1, 33, "Input"],
Cell[21087, 552, 1393, 49, 159, "Output"],
Cell[22483, 603, 136, 1, 32, "Text"],
Cell[CellGroupData[{
Cell[22644, 608, 509, 9, 33, "Input"],
Cell[23156, 619, 292, 6, 33, "Output"]
}, Open  ]],
Cell[23463, 628, 391, 6, 51, "Text"],
Cell[23857, 636, 190, 4, 53, "Input"],
Cell[24050, 642, 551, 7, 83, "Print"],
Cell[CellGroupData[{
Cell[24626, 653, 77, 1, 33, "Input"],
Cell[24706, 656, 27040, 739, 353, "Output"]
}, Open  ]],
Cell[51761, 1398, 313, 5, 51, "Text"],
Cell[CellGroupData[{
Cell[52099, 1407, 54, 1, 33, "Input"],
Cell[52156, 1410, 163, 2, 33, "Output"]
}, Open  ]],
Cell[52334, 1415, 69, 0, 32, "Text"],
Cell[CellGroupData[{
Cell[52428, 1419, 53, 1, 33, "Input"],
Cell[52484, 1422, 165, 2, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[52686, 1429, 311, 6, 53, "Input"],
Cell[53000, 1437, 475, 8, 25, "Print"],
Cell[53478, 1447, 1056, 14, 178, "Print"],
Cell[54537, 1463, 743, 12, 64, "Print"],
Cell[55283, 1477, 460, 8, 25, "Print"],
Cell[55746, 1487, 1056, 14, 178, "Print"],
Cell[56805, 1503, 232, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[57074, 1512, 312, 8, 33, "Input"],
Cell[57389, 1522, 1898, 62, 87, "Output"]
}, Open  ]],
Cell[59302, 1587, 491, 14, 220, "Text"],
Cell[59796, 1603, 251, 8, 33, "Input"],
Cell[60050, 1613, 115, 2, 33, "Input"],
Cell[60168, 1617, 1034, 32, 79, "Output"],
Cell[61205, 1651, 175, 3, 32, "Text"],
Cell[61383, 1656, 360, 6, 51, "Text"],
Cell[61746, 1664, 560, 19, 33, "Input"],
Cell[CellGroupData[{
Cell[62331, 1687, 512, 17, 33, "Input"],
Cell[62846, 1706, 8337, 265, 417, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[71220, 1976, 62, 1, 33, "Input"],
Cell[71285, 1979, 11376, 381, 432, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[82698, 2365, 59, 1, 33, "Input"],
Cell[82760, 2368, 4781, 165, 168, "Output"]
}, Open  ]],
Cell[87556, 2536, 458, 7, 51, "Text"],
Cell[88017, 2545, 85, 2, 32, "Text"],
Cell[88105, 2549, 202, 3, 32, "Text"],
Cell[88310, 2554, 72, 2, 33, "Input"],
Cell[88385, 2558, 71, 2, 33, "Input"],
Cell[88459, 2562, 79, 2, 33, "Input"],
Cell[CellGroupData[{
Cell[88563, 2568, 311, 6, 53, "Input"],
Cell[88877, 2576, 467, 8, 25, "Print"],
Cell[89347, 2586, 1052, 14, 178, "Print"],
Cell[90402, 2602, 725, 12, 45, "Print"],
Cell[91130, 2616, 437, 8, 25, "Print"],
Cell[91570, 2626, 1054, 14, 178, "Print"],
Cell[92627, 2642, 230, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[92894, 2651, 305, 6, 53, "Input"],
Cell[93202, 2659, 902, 14, 64, "Print"],
Cell[94107, 2675, 464, 6, 64, "Print"],
Cell[94574, 2683, 376, 7, 25, "Print"],
Cell[94953, 2692, 345, 6, 25, "Print"],
Cell[95301, 2700, 366, 7, 25, "Print"],
Cell[95670, 2709, 344, 4, 45, "Print"],
Cell[96017, 2715, 377, 7, 25, "Print"],
Cell[96397, 2724, 189, 2, 25, "Print"],
Cell[96589, 2728, 233, 3, 25, "Print"],
Cell[96825, 2733, 357, 6, 25, "Print"],
Cell[97185, 2741, 1110, 14, 216, "Print"],
Cell[98298, 2757, 230, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[98565, 2766, 365, 10, 53, "Input"],
Cell[98933, 2778, 207, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[99177, 2787, 365, 10, 53, "Input"],
Cell[99545, 2799, 738, 18, 57, "Output"]
}, Open  ]],
Cell[100298, 2820, 364, 10, 33, "Input"],
Cell[100665, 2832, 1629, 56, 159, "Output"],
Cell[102297, 2890, 136, 1, 32, "Text"],
Cell[CellGroupData[{
Cell[102458, 2895, 509, 9, 33, "Input"],
Cell[102970, 2906, 185, 4, 33, "Output"]
}, Open  ]],
Cell[103170, 2913, 214, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[103409, 2920, 66, 1, 33, "Input"],
Cell[103478, 2923, 173, 2, 33, "Output"]
}, Open  ]]
}
]
*)

(* End of internal cache information *)
