(* 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[     51398,       1382]
NotebookOptionsPosition[     47132,       1248]
NotebookOutlinePosition[     47910,       1275]
CellTagsIndexPosition[     47867,       1272]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[TextData[StyleBox["In this example we use the package IntroToSymmetry.m \
to work out the point group of the Harry Dym equation, \n\nU^3*Uxxx-Ut=0.",
 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",\

 CellChangeTimes->{{3.4715664380286417`*^9, 3.471566443307003*^9}, {
  3.4715664752353897`*^9, 3.471566479873062*^9}}],

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",
 CellChangeTimes->{3.4720481343957987`*^9},
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{
  "harrydymequation", "=", "\n", 
   "\"\<u[x,t]^3*D[u[x,t],x,x,x]-D[u[x,t],t]\>\""}], ";"}]], "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],t]\[Rule]u[x,t]^3*D[u[x,t],x,x,x]\>\"", "}"}]}],
   ";"}]], "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.",
 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 \ninput \
equation(s).",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"p", "=", "3"}], ";"}]], "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[{"rorder", "=", "0"}], ";"}]], "Input",
 CellChangeTimes->{{3.47156311345313*^9, 3.47156311443541*^9}}],

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", ",", "rorder", ",", "xseon", ",", "harrydymequation", ",", 
    "rulesarray", ",", "internalrules"}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.471563139451397*^9, 3.471563140371785*^9}}],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(26953992\\), the time used = \\!\\(1.040625`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 26953992, 1.040625],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471610994323*^9, 3.4715631891226254`*^9, 
  3.471563275572445*^9, 3.4715795686125174`*^9, 3.47537572754674*^9, 
  3.483747277941231*^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.469471610994323*^9, 3.4715631891226254`*^9, 
  3.471563275572445*^9, 3.4715795686125174`*^9, 3.47537572754674*^9, 
  3.483747278014132*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(20\\), the \
byte count of zdeterminingequations = \\!\\(2416\\), the memory in use = \
\\!\\(27060424\\), the time used = \\!\\(1.139456`\\)\"\>",
  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 = ``", 20, 2416, 27060424, 
   1.139456],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471610994323*^9, 3.4715631891226254`*^9, 
  3.471563275572445*^9, 3.4715795686125174`*^9, 3.47537572754674*^9, 
  3.4837472780477667`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(27061480\\), the time used = \\!\\(1.1398409999999999`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 27061480, 1.1398409999999999`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471610994323*^9, 3.4715631891226254`*^9, 
  3.471563275572445*^9, 3.4715795686125174`*^9, 3.47537572754674*^9, 
  3.483747278049683*^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.469471610994323*^9, 3.4715631891226254`*^9, 
  3.471563275572445*^9, 3.4715795686125174`*^9, 3.47537572754674*^9, 
  3.4837472780513363`*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.10007300000000008`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469471611145377*^9, 3.471563189329514*^9, 
  3.471563275681185*^9, 3.4715795690890207`*^9, 3.475375727840966*^9, 
  3.483747278053809*^9}]
}, Open  ]],

Cell[TextData[StyleBox["Let's look at the partial derivatives of the equation \
that appear in the invariance condition.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", 
   RowBox[{"3", " ", 
    SuperscriptBox[
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], "2"], " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"3", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], ",", "0", ",", 
   RowBox[{"-", "1"}], ",", "0", ",", "0", ",", "0", ",", 
   SuperscriptBox[
    RowBox[{"y1", "[", 
     RowBox[{"x1", ",", "x2"}], "]"}], "3"], ",", "0", ",", "0", ",", "0"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.469471611185835*^9, 3.471563189420904*^9, 
  3.471563275710121*^9, 3.471579569160314*^9, 3.47537572793918*^9, 
  3.483747278098276*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[StyleBox["The program expresses the determining equations in \
terms of zvariables. Here is the correspondence between z-variables and \
conventional variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

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.469471611233698*^9, 3.4715631894968767`*^9, 
  3.471563275748433*^9, 3.471579569278459*^9, 3.475375728011241*^9, 
  3.483747278147797*^9}]
}, Open  ]],

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[{"\<\"-3*z3^3*Derivative[0, 0, 1][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-3*z3^3*Derivative[0, 0, 1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-6*z3^3*Derivative[0, 0, 2][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-3*z3^3*Derivative[0, 0, 2][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-3*z3^6*Derivative[0, 0, 2][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-(z3^3*Derivative[0, 0, 3][xse1][z1, z2, z3]) == 0\"\>", 
   ",", "\<\"-(z3^6*Derivative[0, 0, 3][xse2][z1, z2, z3]) == 0\"\>", 
   ",", "\<\"-3*z3^3*Derivative[1, 0, 0][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"3*z3^3*Derivative[0, 0, 2][eta1][z1, z2, z3] - \
9*z3^3*Derivative[1, 0, 1][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-6*z3^3*Derivative[1, 0, 1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-3*z3^6*Derivative[1, 0, 1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"z3^3*Derivative[0, 0, 3][eta1][z1, z2, z3] - \
3*z3^3*Derivative[1, 0, 2][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-3*z3^6*Derivative[1, 0, 2][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"3*z3^3*Derivative[1, 0, 1][eta1][z1, z2, z3] - \
3*z3^3*Derivative[2, 0, 0][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-3*z3^3*Derivative[2, 0, 0][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"3*z3^3*Derivative[1, 0, 2][eta1][z1, z2, z3] - \
3*z3^3*Derivative[2, 0, 1][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-3*z3^3*Derivative[0, 0, 1][xse1][z1, z2, z3] - \
3*z3^6*Derivative[2, 0, 1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-Derivative[0, 1, 0][eta1][z1, z2, z3] + z3^3*Derivative[3, 0, \
0][eta1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"Derivative[0, 1, 0][xse1][z1, z2, z3] + 3*z3^3*Derivative[2, 0, \
1][eta1][z1, z2, z3] - z3^3*Derivative[3, 0, 0][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"3*z3^2*eta1[z1, z2, z3] + z3^3*Derivative[0, 1, 0][xse2][z1, z2, \
z3] - 3*z3^3*Derivative[1, 0, 0][xse1][z1, z2, z3] - z3^6*Derivative[3, 0, \
0][xse2][z1, z2, z3] == 0\"\>"}], "}"}]], "Output",
 CellChangeTimes->{3.4694716112876463`*^9, 3.4715631895799522`*^9, 
  3.4715632757778387`*^9, 3.471579569445408*^9, 3.475375728094577*^9, 
  3.48374727819912*^9}]
}, Open  ]],

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

Cell[CellGroupData[{

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

Cell[BoxData["20"], "Output",
 CellChangeTimes->{3.469471611333374*^9, 3.4715631896692543`*^9, 
  3.471563275814951*^9, 3.471579569535898*^9, 3.475375728261538*^9, 
  3.483747278243243*^9}]
}, Open  ]],

