(* 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[     98812,       3030]
NotebookOptionsPosition[     91104,       2792]
NotebookOutlinePosition[     91934,       2821]
CellTagsIndexPosition[     91891,       2818]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[TextData[{
 StyleBox["In this example we use the package IntroToSymmetry.m to work out, \
first the point group of the Huxley equation, \n\nUxx-Ut+2*U^2(1-U)=0.\n\n\
then a nonclassical symmetry. \nReference: Hydon, P. 2000 ",
  FontSize->14,
  FontWeight->"Plain"],
 StyleBox["Symmetry Methods for Differential Equations",
  FontSize->14,
  FontWeight->"Plain",
  FontSlant->"Italic"],
 StyleBox[" Cambridge Press (see Section 9.3).",
  FontSize->14,
  FontWeight->"Plain"]
}], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

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[BoxData[
 RowBox[{"Needs", "[", "\"\<SymmetryAnalysis`IntroToSymmetry`\>\"", 
  "]"}]], "Input"],

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[{
  "huxleyequation", "=", "\n", 
   "\"\<D[U[x,t],x,x]-D[U[x,t],t]+2*U[x,t]^2-2*U[x,t]^3\>\""}], 
  ";"}]], "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]->D[U[x,t],t]-2*U[x,t]^2+2*U[x,t]^3\>\"", "}"}]}], 
  ";"}]], "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 \
must be preserved when the equation is converted to generic y1[x1,x2] \
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[{"p", "=", "2"}], ";"}]], "Input"],

Cell[TextData[StyleBox["The maximum derivative order that the infinitesimals \
are assumed to depend on is specified by the input parameter r. 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 r=0.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

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

Cell[TextData[StyleBox["When searching for Lie-Backlund groups (r=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 with respect to each of the \
independent variables producing derivatives of order p+r. These higher order \
differential consequences are appended 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", "[", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "frozennames", ",",
     "p", ",", "r", ",", "xseon", ",", "huxleyequation", ",", "rulesarray", 
    ",", "internalrules"}], "]"}], "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(73221400\\), the time used = \
\\!\\(50.123906000000005`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 73221400, 50.123906000000005`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484161248938*^9, 3.471575742947843*^9, 
  3.483804404646208*^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.469484161248938*^9, 3.471575742947843*^9, 
  3.4838044047023783`*^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 = \\!\\(1536\\), the memory in use = \
\\!\\(73236888\\), the time used = \\!\\(50.196173`\\)\"\>",
  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, 1536, 73236888, 
   50.196173],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484161248938*^9, 3.471575742947843*^9, 
  3.483804404706353*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(73237536\\), the time used = \\!\\(50.196442`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 73237536, 50.196442],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484161248938*^9, 3.471575742947843*^9, 
  3.483804404709489*^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.469484161248938*^9, 3.471575742947843*^9, 
  3.483804404712389*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.07341100000000012`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469484161318666*^9, 3.471575742982609*^9, 
  3.483804404716234*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData["equationgenericvariables"], "Input"],

Cell[BoxData["\<\"D[y1[x1,x2],x1,x1]-D[y1[x1,x2],x2]+2*y1[x1,x2]^2-2*y1[x1,x2]\
^3\"\>"], "Output",
 CellChangeTimes->{3.469484161372437*^9, 3.471575743044626*^9, 
  3.483804404768943*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData["invarconditiontable"], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", 
   RowBox[{
    RowBox[{"4", " ", 
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"6", " ", 
     SuperscriptBox[
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], "2"]}]}], ",", "0", ",", 
   RowBox[{"-", "1"}], ",", "1", ",", "0", ",", "0"}], "}"}]], "Output",
 CellChangeTimes->{3.469484161418194*^9, 3.471575743087091*^9, 
  3.483804404815415*^9}]
}, Open  ]],

Cell[BoxData["ztableofrules"], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"z1", "\[Rule]", "x"}], ",", 
   RowBox[{"z2", "\[Rule]", "t"}], ",", 
   RowBox[{"z3", "\[Rule]", 
    RowBox[{"U", "[", 
     RowBox[{"x", ",", "t"}], "]"}]}]}], "}"}]], "Output",
 CellChangeTimes->{3.469484161472416*^9, 3.471575743120872*^9, 
  3.483804404869668*^9}],