Cell["\<\
Now solve the determining equations in terms of multivariable polynomials of \
a selected order. 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", ",", "rorder", ",", 
    "xseon", ",", "\[IndentingNewLine]", "zdeterminingequations", ",", 
    RowBox[{"order", "=", "4"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.4715632101035624`*^9, 3.4715632111588717`*^9}}],

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 = \\!\\(35\\)\"\>",
  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 = ``", 35],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.483747278301962*^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.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.483747278304262*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(27259064\\), The time = \\!\
\\(1.182562`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 27259064, 1.182562],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.483747278305512*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of unknown polynomial coefficients = \
\\!\\(105\\)\"\>",
  StringForm["The number of unknown polynomial coefficients = ``", 105],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.4837472783067007`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(201\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 201],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.4837472783079367`*^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.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.483747278309431*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(27269272\\), The time = \\!\
\\(1.1893139999999998`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 27269272, 1.1893139999999998`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.483747278310631*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.483747278311804*^9}],

Cell[BoxData["\<\"The function SolveDeterminingEquations is finished \
executing.\"\>"], "Print",
 CellChangeTimes->{3.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.483747278313119*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(27287392\\), The time = \\!\
\\(1.1959859999999998`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 27287392, 1.1959859999999998`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.483747278314286*^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.469471611390995*^9, 3.471563189869875*^9, 
  3.471563228340291*^9, 3.471563275844057*^9, 3.471579569615075*^9, 
  3.475375728365464*^9, 3.4837472783162613`*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.05265899999999979`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469471611532152*^9, 3.471563190800056*^9, 
  3.471563228421197*^9, 3.471563275894824*^9, 3.47157956965526*^9, 
  3.475375728433852*^9, 3.4837472783174334`*^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[
 RowBox[{"xsefunctions", ";"}]], "Input",
 CellChangeTimes->{3.4715632451495047`*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"etafunctions", ";"}]], "Input",
 CellChangeTimes->{3.471563251259406*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[StyleBox["Express the xse functions in terms of x,y variables.",
 
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"a10", "+", 
    RowBox[{
     RowBox[{"(", 
      RowBox[{
       FractionBox["a25", "3"], "+", "b115"}], ")"}], " ", "x"}], "+", 
    FractionBox[
     RowBox[{"b116", " ", 
      SuperscriptBox["x", "2"]}], "2"]}], ",", 
   RowBox[{"a20", "+", 
    RowBox[{"a25", " ", "t"}]}]}], "}"}]], "Output",
 CellChangeTimes->{3.4694716118638067`*^9, 3.471563191045217*^9, 
  3.4715632759938173`*^9, 3.471579569762361*^9, 3.4753757285462914`*^9, 
  3.483747278427313*^9}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

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

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"b115", " ", "u"}], "+", 
   RowBox[{"b116", " ", "u", " ", "x"}]}], "}"}]], "Output",
 CellChangeTimes->{3.469471611935376*^9, 3.471563191109654*^9, 
  3.4715632760481853`*^9, 3.471579569807557*^9, 3.475375728586433*^9, 
  3.48374727846109*^9}]
}, Open  ]],

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

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

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"1", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "1"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         FractionBox["x", "3"], ",", "t"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"x", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "u", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         FractionBox[
          SuperscriptBox["x", "2"], "2"], ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"u", " ", "x"}], "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.46947161203024*^9, 3.471563191196574*^9, 
  3.471563276109483*^9, 3.471579569914266*^9, 3.475375728688076*^9, 
  3.483747278559943*^9}],

Cell[TextData[StyleBox["Check the solution in the determining equations.",
 FontWeight->"Plain"]], "Text",
 CellChangeTimes->{{3.471560687887658*^9, 3.471560717268311*^9}},
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

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

 CellChangeTimes->{{3.471560722979608*^9, 3.4715607756901417`*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", 
   ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", 
   "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", 
   ",", "True", ",", "True", ",", "True"}], "}"}]], "Output",
 CellChangeTimes->{3.471563191259654*^9, 3.4715632761658497`*^9, 
  3.4715795699748774`*^9, 3.475375728737261*^9, 3.483747278628721*^9}]
}, Open  ]],

Cell[TextData[StyleBox["Now generate the commutator table.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"MakeCommutatorTable", "[", "\[IndentingNewLine]", 
  RowBox[{
  "independentvariables", ",", "dependentvariables", ",", 
   "infinitesimalgroupsxy"}], "]"}]], "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.4694716121021147`*^9, 3.471563209621354*^9, 
  3.471563276216344*^9, 3.471579570070857*^9, 3.4753757287877817`*^9, 
  3.483747278760481*^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", "[", "commutatortable", "]"}]], "Input"],

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             FractionBox["1", "3"], ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"1", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"x", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "u", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "1"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", 
              FractionBox["1", "3"]}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", 
             RowBox[{"-", "1"}]}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             FractionBox[
              SuperscriptBox["x", "2"], "6"], ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            FractionBox[
             RowBox[{"u", " ", "x"}], "3"], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", "1"}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"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[{
             FractionBox[
              SuperscriptBox["x", "2"], "2"], ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{"u", " ", "x"}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", "x"}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{"-", "u"}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", 
              FractionBox[
               SuperscriptBox["x", "2"], "6"]}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{"-", 
             FractionBox[
              RowBox[{"u", " ", "x"}], "3"]}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", 
              FractionBox[
               SuperscriptBox["x", "2"], "2"]}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", "u"}], " ", "x"}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]}
    },
    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.4694716121740026`*^9, 3.4715632280208197`*^9, 
  3.471563276253525*^9, 3.471579570130815*^9, 3.4753757288498487`*^9, 
  3.483747278830832*^9}]
}, Open  ]],