Cell[CellGroupData[{

Cell[TextData[StyleBox["Here are the determining equations expressed in terms \
of z-variables. This output may be quite long. The equations in the table can \
be distinguished by the == 0 at the end of each item.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData["zdeterminingequations"], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"-2*Derivative[0, 0, 1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-Derivative[0, 0, 2][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-Derivative[0, 0, 2][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-2*Derivative[1, 0, 0][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"Derivative[0, 0, 2][eta1][z1, z2, z3] - 2*Derivative[1, 0, \
1][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-2*Derivative[0, 0, 1][xse1][z1, z2, z3] - 2*Derivative[1, 0, \
1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"4*z3*eta1[z1, z2, z3] - 6*z3^2*eta1[z1, z2, z3] - \
2*z3^2*Derivative[0, 0, 1][eta1][z1, z2, z3] + 2*z3^3*Derivative[0, 0, \
1][eta1][z1, z2, z3] - Derivative[0, 1, 0][eta1][z1, z2, z3] + \
4*z3^2*Derivative[1, 0, 0][xse1][z1, z2, z3] - 4*z3^3*Derivative[1, 0, \
0][xse1][z1, z2, z3] + Derivative[2, 0, 0][eta1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"6*z3^2*Derivative[0, 0, 1][xse1][z1, z2, z3] - \
6*z3^3*Derivative[0, 0, 1][xse1][z1, z2, z3] + Derivative[0, 1, 0][xse1][z1, \
z2, z3] + 2*Derivative[1, 0, 1][eta1][z1, z2, z3] - Derivative[2, 0, \
0][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"2*z3^2*Derivative[0, 0, 1][xse2][z1, z2, z3] - \
2*z3^3*Derivative[0, 0, 1][xse2][z1, z2, z3] + Derivative[0, 1, 0][xse2][z1, \
z2, z3] - 2*Derivative[1, 0, 0][xse1][z1, z2, z3] - Derivative[2, 0, \
0][xse2][z1, z2, z3] == 0\"\>"}], "}"}]], "Output",
 CellChangeTimes->{3.469484161518999*^9, 3.471575743166277*^9, 
  3.483804404915882*^9}]
}, Open  ]],

Cell["How many determining equations are there?", "Text"],

Cell[CellGroupData[{

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

Cell[BoxData["9"], "Output",
 CellChangeTimes->{3.4694841615683327`*^9, 3.471575743215826*^9, 
  3.483804404970179*^9}]
}, Open  ]],

Cell["\<\
Now solve the determining equations in terms of multivariable polynomials. \
This function can take a long time.  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", "[", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "r", ",", "xseon", 
    ",", "\[IndentingNewLine]", "zdeterminingequations", ",", 
    RowBox[{"order", "=", "3"}]}], "]"}], "]"}]], "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 = \\!\\(20\\)\"\>",
  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 = ``", 20],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484161623816*^9, 3.4715757432715073`*^9, 
  3.483804405016469*^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.469484161623816*^9, 3.4715757432715073`*^9, 
  3.483804405020731*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(73292864\\), The time = \\!\
\\(50.227621`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 73292864, 50.227621],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484161623816*^9, 3.4715757432715073`*^9, 
  3.483804405023697*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of unknown polynomial coefficients = \
\\!\\(60\\)\"\>",
  StringForm["The number of unknown polynomial coefficients = ``", 60],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484161623816*^9, 3.4715757432715073`*^9, 
  3.4838044050263853`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(116\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 116],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484161623816*^9, 3.4715757432715073`*^9, 
  3.483804405029067*^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.469484161623816*^9, 3.4715757432715073`*^9, 
  3.483804405031735*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(73324152\\), The time = \\!\
\\(50.232582`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 73324152, 50.232582],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484161623816*^9, 3.4715757432715073`*^9, 
  3.483804405034563*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469484161623816*^9, 3.4715757432715073`*^9, 
  3.483804405037203*^9}],

Cell[BoxData["\<\"The function SolveDeterminingEquations is finished \
executing.\"\>"], "Print",
 CellChangeTimes->{3.469484161623816*^9, 3.4715757432715073`*^9, 
  3.483804405039809*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(73342104\\), The time = \\!\
\\(50.235825000000006`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 73342104, 50.235825000000006`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484161623816*^9, 3.4715757432715073`*^9, 
  3.4838044050425053`*^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.469484161623816*^9, 3.4715757432715073`*^9, 
  3.4838044050451937`*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.035255999999996845`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469484161633995*^9, 3.471575743283778*^9, 
  3.483804405048959*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[StyleBox["Here are the infinitesimals for the independent \
variables expressed in terms of z-variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData["xsefunctions"], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"xse1[z1_, z2_, z3_]=a10\"\>", 
   ",", "\<\"xse2[z1_, z2_, z3_]=a20\"\>"}], "}"}]], "Output",
 CellChangeTimes->{3.469484161673171*^9, 3.471575743315414*^9, 
  3.483804405087344*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[StyleBox["and the infinitesimals for the dependent variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData["etafunctions"], "Input"],

Cell[BoxData[
 RowBox[{"{", "\<\"eta1[z1_, z2_, z3_]=0\"\>", "}"}]], "Output",
 CellChangeTimes->{3.469484161719132*^9, 3.471575743371562*^9, 
  3.483804405132654*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"1", ",", "0"}], "}"}], ",", 
     RowBox[{"{", "0", "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "1"}], "}"}], ",", 
     RowBox[{"{", "0", "}"}]}], "}"}]}], "}"}]], "Output",
 CellChangeTimes->{3.4694841617736073`*^9, 3.471575743421504*^9, 
  3.483804405187495*^9}]
}, Open  ]],

Cell["List the groups.", "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", "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.4694841618197803`*^9, 3.4715757434669333`*^9, 
  3.483804405233283*^9}],

Cell[TextData[StyleBox["Now generate 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.469484161874483*^9, 3.471575743521476*^9, 
  3.483804405287489*^9}],

Cell[TextData[StyleBox["Put the commutator table in readable form.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"MatrixForm", "[", 
  RowBox[{"Simplify", "[", "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[{"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.469484162002438*^9, 3.471575743568728*^9, 
  3.483804405334181*^9}]
}, Open  ]],

Cell[TextData[StyleBox["The equation admits a two parameter group of \
translations in space and time. Now let's look for a nonclassical symmetry. \
Let G=U-f[x,t]. The function G[x,t,U] is an invariant solution of the Huxley \
equation if and only if it satisfies the invariance condition \n\nxse1(\
\[PartialD]G/\[PartialD]x)+xse2(\[PartialD]G/\[PartialD]t)+eta1(\[PartialD]G/\
\[PartialD]U)=0.\n\nWe will introduce this condition to the problem by adding \
it to rulesarray but with the ansatz xse2=1 and the infinitesimals xse1 and \
eta1 treated as arbitrary functions of (x,t,U) to be identified with \
infinitesimals later.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"rulesarraynew", "=", "\[IndentingNewLine]", 
   RowBox[{"{", 
    RowBox[{
    "\"\<D[U[x,t],x,x]->D[U[x,t],t]-2*U[x,t]^2+2*U[x,t]^3\>\"", ",", 
     "\"\<D[U[x,t],t]\[Rule]eta1prime[x,t,U[x,t]]-xse1prime[x,t,U[x,t]]*D[U[x,\
t],x]\>\""}], "}"}]}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"frozennames", "=", 
   RowBox[{"{", 
    RowBox[{"\"\<xse1prime\>\"", ",", "\"\<eta1prime\>\""}], "}"}]}], 
  ";"}]], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"FindDeterminingEquations", "[", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "frozennames", ",",
     "p", ",", "r", ",", "xseon", ",", "huxleyequation", ",", "rulesarraynew",
     ",", "internalrules"}], "]"}], "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(73269880\\), the time used = \
\\!\\(50.24980000000001`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 73269880, 50.24980000000001],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484162119295*^9, 3.471575743734445*^9, 
  3.483804405515674*^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.469484162119295*^9, 3.471575743734445*^9, 
  3.483804405575083*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(6\\), the \