Cell[TextData[StyleBox["This is the 5-parameter point group of the Harry Dym \
equation.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

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

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

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[545, 20, 233, 4, 76, "Text"],
Cell[781, 26, 124, 1, 32, "Text"],
Cell[908, 29, 281, 7, 33, "Input"],
Cell[1192, 38, 476, 13, 32, "Text"],
Cell[1671, 53, 101, 2, 33, "Input"],
Cell[1775, 57, 207, 4, 32, "Text"],
Cell[1985, 63, 138, 4, 53, "Input"],
Cell[2126, 69, 257, 4, 32, "Text"],
Cell[2386, 75, 175, 4, 53, "Input"],
Cell[2564, 81, 130, 2, 32, "Text"],
Cell[2697, 85, 151, 4, 33, "Input"],
Cell[2851, 91, 128, 2, 32, "Text"],
Cell[2982, 95, 116, 3, 33, "Input"],
Cell[3101, 100, 139, 2, 32, "Text"],
Cell[3243, 104, 96, 3, 33, "Input"],
Cell[3342, 109, 154, 3, 51, "Text"],
Cell[3499, 114, 67, 2, 33, "Input"],
Cell[3569, 118, 385, 6, 51, "Text"],
Cell[3957, 126, 136, 3, 33, "Input"],
Cell[4096, 131, 509, 7, 70, "Text"],
Cell[4608, 140, 71, 2, 33, "Input"],
Cell[4682, 144, 576, 8, 70, "Text"],
Cell[5261, 154, 79, 2, 33, "Input"],
Cell[5343, 158, 268, 4, 32, "Text"],
Cell[CellGroupData[{
Cell[5636, 166, 375, 7, 53, "Input"],
Cell[6014, 175, 495, 9, 25, "Print"],
Cell[6512, 186, 1078, 15, 159, "Print"],
Cell[7593, 203, 755, 13, 45, "Print"],
Cell[8351, 218, 484, 9, 25, "Print"],
Cell[8838, 229, 1082, 15, 159, "Print"],
Cell[9923, 246, 255, 5, 33, "Output"]
}, Open  ]],
Cell[10193, 254, 186, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[10404, 261, 45, 0, 33, "Input"],
Cell[10452, 263, 765, 22, 42, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[11254, 290, 240, 4, 32, "Text"],
Cell[11497, 296, 39, 0, 33, "Input"],
Cell[11539, 298, 392, 10, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[11968, 313, 279, 4, 51, "Text"],
Cell[12250, 319, 47, 0, 33, "Input"],
Cell[12300, 321, 2116, 33, 319, "Output"]
}, Open  ]],
Cell[14431, 357, 57, 0, 32, "Text"],
Cell[CellGroupData[{
Cell[14513, 361, 78, 1, 33, "Input"],
Cell[14594, 364, 189, 3, 33, "Output"]
}, Open  ]],
Cell[14798, 370, 509, 11, 126, "Text"],
Cell[CellGroupData[{
Cell[15332, 385, 371, 7, 53, "Input"],
Cell[15706, 394, 946, 15, 64, "Print"],
Cell[16655, 411, 508, 7, 64, "Print"],
Cell[17166, 420, 399, 7, 25, "Print"],
Cell[17568, 429, 391, 7, 25, "Print"],
Cell[17962, 438, 414, 8, 25, "Print"],
Cell[18379, 448, 388, 5, 45, "Print"],
Cell[18770, 455, 423, 8, 25, "Print"],
Cell[19196, 465, 233, 3, 25, "Print"],
Cell[19432, 470, 277, 4, 25, "Print"],
Cell[19712, 476, 423, 8, 25, "Print"],
Cell[20138, 486, 1156, 15, 197, "Print"],
Cell[21297, 503, 276, 5, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[21610, 513, 184, 3, 32, "Text"],
Cell[21797, 518, 99, 2, 33, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[21933, 525, 141, 2, 32, "Text"],
Cell[22077, 529, 97, 2, 33, "Input"]
}, Open  ]],
Cell[CellGroupData[{
Cell[22211, 536, 144, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[22380, 543, 253, 7, 33, "Input"],
Cell[22636, 552, 515, 15, 58, "Output"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[23200, 573, 143, 2, 32, "Text"],
Cell[23346, 577, 253, 7, 33, "Input"],
Cell[23602, 586, 296, 7, 33, "Output"]
}, Open  ]],
Cell[23913, 596, 293, 8, 33, "Input"],
Cell[24209, 606, 79, 1, 33, "Input"],
Cell[24291, 609, 1201, 42, 141, "Output"],
Cell[25495, 653, 204, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[25724, 660, 190, 4, 33, "Input"],
Cell[25917, 666, 465, 8, 33, "Output"]
}, Open  ]],
Cell[26397, 677, 124, 2, 32, "Text"],
Cell[26524, 681, 191, 4, 53, "Input"],
Cell[26718, 687, 577, 8, 83, "Print"],
Cell[27298, 697, 132, 2, 32, "Text"],
Cell[CellGroupData[{
Cell[27455, 703, 77, 1, 33, "Input"],
Cell[27535, 706, 19123, 523, 319, "Output"]
}, Open  ]],
Cell[46673, 1232, 154, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[46852, 1239, 66, 1, 33, "Input"],
Cell[46921, 1242, 195, 3, 33, "Output"]
}, Open  ]]
}
]
*)

(* End of internal cache information *)