byte count of zdeterminingequations = \\!\\(2088\\), the memory in use = \
\\!\\(73350760\\), the time used = \\!\\(50.333777000000005`\\)\"\>",
  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 = ``", 6, 2088, 73350760, 
   50.333777000000005`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484162119295*^9, 3.471575743734445*^9, 
  3.483804405617467*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(73351896\\), the time used = \\!\\(50.334067000000005`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 73351896, 50.334067000000005`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484162119295*^9, 3.471575743734445*^9, 
  3.483804405620069*^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.469484162119295*^9, 3.471575743734445*^9, 
  3.483804405622292*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.08514100000000013`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469484162212934*^9, 3.471575743840918*^9, 
  3.483804405625445*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData["zdeterminingequations"], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"-2*Derivative[0, 0, 1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-Derivative[0, 0, 2][xse1][z1, z2, z3] + xse1prime[z1, z2, \
z3]*Derivative[0, 0, 2][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-2*Derivative[1, 0, 0][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"2*xse1prime[z1, z2, z3]*Derivative[0, 0, 1][xse1][z1, z2, z3] + \
Derivative[0, 0, 2][eta1][z1, z2, z3] - eta1prime[z1, z2, z3]*Derivative[0, \
0, 2][xse2][z1, z2, z3] - 2*Derivative[1, 0, 1][xse1][z1, z2, z3] + \
2*xse1prime[z1, z2, z3]*Derivative[1, 0, 1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"4*z3*eta1[z1, z2, z3] - 6*z3^2*eta1[z1, z2, z3] - \
2*z3^2*Derivative[0, 0, 1][eta1][z1, z2, z3] + 2*z3^3*Derivative[0, 0, \
1][eta1][z1, z2, z3] + 2*z3^2*eta1prime[z1, z2, z3]*Derivative[0, 0, \
1][xse2][z1, z2, z3] - 2*z3^3*eta1prime[z1, z2, z3]*Derivative[0, 0, \
1][xse2][z1, z2, z3] - Derivative[0, 1, 0][eta1][z1, z2, z3] + eta1prime[z1, \
z2, z3]*Derivative[0, 1, 0][xse2][z1, z2, z3] + 4*z3^2*Derivative[1, 0, \
0][xse1][z1, z2, z3] - 4*z3^3*Derivative[1, 0, 0][xse1][z1, z2, z3] - \
2*eta1prime[z1, z2, z3]*Derivative[1, 0, 0][xse1][z1, z2, z3] + Derivative[2, \
0, 0][eta1][z1, z2, z3] - eta1prime[z1, z2, z3]*Derivative[2, 0, 0][xse2][z1, \
z2, z3] == 0\"\>", 
   ",", "\<\"6*z3^2*Derivative[0, 0, 1][xse1][z1, z2, z3] - \
6*z3^3*Derivative[0, 0, 1][xse1][z1, z2, z3] - 2*eta1prime[z1, z2, \
z3]*Derivative[0, 0, 1][xse1][z1, z2, z3] - 2*z3^2*xse1prime[z1, z2, \
z3]*Derivative[0, 0, 1][xse2][z1, z2, z3] + 2*z3^3*xse1prime[z1, z2, \
z3]*Derivative[0, 0, 1][xse2][z1, z2, z3] + Derivative[0, 1, 0][xse1][z1, z2, \
z3] - xse1prime[z1, z2, z3]*Derivative[0, 1, 0][xse2][z1, z2, z3] + \
2*xse1prime[z1, z2, z3]*Derivative[1, 0, 0][xse1][z1, z2, z3] + \
2*Derivative[1, 0, 1][eta1][z1, z2, z3] - 2*eta1prime[z1, z2, \
z3]*Derivative[1, 0, 1][xse2][z1, z2, z3] - Derivative[2, 0, 0][xse1][z1, z2, \
z3] + xse1prime[z1, z2, z3]*Derivative[2, 0, 0][xse2][z1, z2, z3] == 0\"\>"}],
   "}"}]], "Output",
 CellChangeTimes->{3.469484162255743*^9, 3.471575743867702*^9, 
  3.4838044056685963`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Length", "[", "zdeterminingequations", "]"}]], "Input"],

Cell[BoxData["6"], "Output",
 CellChangeTimes->{3.469484162304686*^9, 3.47157574390177*^9, 
  3.4838044057179403`*^9}]
}, Open  ]],

Cell[BoxData[
 TagBox[
  FormBox[
   RowBox[{"Column", "[", 
    RowBox[{
     RowBox[{"ToExpression", "[", "zdeterminingequations", "]"}], ",", 
     RowBox[{"{", 
      RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}],
   TraditionalForm],
  TraditionalForm,
  Editable->True]], "Input"],

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{
      RowBox[{
       RowBox[{"-", "2"}], " ", 
       RowBox[{
        SuperscriptBox["xse2", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "0", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}]},
    {
     RowBox[{
      RowBox[{
       RowBox[{"-", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "2"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{
        RowBox[{"xse1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "2"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}]},
    {
     RowBox[{
      RowBox[{
       RowBox[{"-", "2"}], " ", 
       RowBox[{
        SuperscriptBox["xse2", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"1", ",", "0", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}]},
    {
     RowBox[{
      RowBox[{
       RowBox[{"2", " ", 
        RowBox[{"xse1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{
        SuperscriptBox["eta1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "0", ",", "2"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "-", 
       RowBox[{
        RowBox[{"eta1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "2"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"2", " ", 
        RowBox[{"xse1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}]},
    {
     RowBox[{
      RowBox[{
       RowBox[{"4", " ", "z3", " ", 
        RowBox[{"eta1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"6", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{"eta1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{
         SuperscriptBox["eta1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"2", " ", 
        SuperscriptBox["z3", "3"], " ", 
        RowBox[{
         SuperscriptBox["eta1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"2", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{"eta1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        SuperscriptBox["z3", "3"], " ", 
        RowBox[{"eta1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{
        SuperscriptBox["eta1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "1", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "+", 
       RowBox[{
        RowBox[{"eta1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "1", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"4", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"4", " ", 
        SuperscriptBox["z3", "3"], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        RowBox[{"eta1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{
        SuperscriptBox["eta1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"2", ",", "0", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "-", 
       RowBox[{
        RowBox[{"eta1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"2", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}]},
    {
     RowBox[{
      RowBox[{
       RowBox[{"6", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"6", " ", 
        SuperscriptBox["z3", "3"], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        RowBox[{"eta1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{"xse1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"2", " ", 
        SuperscriptBox["z3", "3"], " ", 
        RowBox[{"xse1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{
        SuperscriptBox["xse1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "1", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "-", 
       RowBox[{
        RowBox[{"xse1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "1", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"2", " ", 
        RowBox[{"xse1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"2", " ", 
        RowBox[{
         SuperscriptBox["eta1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        RowBox[{"eta1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{
        SuperscriptBox["xse1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"2", ",", "0", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "+", 
       RowBox[{
        RowBox[{"xse1prime", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"2", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469484162362659*^9, 3.471575743936603*^9, 
  3.483804405775755*^9}],

Cell[TextData[StyleBox["Now change eta1prime and xse1prime to the \
infinitesimals eta1 and xse1. In addition set xse2=1.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"eta1prime", "[", 
   RowBox[{"z1_", ",", "z2_", ",", "z3_"}], "]"}], ":=", 
  RowBox[{"eta1", "[", 
   RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"xse1prime", "[", 
   RowBox[{"z1_", ",", "z2_", ",", "z3_"}], "]"}], ":=", 
  RowBox[{"xse1", "[", 
   RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"xse2", "[", 
   RowBox[{"z1_", ",", "z2_", ",", "z3_"}], "]"}], ":=", "1"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationssimplified", "=", 
   RowBox[{"ToExpression", "[", "zdeterminingequations", "]"}]}], 
  ";"}]], "Input"],

Cell[BoxData[
 TagBox[
  FormBox[
   RowBox[{"Column", "[", 
    RowBox[{"zdeterminingequationssimplified", ",", 
     RowBox[{"{", 
      RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}],
   TraditionalForm],
  TraditionalForm,
  Editable->True]], "Input"],

Cell[BoxData[
 TagBox[GridBox[{
    {"True"},
    {
     RowBox[{
      RowBox[{"-", 
       RowBox[{
        SuperscriptBox["xse1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "0", ",", "2"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}]},
    {"True"},
    {
     RowBox[{
      RowBox[{
       RowBox[{"2", " ", 
        RowBox[{"xse1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{
        SuperscriptBox["eta1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "0", ",", "2"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "-", 
       RowBox[{"2", " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}]},
    {
     RowBox[{
      RowBox[{
       RowBox[{"4", " ", "z3", " ", 
        RowBox[{"eta1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"6", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{"eta1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{
         SuperscriptBox["eta1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"2", " ", 
        SuperscriptBox["z3", "3"], " ", 
        RowBox[{
         SuperscriptBox["eta1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{
        SuperscriptBox["eta1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "1", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "+", 
       RowBox[{"4", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"4", " ", 
        SuperscriptBox["z3", "3"], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        RowBox[{"eta1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{
        SuperscriptBox["eta1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"2", ",", "0", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}]},
    {
     RowBox[{
      RowBox[{
       RowBox[{"6", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"6", " ", 
        SuperscriptBox["z3", "3"], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        RowBox[{"eta1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{
        SuperscriptBox["xse1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "1", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "+", 
       RowBox[{"2", " ", 
        RowBox[{"xse1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"2", " ", 
        RowBox[{
         SuperscriptBox["eta1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{
        SuperscriptBox["xse1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"2", ",", "0", ",", "0"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469484162504966*^9, 3.471575744117588*^9, 
  3.4838044059343567`*^9}],

Cell[TextData[StyleBox["Note that the determining equations are nonlinear in \
this approach. The results above should be compared with Example 9.7 in the \
book \"Symmetry Methods for Differential Equations\", Cambridge Press by \
Peter Hydon. Now (knowing the answer) let's work to simplify these \
determining equations. Assume the infinitesimals xse1 and eta1 do not depend \
on x and t ",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationssimplified1", "=", 
   RowBox[{"zdeterminingequationssimplified", "/.", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1"}], "]"}], "->",
        "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z1"}],
         "]"}], "->", "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2"}], "]"}], "->",
        "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z3"}],
         "]"}], "->", "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2"}], "]"}], "->",
        "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z1"}],
         "]"}], "\[Rule]", "0"}]}], "}"}]}]}], 
  "\[IndentingNewLine]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"True", ",", 
   RowBox[{
    RowBox[{"-", 
     RowBox[{
      SuperscriptBox["xse1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}], ",", 
   "True", ",", 
   RowBox[{
    RowBox[{
     RowBox[{"2", " ", 
      RowBox[{"xse1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{
      SuperscriptBox["eta1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "0", ",", "2"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"4", " ", "z3", " ", 
      RowBox[{"eta1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{"6", " ", 
      SuperscriptBox["z3", "2"], " ", 
      RowBox[{"eta1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{"2", " ", 
      SuperscriptBox["z3", "2"], " ", 
      RowBox[{
       SuperscriptBox["eta1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{"2", " ", 
      SuperscriptBox["z3", "3"], " ", 
      RowBox[{
       SuperscriptBox["eta1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}], 
   ",", 
   RowBox[{
    RowBox[{
     RowBox[{"6", " ", 
      SuperscriptBox["z3", "2"], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{"6", " ", 
      SuperscriptBox["z3", "3"], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{"2", " ", 
      RowBox[{"eta1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{"2", " ", 
      RowBox[{
       SuperscriptBox["eta1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}]}], 
  "}"}]], "Output",
 CellChangeTimes->{3.469484162539236*^9, 3.471575744166044*^9, 
  3.483804405991084*^9}]
}, Open  ]],

Cell[BoxData[
 TagBox[
  FormBox[
   RowBox[{"Column", "[", 
    RowBox[{"zdeterminingequationssimplified1", ",", 
     RowBox[{"{", 
      RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}],
   TraditionalForm],
  TraditionalForm,
  Editable->True]], "Input"],

Cell[BoxData[
 TagBox[GridBox[{
    {"True"},
    {
     RowBox[{
      RowBox[{"-", 
       RowBox[{
        SuperscriptBox["xse1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "0", ",", "2"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}]},
    {"True"},
    {
     RowBox[{
      RowBox[{
       RowBox[{"2", " ", 
        RowBox[{"xse1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{
        SuperscriptBox["eta1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "0", ",", "2"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}]},
    {
     RowBox[{
      RowBox[{
       RowBox[{"4", " ", "z3", " ", 
        RowBox[{"eta1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"6", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{"eta1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{
         SuperscriptBox["eta1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"2", " ", 
        SuperscriptBox["z3", "3"], " ", 
        RowBox[{
         SuperscriptBox["eta1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}]},
    {
     RowBox[{
      RowBox[{
       RowBox[{"6", " ", 
        SuperscriptBox["z3", "2"], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"6", " ", 
        SuperscriptBox["z3", "3"], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
       RowBox[{"2", " ", 
        RowBox[{"eta1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
       RowBox[{"2", " ", 
        RowBox[{
         SuperscriptBox["eta1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469484162573083*^9, 3.471575744204262*^9, 
  3.483804406037138*^9}],

Cell[TextData[{
 StyleBox["Use ",
  FontWeight->"Plain"],
 StyleBox["Mathematica",
  FontWeight->"Plain",
  FontSlant->"Italic"],
 StyleBox[" to solve the first of these relations.",
  FontWeight->"Plain"]
}], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"DSolve", "[", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{"2", "*", 
      RowBox[{
       RowBox[{"eta", "'"}], "[", "z3", "]"}], "*", 
      RowBox[{"z3", "^", "3"}]}], "-", 
     RowBox[{"6", "*", 
      RowBox[{"eta", "[", "z3", "]"}], "*", 
      RowBox[{"z3", "^", "2"}]}], "-", 
     RowBox[{"2", "*", 
      RowBox[{
       RowBox[{"eta", "'"}], "[", "z3", "]"}], "*", 
      RowBox[{"z3", "^", "2"}]}], "+", 
     RowBox[{"4", "*", 
      RowBox[{"eta", "[", "z3", "]"}], "*", "z3"}]}], "\[Equal]", "0"}], ",", 
   
   RowBox[{"eta", "[", "z3", "]"}], ",", "z3"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"eta", "[", "z3", "]"}], "\[Rule]", 
    RowBox[{
     RowBox[{"(", 
      RowBox[{
       RowBox[{"-", "1"}], "+", "z3"}], ")"}], " ", 
     SuperscriptBox["z3", "2"], " ", 
     RowBox[{"C", "[", "1", "]"}]}]}], "}"}], "}"}]], "Output",
 CellChangeTimes->{3.469484162621708*^9, 3.471575744247595*^9, 
  3.483804406090028*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"eta1", "[", 
   RowBox[{"z1_", ",", "z2_", ",", "z3_"}], "]"}], ":=", 
  RowBox[{
   RowBox[{"a", "*", 
    RowBox[{"z3", "^", "2"}]}], "-", 
   RowBox[{"a", "*", 
    RowBox[{"z3", "^", "3"}]}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationssimplified2", "=", 
   RowBox[{"Simplify", "[", "zdeterminingequationssimplified1", "]"}]}], 
  ";"}]], "Input"],

Cell[BoxData[
 TagBox[
  FormBox[
   RowBox[{"Column", "[", 
    RowBox[{"zdeterminingequationssimplified2", ",", 
     RowBox[{"{", 
      RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}],
   TraditionalForm],
  TraditionalForm,
  Editable->True]], "Input"],

Cell[BoxData[
 TagBox[GridBox[{
    {"True"},
    {
     RowBox[{
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "2"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "\[Equal]", "0"}]},
    {"True"},
    {
     RowBox[{
      RowBox[{"3", " ", "a", " ", "z3"}], "\[Equal]", 
      RowBox[{"a", "+", 
       RowBox[{
        RowBox[{"xse1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}]}]},
    {"True"},
    {
     RowBox[{
      RowBox[{
       RowBox[{"(", 
        RowBox[{
         RowBox[{"-", "3"}], "+", "a"}], ")"}], " ", 
       RowBox[{"(", 
        RowBox[{
         RowBox[{"-", "1"}], "+", "z3"}], ")"}], " ", "z3", " ", 
       RowBox[{
        SuperscriptBox["xse1", 
         TagBox[
          RowBox[{"(", 
           RowBox[{"0", ",", "0", ",", "1"}], ")"}],
          Derivative],
         MultilineFunction->None], "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469484162704339*^9, 3.4715757443487673`*^9, 
  3.483804406201536*^9}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"zdeterminingequationssimplified3", "=", 
  RowBox[{"zdeterminingequationssimplified2", "/.", 
   RowBox[{"{", 
    RowBox[{"a", "\[Rule]", "3"}], "}"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"True", ",", 
   RowBox[{
    RowBox[{
     SuperscriptBox["xse1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "0", ",", "2"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "\[Equal]", "0"}], ",", 
   "True", ",", 
   RowBox[{
    RowBox[{"9", " ", "z3"}], "\[Equal]", 
    RowBox[{"3", "+", 
     RowBox[{
      RowBox[{"xse1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}]}], ",", "True", ",", 
   "True"}], "}"}]], "Output",
 CellChangeTimes->{3.469484162739739*^9, 3.471575744382905*^9, 
  3.483804406240745*^9}]
}, Open  ]],

Cell[BoxData[
 TagBox[
  FormBox[
   RowBox[{"Column", "[", 
    RowBox[{"zdeterminingequationssimplified3", ",", 
     RowBox[{"{", 
      RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}],
   TraditionalForm],
  TraditionalForm,
  Editable->True]], "Input"],

Cell[BoxData[
 TagBox[GridBox[{
    {"True"},
    {
     RowBox[{
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "2"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "\[Equal]", "0"}]},
    {"True"},
    {
     RowBox[{
      RowBox[{"9", " ", "z3"}], "\[Equal]", 
      RowBox[{"3", "+", 
       RowBox[{
        RowBox[{"xse1", "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "[", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}]}]},
    {"True"},
    {"True"}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.4694841627733707`*^9, 3.4715757444371557`*^9, 
  3.483804406287203*^9}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"DSolve", "[", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{"-", "9"}], "*", "z3"}], "+", 
     RowBox[{
      RowBox[{"xse", "[", "z3", "]"}], "*", 
      RowBox[{
       RowBox[{"xse", "'"}], "[", "z3", "]"}]}], "+", "3"}], "\[Equal]", 
    "0"}], ",", 
   RowBox[{"xse", "[", "z3", "]"}], ",", "z3"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"xse", "[", "z3", "]"}], "\[Rule]", 
     RowBox[{
      RowBox[{"-", 
       SqrtBox["2"]}], " ", 
      SqrtBox[
       RowBox[{
        RowBox[{
         RowBox[{"-", "3"}], " ", "z3"}], "+", 
        FractionBox[
         RowBox[{"9", " ", 
          SuperscriptBox["z3", "2"]}], "2"], "+", 
        RowBox[{"C", "[", "1", "]"}]}]]}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"xse", "[", "z3", "]"}], "\[Rule]", 
     RowBox[{
      SqrtBox["2"], " ", 
      SqrtBox[
       RowBox[{
        RowBox[{
         RowBox[{"-", "3"}], " ", "z3"}], "+", 
        FractionBox[
         RowBox[{"9", " ", 
          SuperscriptBox["z3", "2"]}], "2"], "+", 
        RowBox[{"C", "[", "1", "]"}]}]]}]}], "}"}]}], "}"}]], "Output",
 CellChangeTimes->{3.469484162812543*^9, 3.471575744481889*^9, 
  3.48380440634186*^9}]
}, Open  ]],

Cell[TextData[StyleBox["The only value of the constant of integration that \
provides a solution that satisfies the last equation just above is C=1. \
Finally",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"xse1", "[", 
   RowBox[{"z1_", ",", "z2_", ",", "z3_"}], "]"}], "=", 
  RowBox[{"\[PlusMinus]", 
   RowBox[{"(", 
    RowBox[{
     RowBox[{"3", "*", "z3"}], "-", "1"}], ")"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{"\[PlusMinus]", 
  RowBox[{"(", 
   RowBox[{
    RowBox[{"-", "1"}], "+", 
    RowBox[{"3", " ", "z3"}]}], ")"}]}]], "Output",
 CellChangeTimes->{3.4694841628394947`*^9, 3.4715757445199137`*^9, 
  3.4838044063872223`*^9}]
}, Open  ]],

Cell[TextData[StyleBox["Check this result. ",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Expand", "[", "zdeterminingequationssimplified3", "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"True", ",", 
   RowBox[{
    RowBox[{"9", " ", 
     RowBox[{
      SuperscriptBox["PlusMinus", "\[Prime]\[Prime]",
       MultilineFunction->None], "[", 
      RowBox[{
       RowBox[{"-", "1"}], "+", 
       RowBox[{"3", " ", "z3"}]}], "]"}]}], "\[Equal]", "0"}], ",", "True", 
   ",", 
   RowBox[{
    RowBox[{"9", " ", "z3"}], "\[Equal]", 
    RowBox[{"3", "+", 
     RowBox[{"3", " ", 
      RowBox[{"(", 
       RowBox[{"\[PlusMinus]", 
        RowBox[{"(", 
         RowBox[{
          RowBox[{"-", "1"}], "+", 
          RowBox[{"3", " ", "z3"}]}], ")"}]}], ")"}], " ", 
      RowBox[{
       SuperscriptBox["PlusMinus", "\[Prime]",
        MultilineFunction->None], "[", 
       RowBox[{
        RowBox[{"-", "1"}], "+", 
        RowBox[{"3", " ", "z3"}]}], "]"}]}]}]}], ",", "True", ",", "True"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.469484162872592*^9, 3.471575744552656*^9, 
  3.4838044065188847`*^9}]
}, Open  ]],

Cell[TextData[StyleBox["This confirms the nonclassical symmetry,",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[TextData[{
 "xse1[z1, z2, z3_]:=\[PlusMinus](3*z3-1)\nxse2[z1, z2, z3]:=1\neta1[z1, z2, \
z3]:=3*z3^2-3*z3^3\n\nwith group operator\n\nX=\[PlusMinus](3*U-1)",
 StyleBox["(\[PartialD]/\[PartialD]x)+(\[PartialD]/\[PartialD]t)+(",
  FontWeight->"Plain"],
 "3*U^2-3*U^3",
 StyleBox[")(\[PartialD]/\[PartialD]U)=0.",
  FontWeight->"Plain"]
}], "Text"],

Cell[TextData[StyleBox["Let's check this result in the original invariance \
condition.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

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

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

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

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"xse1", "[", 
   RowBox[{"z1_", ",", "z2_", ",", "z3_"}], "]"}], "=", 
  RowBox[{"(", 
   RowBox[{
    RowBox[{"3", "*", "z3"}], "-", "1"}], ")"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"-", "1"}], "+", 
  RowBox[{"3", " ", "z3"}]}]], "Output",
 CellChangeTimes->{3.469484163038076*^9, 3.471575744664963*^9, 
  3.483804406651916*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"xse2", "[", 
   RowBox[{"z1_", ",", "z2_", ",", "z3_"}], "]"}], "=", "1"}]], "Input"],

Cell[BoxData["1"], "Output",
 CellChangeTimes->{3.469484163073522*^9, 3.471575744782651*^9, 
  3.4838044067091846`*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"eta1", "[", 
   RowBox[{"z1_", ",", "z2_", ",", "z3_"}], "]"}], ":=", 
  RowBox[{
   RowBox[{"3", "*", 
    RowBox[{"z3", "^", "2"}]}], "-", 
   RowBox[{"3", "*", 
    RowBox[{"z3", "^", "3"}]}]}]}]], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"eta1noderiv", "=", 
  RowBox[{
   RowBox[{"3", "*", 
    RowBox[{
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], "^", "2"}]}], "-", 
   RowBox[{"3", "*", 
    RowBox[{
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], "^", "3"}]}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"3", " ", 
   SuperscriptBox[
    RowBox[{"y1", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "-", 
  RowBox[{"3", " ", 
   SuperscriptBox[
    RowBox[{"y1", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "3"]}]}]], "Output",
 CellChangeTimes->{3.469484163140457*^9, 3.471575744832263*^9, 
  3.483804406785701*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
eta1t=PthInfinitesimal[
n,m,yindex=1,plocal=1,r,xseon,j1=2]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"6", " ", 
   RowBox[{"y1", "[", 
    RowBox[{"x1", ",", "x2"}], "]"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"9", " ", 
   SuperscriptBox[
    RowBox[{"y1", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "2"], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"3", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469484163174878*^9, 3.47157574486977*^9, 
  3.483804406843313*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
eta1xx=PthInfinitesimal[
n,m,yindex=1,plocal=2,r,xseon,j1=1,j2=1]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"6", " ", 
   SuperscriptBox[
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "-", 
  RowBox[{"18", " ", 
   RowBox[{"y1", "[", 
    RowBox[{"x1", ",", "x2"}], "]"}], " ", 
   SuperscriptBox[
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "+", 
  RowBox[{"6", " ", 
   RowBox[{"y1", "[", 
    RowBox[{"x1", ",", "x2"}], "]"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"2", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"9", " ", 
   SuperscriptBox[
    RowBox[{"y1", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "2"], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"2", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"9", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"2", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.4694841632084217`*^9, 3.4715757449047318`*^9, 
  3.483804406894603*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
invariancecondcoefficients={
0,0,eta1noderiv,0,eta1t,eta1xx,0,0}\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", 
   RowBox[{
    RowBox[{"3", " ", 
     SuperscriptBox[
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "-", 
    RowBox[{"3", " ", 
     SuperscriptBox[
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], "3"]}]}], ",", "0", ",", 
   RowBox[{
    RowBox[{"6", " ", 
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"9", " ", 
     SuperscriptBox[
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], "2"], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"3", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", 
   RowBox[{
    RowBox[{"6", " ", 
     SuperscriptBox[
      RowBox[{
       SuperscriptBox["y1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "-", 
    RowBox[{"18", " ", 
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], " ", 
     SuperscriptBox[
      RowBox[{
       SuperscriptBox["y1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "+", 
    RowBox[{"6", " ", 
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"2", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"9", " ", 
     SuperscriptBox[
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], "2"], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"2", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{"9", " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"2", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", "0", ",", "0"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.4694841632415733`*^9, 3.471575744938364*^9, 
  3.483804406940394*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell["\<\
invarianceconditionsum=
Expand[
invarconditiontable.invariancecondcoefficients]/.
{D[y1[x1,x2],x1,x1]->D[y1[x1,x2],x2]-2*y1[x1,x2]^2+2*y1[x1,x2]^3}\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"12", " ", 
   SuperscriptBox[
    RowBox[{"y1", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "3"]}], "-", 
  RowBox[{"30", " ", 
   SuperscriptBox[
    RowBox[{"y1", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "4"]}], "+", 
  RowBox[{"18", " ", 
   SuperscriptBox[
    RowBox[{"y1", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "5"]}], "-", 
  RowBox[{"6", " ", 
   RowBox[{"y1", "[", 
    RowBox[{"x1", ",", "x2"}], "]"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
  RowBox[{"9", " ", 
   SuperscriptBox[
    RowBox[{"y1", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "2"], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
  RowBox[{"6", " ", 
   RowBox[{"y1", "[", 
    RowBox[{"x1", ",", "x2"}], "]"}], " ", 
   RowBox[{"(", 
    RowBox[{
     RowBox[{
      RowBox[{"-", "2"}], " ", 
      SuperscriptBox[
       RowBox[{"y1", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "+", 
     RowBox[{"2", " ", 
      SuperscriptBox[
       RowBox[{"y1", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], "3"]}], "+", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], ")"}]}], "-", 
  RowBox[{"9", " ", 
   SuperscriptBox[
    RowBox[{"y1", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "2"], " ", 
   RowBox[{"(", 
    RowBox[{
     RowBox[{
      RowBox[{"-", "2"}], " ", 
      SuperscriptBox[
       RowBox[{"y1", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "+", 
     RowBox[{"2", " ", 
      SuperscriptBox[
       RowBox[{"y1", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], "3"]}], "+", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], ")"}]}], "+", 
  RowBox[{"3", " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"9", " ", 
   RowBox[{"(", 
    RowBox[{
     RowBox[{
      RowBox[{"-", "2"}], " ", 
      SuperscriptBox[
       RowBox[{"y1", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "+", 
     RowBox[{"2", " ", 
      SuperscriptBox[
       RowBox[{"y1", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], "3"]}], "+", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], ")"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
  RowBox[{"6", " ", 
   SuperscriptBox[
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "-", 
  RowBox[{"18", " ", 
   RowBox[{"y1", "[", 
    RowBox[{"x1", ",", "x2"}], "]"}], " ", 
   SuperscriptBox[
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "2"]}]}]], "Output",
 CellChangeTimes->{3.4694841632757072`*^9, 3.4715757449860573`*^9, 
  3.483804406995728*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{
  RowBox[{"-", "6"}], " ", 
  RowBox[{
   SuperscriptBox["y1", 
    TagBox[
     RowBox[{"(", 
      RowBox[{"1", ",", "0"}], ")"}],
     Derivative],
    MultilineFunction->None], "[", 
   RowBox[{"x1", ",", "x2"}], "]"}], " ", 
  RowBox[{"(", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "3"}], " ", 
     SuperscriptBox[
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "+", 
    RowBox[{"3", " ", 
     SuperscriptBox[
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], "3"]}], "+", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "1"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "-", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "+", 
    RowBox[{"3", " ", 
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ")"}]}]], "Output",
 CellChangeTimes->{3.4694841633088093`*^9, 3.471575745022294*^9, 
  3.483804407039167*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"%", "/.", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"D", "[", 
     RowBox[{
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], ",", "x2"}], "]"}], "\[Rule]", 
    RowBox[{
     RowBox[{"3", "*", 
      RowBox[{
       RowBox[{"y1", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], "^", "2"}]}], "-", 
     RowBox[{"3", "*", 
      RowBox[{
       RowBox[{"y1", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], "^", "3"}]}], "-", 
     RowBox[{
      RowBox[{"(", 
       RowBox[{
        RowBox[{"3", "*", 
         RowBox[{"y1", "[", 
          RowBox[{"x1", ",", "x2"}], "]"}]}], "-", "1"}], ")"}], "*", 
      RowBox[{"D", "[", 
       RowBox[{
        RowBox[{"y1", "[", 
         RowBox[{"x1", ",", "x2"}], "]"}], ",", "x1"}], "]"}]}]}]}], 
   "}"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"-", "6"}], " ", 
  RowBox[{
   SuperscriptBox["y1", 
    TagBox[
     RowBox[{"(", 
      RowBox[{"1", ",", "0"}], ")"}],
     Derivative],
    MultilineFunction->None], "[", 
   RowBox[{"x1", ",", "x2"}], "]"}], " ", 
  RowBox[{"(", 
   RowBox[{
    RowBox[{"-", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
    RowBox[{"3", " ", 
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{
     RowBox[{"(", 
      RowBox[{
       RowBox[{"-", "1"}], "+", 
       RowBox[{"3", " ", 
        RowBox[{"y1", "[", 
         RowBox[{"x1", ",", "x2"}], "]"}]}]}], ")"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ")"}]}]], "Output",
 CellChangeTimes->{3.469484163341531*^9, 3.4715757450719347`*^9, 
  3.483804407094844*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData["0"], "Output",
 CellChangeTimes->{3.4694841633744383`*^9, 3.471575745104743*^9, 
  3.4838044071529493`*^9}]
}, Open  ]],

Cell[TextData[StyleBox["The equation is indeed invariant under the \
nonclassical symmetry",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[TextData[{
 "xse1[z1, z2, z3_]:=\[PlusMinus](3*z3-1)\nxse2[z1, z2, z3]:=1\neta1[z1, z2, \
z3]:=3*z3^2-3*z3^3\n\nwith group operator\n\nX=\[PlusMinus](3*U-1)",
 StyleBox["(\[PartialD]/\[PartialD]x)+(\[PartialD]/\[PartialD]t)+(",
  FontWeight->"Plain"],
 "3*U^2-3*U^3",
 StyleBox[")(\[PartialD]/\[PartialD]U)=0.\nNote that this symmetry holds only \
over the subset of solutions that satisfy the condition XU=0.\n",
  FontWeight->"Plain"]
}], "Text"],

Cell[CellGroupData[{

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

Cell[BoxData["864633528"], "Output",
 CellChangeTimes->{3.469484163412786*^9, 3.471575745137692*^9, 
  3.483804407220416*^9}]
}, Open  ]]
},
WindowToolbars->{},
CellGrouping->Manual,
WindowSize->{962, 982},
WindowMargins->{{51, Automatic}, {Automatic, 27}},
PrintingCopies->1,
PrintingPageRange->{1, Automatic},
PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}},
ShowCellLabel->True,
ShowCellTags->False,
RenderingOptions->{"ObjectDithering"->True,
"RasterDithering"->False},
MacintoshSystemPageSetup -> \
"0080009H0UP0000068dB`?oHofXIX1=F;B<5:0?l00;m009H0UP0000068dB`0B`\n\
02d5X5k/02H80@4101P00BL?00400C[3YT0000000000P0010000020D00000000\n\
000000?l1BP00000000004T40000200<",
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, 523, 14, 138, "Text"],
Cell[1071, 36, 124, 1, 32, "Text"],
Cell[1198, 39, 160, 4, 33, "Input"],
Cell[1361, 45, 476, 13, 32, "Text"],
Cell[1840, 60, 101, 2, 33, "Input"],
Cell[1944, 64, 163, 3, 32, "Text"],
Cell[2110, 69, 150, 5, 53, "Input"],
Cell[2263, 76, 257, 4, 51, "Text"],
Cell[2523, 82, 185, 5, 53, "Input"],
Cell[2711, 89, 130, 2, 32, "Text"],
Cell[2844, 93, 151, 4, 33, "Input"],
Cell[2998, 99, 128, 2, 32, "Text"],
Cell[3129, 103, 116, 3, 33, "Input"],
Cell[3248, 108, 228, 4, 32, "Text"],
Cell[3479, 114, 96, 3, 33, "Input"],
Cell[3578, 119, 152, 3, 32, "Text"],
Cell[3733, 124, 67, 2, 33, "Input"],
Cell[3803, 128, 385, 6, 70, "Text"],
Cell[4191, 136, 67, 2, 33, "Input"],
Cell[4261, 140, 509, 7, 89, "Text"],
Cell[4773, 149, 71, 2, 33, "Input"],
Cell[4847, 153, 576, 8, 89, "Text"],
Cell[5426, 163, 79, 2, 33, "Input"],
Cell[5508, 167, 268, 4, 51, "Text"],
Cell[CellGroupData[{
Cell[5801, 175, 302, 6, 53, "Input"],
Cell[6106, 183, 446, 9, 45, "Print"],
Cell[6555, 194, 1008, 14, 197, "Print"],
Cell[7566, 210, 681, 12, 64, "Print"],
Cell[8250, 224, 393, 8, 25, "Print"],
Cell[8646, 234, 1008, 14, 216, "Print"],
Cell[9657, 250, 184, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[9878, 259, 50, 0, 33, "Input"],
Cell[9931, 261, 188, 3, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[10156, 269, 45, 0, 33, "Input"],
Cell[10204, 271, 466, 13, 42, "Output"]
}, Open  ]],
Cell[10685, 287, 39, 0, 33, "Input"],
Cell[10727, 289, 321, 9, 33, "Output"],
Cell[CellGroupData[{
Cell[11073, 302, 279, 4, 51, "Text"],
Cell[11355, 308, 47, 0, 33, "Input"],
Cell[11405, 310, 1454, 24, 281, "Output"]
}, Open  ]],
Cell[12874, 337, 57, 0, 32, "Text"],
Cell[CellGroupData[{
Cell[12956, 341, 78, 1, 33, "Input"],
Cell[13037, 344, 119, 2, 33, "Output"]
}, Open  ]],
Cell[13171, 349, 528, 11, 145, "Text"],
Cell[CellGroupData[{
Cell[13724, 364, 296, 6, 53, "Input"],
Cell[14023, 372, 857, 14, 83, "Print"],
Cell[14883, 388, 419, 6, 83, "Print"],
Cell[15305, 396, 312, 6, 25, "Print"],
Cell[15620, 404, 300, 6, 25, "Print"],
Cell[15923, 412, 323, 7, 25, "Print"],
Cell[16249, 421, 299, 4, 45, "Print"],
Cell[16551, 427, 312, 6, 25, "Print"],
Cell[16866, 435, 144, 2, 25, "Print"],
Cell[17013, 439, 188, 3, 25, "Print"],
Cell[17204, 444, 336, 7, 25, "Print"],
Cell[17543, 453, 1067, 14, 235, "Print"],
Cell[18613, 469, 185, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[18835, 478, 184, 3, 32, "Text"],
Cell[19022, 483, 38, 0, 33, "Input"],
Cell[19063, 485, 226, 5, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[19326, 495, 141, 2, 32, "Text"],
Cell[19470, 499, 38, 0, 33, "Input"],
Cell[19511, 501, 167, 3, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[19715, 509, 268, 7, 33, "Input"],
Cell[19986, 518, 420, 14, 33, "Output"]
}, Open  ]],
Cell[20421, 535, 32, 0, 32, "Text"],
Cell[20456, 537, 78, 1, 33, "Input"],
Cell[20537, 540, 573, 19, 53, "Output"],
Cell[21113, 561, 124, 2, 32, "Text"],
Cell[21240, 565, 190, 4, 53, "Input"],
Cell[21433, 571, 504, 7, 102, "Print"],
Cell[21940, 580, 132, 2, 32, "Text"],
Cell[CellGroupData[{
Cell[22097, 586, 112, 2, 33, "Input"],
Cell[22212, 590, 3466, 95, 107, "Output"]
}, Open  ]],
Cell[25693, 688, 696, 10, 145, "Text"],
Cell[26392, 700, 299, 7, 72, "Input"],
Cell[26694, 709, 161, 5, 33, "Input"],
Cell[CellGroupData[{
Cell[26880, 718, 305, 6, 53, "Input"],
Cell[27188, 726, 443, 9, 45, "Print"],
Cell[27634, 737, 1006, 14, 197, "Print"],
Cell[28643, 753, 700, 12, 64, "Print"],
Cell[29346, 767, 412, 8, 45, "Print"],
Cell[29761, 777, 1008, 14, 216, "Print"],
Cell[30772, 793, 184, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[30993, 802, 47, 0, 33, "Input"],
Cell[31043, 804, 2100, 32, 471, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[33180, 841, 79, 1, 33, "Input"],
Cell[33262, 844, 118, 2, 33, "Output"]
}, Open  ]],
Cell[33395, 849, 287, 10, 33, "Input"],
Cell[33685, 861, 12197, 357, 455, "Output"],
Cell[45885, 1220, 187, 3, 32, "Text"],
Cell[46075, 1225, 194, 5, 33, "Input"],
Cell[46272, 1232, 194, 5, 33, "Input"],
Cell[46469, 1239, 121, 3, 33, "Input"],
Cell[46593, 1244, 160, 4, 33, "Input"],
Cell[46756, 1250, 255, 9, 33, "Input"],
Cell[47014, 1261, 6627, 198, 261, "Output"],
Cell[53644, 1461, 457, 7, 70, "Text"],
Cell[CellGroupData[{
Cell[54126, 1472, 1415, 42, 91, "Input"],
Cell[55544, 1516, 3449, 109, 142, "Output"]
}, Open  ]],
Cell[59008, 1628, 256, 9, 33, "Input"],
Cell[59267, 1639, 3798, 115, 193, "Output"],
Cell[63068, 1756, 249, 9, 32, "Text"],
Cell[CellGroupData[{
Cell[63342, 1769, 620, 19, 53, "Input"],
Cell[63965, 1790, 396, 12, 42, "Output"]
}, Open  ]],
Cell[64376, 1805, 244, 8, 33, "Input"],
Cell[64623, 1815, 168, 4, 33, "Input"],
Cell[64794, 1821, 256, 9, 33, "Input"],
Cell[65053, 1832, 1619, 52, 141, "Output"],
Cell[CellGroupData[{
Cell[66697, 1888, 190, 4, 33, "Input"],
Cell[66890, 1894, 915, 29, 69, "Output"]
}, Open  ]],
Cell[67820, 1926, 256, 9, 33, "Input"],
Cell[68079, 1937, 1113, 36, 137, "Output"],
Cell[CellGroupData[{
Cell[69217, 1977, 364, 12, 33, "Input"],
Cell[69584, 1991, 912, 31, 66, "Output"]
}, Open  ]],
Cell[70511, 2025, 224, 4, 32, "Text"],
Cell[CellGroupData[{
Cell[70760, 2033, 225, 7, 33, "Input"],
Cell[70988, 2042, 244, 7, 33, "Output"]
}, Open  ]],
Cell[71247, 2052, 109, 2, 32, "Text"],
Cell[CellGroupData[{
Cell[71381, 2058, 90, 1, 33, "Input"],
Cell[71474, 2061, 959, 30, 64, "Output"]
}, Open  ]],
Cell[72448, 2094, 130, 2, 32, "Text"],
Cell[72581, 2098, 351, 8, 145, "Text"],
Cell[72935, 2108, 153, 3, 32, "Text"],
Cell[73091, 2113, 67, 2, 33, "Input"],
Cell[73161, 2117, 67, 2, 33, "Input"],
Cell[73231, 2121, 67, 2, 33, "Input"],
Cell[CellGroupData[{
Cell[73323, 2127, 193, 6, 33, "Input"],
Cell[73519, 2135, 181, 5, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[73737, 2145, 120, 3, 33, "Input"],
Cell[73860, 2150, 119, 2, 33, "Output"]
}, Open  ]],
Cell[73994, 2155, 244, 8, 33, "Input"],
Cell[CellGroupData[{
Cell[74263, 2167, 302, 10, 33, "Input"],
Cell[74568, 2179, 353, 11, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[74958, 2195, 116, 4, 50, "Input"],
Cell[75077, 2201, 1188, 43, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[76302, 2249, 122, 4, 50, "Input"],
Cell[76427, 2255, 1793, 65, 65, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[78257, 2325, 121, 4, 50, "Input"],
Cell[78381, 2331, 3433, 118, 128, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[81851, 2454, 204, 6, 82, "Input"],
Cell[82058, 2462, 4222, 150, 147, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[86317, 2617, 60, 1, 33, "Input"],
Cell[86380, 2620, 1417, 50, 67, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[87834, 2675, 805, 27, 53, "Input"],
Cell[88642, 2704, 1378, 49, 67, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[90057, 2758, 61, 1, 33, "Input"],
Cell[90121, 2761, 121, 2, 33, "Output"]
}, Open  ]],
Cell[90257, 2766, 156, 3, 32, "Text"],
Cell[90416, 2771, 453, 9, 182, "Text"],
Cell[CellGroupData[{
Cell[90894, 2784, 66, 1, 33, "Input"],
Cell[90963, 2787, 125, 2, 33, "Output"]
}, Open  ]]
}
]
*)

(* End of internal cache information *)
