(* 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[     90118,       2538]
NotebookOptionsPosition[     85033,       2387]
NotebookOutlinePosition[     85864,       2416]
CellTagsIndexPosition[     85821,       2413]
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 nonlinear heat equation, \n\n\
Ut-(k(U))xUx-k(U)Uxx=0.\n\nfor k(U)=U^sigma. Reference: Ibragimov, N. CRC \
Handbook Volume 1, page 110.",
 FontSize->14,
 FontWeight->"Plain"]], "Text",
 CellChangeTimes->{{3.471561475291975*^9, 3.471561501855229*^9}},
 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["\<\
This next command turns off spurious spelling error warnings.\
\>", "Text"],

Cell[BoxData[
 RowBox[{"Off", "[", 
  RowBox[{"General", "::", "spell"}], "]"}]], "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["Define the diffusivity function.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"k", "[", 
   RowBox[{"u_", "[", 
    RowBox[{"x_", ",", "t_"}], "]"}], "]"}], ":=", 
  RowBox[{
   RowBox[{"u", "[", 
    RowBox[{"x", ",", "t"}], "]"}], "^", "sigma"}]}]], "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[{
  "inputequation", "=", "\n", 
   "\"\<D[u[x,t],t]-D[k[u[x,t]],x]*D[u[x,t],x]-k[u[x,t]]*D[u[x,t],x,x]\>\""}],
   ";"}]], "Input"],

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

Cell[BoxData[
 RowBox[{
  RowBox[{"rulesarray", "=", "\[IndentingNewLine]", 
   RowBox[{
   "{", "\"\<D[u[x,t],t]->D[k[u[x,t]],x]*D[u[x,t],x]+k[u[x,t]]*D[u[x,t],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 constant names that \
need to 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[{"{", 
    RowBox[{"\"\<k\>\"", ",", "\"\<sigma\>\""}], "}"}]}], ";"}]], "Input"],

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

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

Cell[TextData[StyleBox["The maximum derivative order that the infinitesimals \
are assumed to depend on is specified by the input parameter 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"],

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[{"FindDeterminingEquations", "[", "\[IndentingNewLine]", 
  RowBox[{
  "independentvariables", ",", "dependentvariables", ",", "frozennames", ",", 
   "porder", ",", "rorder", ",", "xseon", ",", "inputequation", ",", 
   "rulesarray", ",", "internalrules"}], "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(38534640\\), the time used = \
\\!\\(15.999561999999997`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 38534640, 15.999561999999997`],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694614453662653`*^9, 3.471561533482458*^9, 
  3.471579225147706*^9, 3.4834849086121483`*^9, 3.483746710711239*^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.4694614453662653`*^9, 3.471561533482458*^9, 
  3.471579225147706*^9, 3.4834849086121483`*^9, 3.4837467107854977`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(10\\), the \
byte count of zdeterminingequations = \\!\\(2240\\), the memory in use = \
\\!\\(38580912\\), the time used = \\!\\(16.112676`\\)\"\>",
  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 = ``", 10, 2240, 38580912, 
   16.112676],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694614453662653`*^9, 3.471561533482458*^9, 
  3.471579225147706*^9, 3.4834849086121483`*^9, 3.4837467108144617`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(38581968\\), the time used = \\!\\(16.112982`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 38581968, 16.112982],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694614453662653`*^9, 3.471561533482458*^9, 
  3.471579225147706*^9, 3.4834849086121483`*^9, 3.48374671081635*^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.4694614453662653`*^9, 3.471561533482458*^9, 
  3.471579225147706*^9, 3.4834849086121483`*^9, 3.483746710817985*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData["\<\"D[y1[x1,x2],x2]-D[k[y1[x1,x2]],x1]*D[y1[x1,x2],x1]-k[y1[x1,\
x2]]*D[y1[x1,x2],x1,x1]\"\>"], "Output",
 CellChangeTimes->{3.469461445554153*^9, 3.47156153365495*^9, 
  3.471579225338785*^9, 3.4834849088387737`*^9, 3.483746710848741*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", 
      RowBox[{"(", 
       RowBox[{
        RowBox[{"-", "1"}], "+", "sigma"}], ")"}]}], " ", "sigma", " ", 
     SuperscriptBox[
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], 
      RowBox[{
       RowBox[{"-", "2"}], "+", "sigma"}]], " ", 
     SuperscriptBox[
      RowBox[{
       SuperscriptBox["y1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], "2"]}], "-", 
    RowBox[{"sigma", " ", 
     SuperscriptBox[
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], 
      RowBox[{
       RowBox[{"-", "1"}], "+", "sigma"}]], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"2", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", 
   RowBox[{
    RowBox[{"-", "2"}], " ", "sigma", " ", 
    SuperscriptBox[
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], 
     RowBox[{
      RowBox[{"-", "1"}], "+", "sigma"}]], " ", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"1", ",", "0"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], ",", "1", ",", 
   RowBox[{"-", 
    SuperscriptBox[
     RowBox[{"y1", "[", 
      RowBox[{"x1", ",", "x2"}], "]"}], "sigma"]}], ",", "0", ",", "0"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.469461445608449*^9, 3.4715615337012653`*^9, 
  3.471579225384852*^9, 3.4834849089115868`*^9, 3.483746710902136*^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.469461445654091*^9, 3.4715615337553463`*^9, 
  3.471579225434792*^9, 3.483484908952898*^9, 3.4837467109352903`*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{"TraditionalForm", "[", 
  RowBox[{"Column", "[", 
   RowBox[{
    RowBox[{"ToExpression", "[", "zdeterminingequations", "]"}], ",", 
    RowBox[{"{", 
     RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.4694613199431133`*^9, 3.469461330373815*^9}}],

Cell[BoxData[
 FormBox[
  TagBox[GridBox[{
     {
      RowBox[{
       RowBox[{"2", " ", 
        SuperscriptBox["z3", 
         RowBox[{"sigma", "+", "2"}]], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "(", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "\[LongEqual]", "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{
         SuperscriptBox["sigma", "2"], " ", 
         SuperscriptBox["z3", 
          RowBox[{"2", " ", "sigma"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{
           RowBox[{"2", " ", "sigma"}], "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "2"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{
           RowBox[{"2", " ", "sigma"}], "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{
           RowBox[{"2", " ", "sigma"}], "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "2"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{"2", " ", 
        SuperscriptBox["z3", 
         RowBox[{"sigma", "+", "2"}]], " ", 
        RowBox[{
         SuperscriptBox["xse2", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"1", ",", "0", ",", "0"}], ")"}],
           Derivative],
          MultilineFunction->None], "(", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "\[LongEqual]", "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"2", " ", 
         SuperscriptBox["sigma", "2"], " ", 
         SuperscriptBox["z3", 
          RowBox[{"2", " ", "sigma"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "2"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"2", " ", "sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{
           RowBox[{"2", " ", "sigma"}], "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"2", " ", "sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{
           RowBox[{"2", " ", "sigma"}], "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{
           RowBox[{"2", " ", "sigma"}], "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{
         SuperscriptBox["z3", "2"], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"2", " ", "sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{
           SuperscriptBox["eta1", 
            TagBox[
             RowBox[{"(", 
              RowBox[{"1", ",", "0", ",", "0"}], ")"}],
             Derivative],
            MultilineFunction->None], "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "-", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", "2"], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{
           SuperscriptBox["eta1", 
            TagBox[
             RowBox[{"(", 
              RowBox[{"0", ",", "0", ",", "1"}], ")"}],
             Derivative],
            MultilineFunction->None], "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "2"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["sigma", "2"], " ", 
         SuperscriptBox["z3", "sigma"], " ", 
         RowBox[{"eta1", "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", "sigma"], " ", 
         RowBox[{"eta1", "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"2", " ", "sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{
           RowBox[{"2", " ", "sigma"}], "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{"eta1", "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "+", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{
           RowBox[{"2", " ", "sigma"}], "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]}
    },
    GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
    GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
   "Column"], TraditionalForm]], "Output",
 CellChangeTimes->{3.4694614457277107`*^9, 3.471561533822864*^9, 
  3.4715792255054626`*^9, 3.4834849090463657`*^9, 3.4837467109942408`*^9}],

Cell[TextData[StyleBox["Remove redundancies to try to simplify the \
determining equations.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationsreduced1", "=", 
   RowBox[{
    RowBox[{"ToExpression", "[", "zdeterminingequations", "]"}], "/.", 
    "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1"}], "]"}], 
       "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z1"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z2"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z3"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z3"}], "]"}], 
       "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z3", ",", "z3"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2", ",", "z3"}],
         "]"}], "\[Rule]", "0"}]}], "}"}]}]}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{"TraditionalForm", "[", 
  RowBox[{"Column", "[", 
   RowBox[{"zdeterminingequationsreduced1", ",", 
    RowBox[{"{", 
     RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.469461339886429*^9, 3.4694613507181187`*^9}}],

Cell[BoxData[
 FormBox[
  TagBox[GridBox[{
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {
      RowBox[{
       RowBox[{
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "2"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{"2", " ", 
        SuperscriptBox["z3", 
         RowBox[{"sigma", "+", "2"}]], " ", 
        RowBox[{
         SuperscriptBox["xse1", 
          TagBox[
           RowBox[{"(", 
            RowBox[{"0", ",", "0", ",", "1"}], ")"}],
           Derivative],
          MultilineFunction->None], "(", 
         RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "\[LongEqual]", "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{
         SuperscriptBox["z3", "2"], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"2", " ", "sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{
           SuperscriptBox["eta1", 
            TagBox[
             RowBox[{"(", 
              RowBox[{"1", ",", "0", ",", "0"}], ")"}],
             Derivative],
            MultilineFunction->None], "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "-", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", "2"], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{
           SuperscriptBox["eta1", 
            TagBox[
             RowBox[{"(", 
              RowBox[{"0", ",", "0", ",", "1"}], ")"}],
             Derivative],
            MultilineFunction->None], "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "2"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["sigma", "2"], " ", 
         SuperscriptBox["z3", "sigma"], " ", 
         RowBox[{"eta1", "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", "sigma"], " ", 
         RowBox[{"eta1", "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"2", " ", "sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{"eta1", "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "+", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]}
    },
    GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
    GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
   "Column"], TraditionalForm]], "Output",
 CellChangeTimes->{3.469461445815278*^9, 3.4715615339038897`*^9, 
  3.47157922559859*^9, 3.483484909118815*^9, 3.483746711064994*^9}],

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationsreduced2", "=", 
   RowBox[{"zdeterminingequationsreduced1", "/.", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z3"}], "]"}], 
       "\[Rule]", "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2", ",", "z3"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z3", ",", "z3"}],
         "]"}], "\[Rule]", "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z3"}],
         "]"}], "\[Rule]", "0"}]}], "}"}]}]}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{"TraditionalForm", "[", 
  RowBox[{"Column", "[", 
   RowBox[{"zdeterminingequationsreduced2", ",", 
    RowBox[{"{", 
     RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.469461368361259*^9, 3.469461375542142*^9}}],

Cell[BoxData[
 FormBox[
  TagBox[GridBox[{
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {
      RowBox[{
       RowBox[{
        RowBox[{
         SuperscriptBox["z3", "2"], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"2", " ", "sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{
           SuperscriptBox["eta1", 
            TagBox[
             RowBox[{"(", 
              RowBox[{"1", ",", "0", ",", "0"}], ")"}],
             Derivative],
            MultilineFunction->None], "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "-", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", "2"], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{
           SuperscriptBox["eta1", 
            TagBox[
             RowBox[{"(", 
              RowBox[{"0", ",", "0", ",", "1"}], ")"}],
             Derivative],
            MultilineFunction->None], "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "2"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["sigma", "2"], " ", 
         SuperscriptBox["z3", "sigma"], " ", 
         RowBox[{"eta1", "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", "sigma"], " ", 
         RowBox[{"eta1", "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"2", " ", "sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{"eta1", "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "+", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]}
    },
    GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
    GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
   "Column"], TraditionalForm]], "Output",
 CellChangeTimes->{3.4694614458934317`*^9, 3.471561533986784*^9, 
  3.47157922566846*^9, 3.483484909181444*^9, 3.483746711127822*^9}],

Cell[TextData[StyleBox["The second to last equation implies that the two \
derivatives of eta1 are each zero.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationsreduced3", "=", 
   RowBox[{"zdeterminingequationsreduced2", "/.", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2"}], "]"}], 
       "\[Rule]", "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z1"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z2"}],
         "]"}], "\[Rule]", "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2", ",", "z3"}],
         "]"}], "\[Rule]", "0"}]}], "}"}]}]}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{"TraditionalForm", "[", 
  RowBox[{"Column", "[", 
   RowBox[{"zdeterminingequationsreduced3", ",", 
    RowBox[{"{", 
     RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.469461379567222*^9, 3.46946138622264*^9}}],

Cell[BoxData[
 FormBox[
  TagBox[GridBox[{
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"2", " ", "sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{
           SuperscriptBox["eta1", 
            TagBox[
             RowBox[{"(", 
              RowBox[{"1", ",", "0", ",", "0"}], ")"}],
             Derivative],
            MultilineFunction->None], "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "-", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", "2"], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{
           SuperscriptBox["eta1", 
            TagBox[
             RowBox[{"(", 
              RowBox[{"0", ",", "0", ",", "1"}], ")"}],
             Derivative],
            MultilineFunction->None], "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "2"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["sigma", "2"], " ", 
         SuperscriptBox["z3", "sigma"], " ", 
         RowBox[{"eta1", "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", "sigma"], " ", 
         RowBox[{"eta1", "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"2", " ", "sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{"eta1", "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "+", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]}
    },
    GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
    GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
   "Column"], TraditionalForm]], "Output",
 CellChangeTimes->{3.469461445970909*^9, 3.471561534065474*^9, 
  3.471579225736644*^9, 3.483484909246739*^9, 3.483746711189129*^9}],

Cell[TextData[StyleBox["The last equation implies that the derivative of xse1 \
with respect to z2 is zero.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationsreduced4", "=", 
   RowBox[{"zdeterminingequationsreduced3", "/.", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2"}], "]"}], 
       "\[Rule]", "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z2"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2", ",", "z3"}],
         "]"}], "\[Rule]", "0"}], ",", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2", ",", "z2"}],
         "]"}], "\[Rule]", "0"}]}], "}"}]}]}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{"TraditionalForm", "[", 
  RowBox[{"Column", "[", 
   RowBox[{"zdeterminingequationsreduced4", ",", 
    RowBox[{"{", 
     RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.469461392711688*^9, 3.46946139949515*^9}}],

Cell[BoxData[
 FormBox[
  TagBox[GridBox[{
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {"True"},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"2", " ", "sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{
           SuperscriptBox["eta1", 
            TagBox[
             RowBox[{"(", 
              RowBox[{"1", ",", "0", ",", "0"}], ")"}],
             Derivative],
            MultilineFunction->None], "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "-", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "1"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"2", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{
           SuperscriptBox["eta1", 
            TagBox[
             RowBox[{"(", 
              RowBox[{"0", ",", "0", ",", "1"}], ")"}],
             Derivative],
            MultilineFunction->None], "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["eta1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "0", ",", "2"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["sigma", "2"], " ", 
         SuperscriptBox["z3", "sigma"], " ", 
         RowBox[{"eta1", "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", "sigma"], " ", 
         RowBox[{"eta1", "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "+", 
        RowBox[{"2", " ", "sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{"sigma", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "1"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]},
     {
      RowBox[{
       RowBox[{
        RowBox[{"-", 
         RowBox[{"sigma", " ", 
          SuperscriptBox["z3", 
           RowBox[{"sigma", "+", "1"}]], " ", 
          RowBox[{"eta1", "(", 
           RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "+", 
        RowBox[{"2", " ", 
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse1", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"1", ",", "0", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}], "-", 
        RowBox[{
         SuperscriptBox["z3", 
          RowBox[{"sigma", "+", "2"}]], " ", 
         RowBox[{
          SuperscriptBox["xse2", 
           TagBox[
            RowBox[{"(", 
             RowBox[{"0", ",", "1", ",", "0"}], ")"}],
            Derivative],
           MultilineFunction->None], "(", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], ")"}]}]}], "\[LongEqual]", 
       "0"}]}
    },
    GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
    GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
   "Column"], TraditionalForm]], "Output",
 CellChangeTimes->{3.469461446121544*^9, 3.471561534131637*^9, 
  3.471579225868053*^9, 3.483484909396839*^9, 3.48374671125739*^9}],

Cell[TextData[StyleBox["Remove the factor z3^sigma that multiplies every \
term.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"imax", "=", 
  RowBox[{"Length", "[", "zdeterminingequationsreduced4", "]"}]}]], "Input"],

Cell[BoxData["10"], "Output",
 CellChangeTimes->{3.4694614461747723`*^9, 3.471561534168511*^9, 
  3.471579225923471*^9, 3.483484909434119*^9, 3.483746711299337*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationsreduced4strings", "=", 
   RowBox[{"Table", "[", 
    RowBox[{
     RowBox[{"ToString", "[", 
      RowBox[{"InputForm", "[", 
       RowBox[{"zdeterminingequationsreduced4", "[", 
        RowBox[{"[", "i", "]"}], "]"}], "]"}], "]"}], ",", 
     RowBox[{"{", 
      RowBox[{"i", ",", "1", ",", "imax"}], "}"}]}], "]"}]}], ";"}]], "Input"],

Cell["\<\
zdeterminingequationsnoequalszero=
StringReplace[zdeterminingequationsreduced4strings,
{\"== 0\"->\" \"}];\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
Now convert each determining equation to an expression and multiply through \
by z3^(2-sigma). The built-in function Together cancels terms in the \
numerator and denominator.\
\>", "Text",
 CellChangeTimes->{{3.483484818332158*^9, 3.483484847206245*^9}}],

Cell["\<\
zdeterminingequationsnoequalszeroexpression=
Together[(z3^2)*(z3^(-sigma))*ToExpression[
zdeterminingequationsnoequalszero]];\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["The number of determining equations.", "Text"],

Cell[CellGroupData[{

Cell["\<\
imax=Length[
zdeterminingequationsnoequalszeroexpression]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData["10"], "Output",
 CellChangeTimes->{3.469461446301539*^9, 3.471561534315156*^9, 
  3.471579226085355*^9, 3.483484909546535*^9, 3.483746711461852*^9}]
}, Open  ]],

Cell["\<\
Convert each determining equation back to a string and reinstate the == 0.\
\>", "Text"],

Cell[CellGroupData[{

Cell["\<\
zdeterminingequationsmod1=Table[
ToString[InputForm[
zdeterminingequationsnoequalszeroexpression[[i]]]]<>
\"== 0\",
{i,1,imax}]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"True*z3^(2 - sigma)== 0\"\>", 
   ",", "\<\"True*z3^(2 - sigma)== 0\"\>", 
   ",", "\<\"True*z3^(2 - sigma)== 0\"\>", 
   ",", "\<\"True*z3^(2 - sigma)== 0\"\>", 
   ",", "\<\"True*z3^(2 - sigma)== 0\"\>", 
   ",", "\<\"True*z3^(2 - sigma)== 0\"\>", 
   ",", "\<\"True*z3^(2 - sigma)== 0\"\>", 
   ",", "\<\"-(z3^3*(2*sigma*Derivative[1, 0, 0][eta1][z1, z2, z3] + \
2*z3*Derivative[1, 0, 1][eta1][z1, z2, z3] - z3*Derivative[2, 0, 0][xse1][z1, \
z2, z3]))== 0\"\>", 
   ",", "\<\"-(z3^2*(-(sigma*eta1[z1, z2, z3]) + sigma^2*eta1[z1, z2, z3] + \
sigma*z3*Derivative[0, 0, 1][eta1][z1, z2, z3] + z3^2*Derivative[0, 0, \
2][eta1][z1, z2, z3] + sigma*z3*Derivative[0, 1, 0][xse2][z1, z2, z3] - \
2*sigma*z3*Derivative[1, 0, 0][xse1][z1, z2, z3]))== 0\"\>", 
   ",", "\<\"-(z3^3*(sigma*eta1[z1, z2, z3] + z3*Derivative[0, 1, \
0][xse2][z1, z2, z3] - 2*z3*Derivative[1, 0, 0][xse1][z1, z2, z3]))== \
0\"\>"}], "}"}]], "Output",
 CellChangeTimes->{3.469461446359249*^9, 3.471561534352786*^9, 
  3.471579226115881*^9, 3.483484909605517*^9, 3.483746711497834*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{"TraditionalForm", "[", 
  RowBox[{"Column", "[", 
   RowBox[{"zdeterminingequationsmod1", ",", 
    RowBox[{"{", 
     RowBox[{"Left", ",", "Below"}], "}"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.469461411882152*^9, 3.469461419544181*^9}}],

Cell[BoxData[
 FormBox[
  TagBox[GridBox[{
     {"\<\"True*z3^(2 - sigma)== 0\"\>"},
     {"\<\"True*z3^(2 - sigma)== 0\"\>"},
     {"\<\"True*z3^(2 - sigma)== 0\"\>"},
     {"\<\"True*z3^(2 - sigma)== 0\"\>"},
     {"\<\"True*z3^(2 - sigma)== 0\"\>"},
     {"\<\"True*z3^(2 - sigma)== 0\"\>"},
     {"\<\"True*z3^(2 - sigma)== 0\"\>"},
     {"\<\"-(z3^3*(2*sigma*Derivative[1, 0, 0][eta1][z1, z2, z3] + \
2*z3*Derivative[1, 0, 1][eta1][z1, z2, z3] - z3*Derivative[2, 0, 0][xse1][z1, \
z2, z3]))== 0\"\>"},
     {"\<\"-(z3^2*(-(sigma*eta1[z1, z2, z3]) + sigma^2*eta1[z1, z2, z3] + \
sigma*z3*Derivative[0, 0, 1][eta1][z1, z2, z3] + z3^2*Derivative[0, 0, \
2][eta1][z1, z2, z3] + sigma*z3*Derivative[0, 1, 0][xse2][z1, z2, z3] - \
2*sigma*z3*Derivative[1, 0, 0][xse1][z1, z2, z3]))== 0\"\>"},
     {"\<\"-(z3^3*(sigma*eta1[z1, z2, z3] + z3*Derivative[0, 1, 0][xse2][z1, \
z2, z3] - 2*z3*Derivative[1, 0, 0][xse1][z1, z2, z3]))== 0\"\>"}
    },
    GridBoxAlignment->{"Columns" -> {{Left}}, "Rows" -> {{Below}}},
    GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
   "Column"], TraditionalForm]], "Output",
 CellChangeTimes->{3.469461446411542*^9, 3.47156153438675*^9, 
  3.4715792261524878`*^9, 3.4834849096339407`*^9, 3.4837467115560617`*^9}],

Cell["\<\
Now let's put together the final set of determining equations with \
redundancies removed.\
\>", "Text"],

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationsfinal", "=", 
   RowBox[{"{", 
    RowBox[{
    "\"\<sigma*eta1[z1, z2, z3] - sigma^2*eta1[z1, z2, z3] - \
sigma*z3*Derivative[0, 0, 1][eta1][z1, z2, z3] - z3^2*Derivative[0, 0, \
2][eta1][z1, z2, z3] - sigma*z3*Derivative[0, 1, 0][xse2][z1, z2, z3] + \
2*sigma*z3*Derivative[1, 0, 0][xse1][z1, z2, z3]== 0\>\"", ",", 
     "\"\<-(z3*(sigma*eta1[z1, z2, z3] + z3*Derivative[0, 1, 0][xse2][z1, z2, \
z3] - 2*z3*Derivative[1, 0, 0][xse1][z1, z2, z3]))== 0\>\"", ",", 
     "\"\<-(z3*(2*sigma*Derivative[1, 0, 0][eta1][z1, z2, z3] + \
2*z3*Derivative[1, 0, 1][eta1][z1, z2, z3] - z3*Derivative[2, 0, 0][xse1][z1, \
z2, z3]))== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse2[z1,z2,z3],z1]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse2[z1,z2,z3],z1,z1]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse2[z1,z2,z3],z1,z2]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse2[z1,z2,z3],z1,z3]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse2[z1,z2,z3],z3]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse2[z1,z2,z3],z3,z3]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse2[z1,z2,z3],z2,z3]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse1[z1,z2,z3],z3]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse1[z1,z2,z3],z2,z3]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse1[z1,z2,z3],z3,z3]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse1[z1,z2,z3],z1,z3]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[eta1[z1,z2,z3],z2]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[eta1[z1,z2,z3],z1,z1]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[eta1[z1,z2,z3],z1,z2]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[eta1[z1,z2,z3],z2,z3]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse1[z1,z2,z3],z2]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse1[z1,z2,z3],z1,z2]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse1[z1,z2,z3],z2,z3]== 0\>\"", ",", "\[IndentingNewLine]", 
     "\"\<D[xse1[z1,z2,z3],z2,z2]== 0\>\""}], "}"}]}], ";"}]], "Input"],

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", ",", "zdeterminingequationsfinal", ",", 
    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.469461446492921*^9, 3.471561534448349*^9, 
  3.471579226235776*^9, 3.483484909717374*^9, 3.48374671163058*^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.469461446492921*^9, 3.471561534448349*^9, 
  3.471579226235776*^9, 3.483484909717374*^9, 3.4837467116622*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(38748424\\), The time = \\!\
\\(16.311288`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 38748424, 16.311288],
  Editable->False]], "Print",
 CellChangeTimes->{3.469461446492921*^9, 3.471561534448349*^9, 
  3.471579226235776*^9, 3.483484909717374*^9, 3.483746711685196*^9}],

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

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(109\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 109],
  Editable->False]], "Print",
 CellChangeTimes->{3.469461446492921*^9, 3.471561534448349*^9, 
  3.471579226235776*^9, 3.483484909717374*^9, 3.483746711750972*^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.469461446492921*^9, 3.471561534448349*^9, 
  3.471579226235776*^9, 3.483484909717374*^9, 3.483746711784594*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(38770648\\), The time = \\!\
\\(16.316381`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 38770648, 16.316381],
  Editable->False]], "Print",
 CellChangeTimes->{3.469461446492921*^9, 3.471561534448349*^9, 
  3.471579226235776*^9, 3.483484909717374*^9, 3.483746711817939*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469461446492921*^9, 3.471561534448349*^9, 
  3.471579226235776*^9, 3.483484909717374*^9, 3.483746711851345*^9}],

Cell[BoxData["\<\"The function SolveDeterminingEquations is finished \
executing.\"\>"], "Print",
 CellChangeTimes->{3.469461446492921*^9, 3.471561534448349*^9, 
  3.471579226235776*^9, 3.483484909717374*^9, 3.483746711888515*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(38795128\\), The time = \\!\
\\(16.322332`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 38795128, 16.322332],
  Editable->False]], "Print",
 CellChangeTimes->{3.469461446492921*^9, 3.471561534448349*^9, 
  3.471579226235776*^9, 3.483484909717374*^9, 3.483746711922868*^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.469461446492921*^9, 3.471561534448349*^9, 
  3.471579226235776*^9, 3.483484909717374*^9, 3.483746711952051*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.03443999999999647`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469461446542699*^9, 3.47156153451723*^9, 
  3.471579226248274*^9, 3.483484909848721*^9, 3.4837467119860897`*^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", "2"], ",", "t"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         FractionBox[
          RowBox[{"sigma", " ", "x"}], "2"], ",", "0"}], "}"}], ",", 
       RowBox[{"{", "u", "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469461446620015*^9, 3.471561534631446*^9, 
  3.4715792263147182`*^9, 3.483484909948975*^9, 3.483746712099287*^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"}], "}"}]], "Output",
 CellChangeTimes->{3.47156153468182*^9, 3.4715792263493977`*^9, 
  3.483484910001758*^9, 3.4837467121486883`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"MakeCommutatorTable", "[", 
  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.469461446678212*^9, 3.471561534748496*^9, 
  3.471579226386979*^9, 3.4834849100676928`*^9, 3.4837467121992598`*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             FractionBox["1", "2"], ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             FractionBox["sigma", "2"], ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "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[{
             RowBox[{"-", 
              FractionBox["1", "2"]}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", 
             RowBox[{"-", "1"}]}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", 
              FractionBox["sigma", "2"]}], ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "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.469461446728362*^9, 3.471561534816773*^9, 
  3.4715792264260902`*^9, 3.483484910135384*^9, 3.4837467122506523`*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData["40944184"], "Output",
 CellChangeTimes->{3.4694614467726507`*^9, 3.471561534923422*^9, 
  3.47157922646591*^9, 3.4834849102047043`*^9, 3.483746712299037*^9}]
}, Open  ]]
},
WindowToolbars->{},
CellGrouping->Manual,
WindowSize->{1283, 812},
WindowMargins->{{45, Automatic}, {Automatic, 35}},
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?00400CZiCX0000000000P0010000020D00000000\n\
000000?l1BP00000000004T400002004",
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, 396, 7, 117, "Text"],
Cell[944, 29, 124, 1, 32, "Text"],
Cell[1071, 32, 160, 4, 33, "Input"],
Cell[1234, 38, 85, 2, 32, "Text"],
Cell[1322, 42, 90, 2, 33, "Input"],
Cell[1415, 46, 476, 13, 32, "Text"],
Cell[1894, 61, 101, 2, 33, "Input"],
Cell[1998, 65, 122, 2, 32, "Text"],
Cell[2123, 69, 216, 7, 33, "Input"],
Cell[2342, 78, 163, 3, 32, "Text"],
Cell[2508, 83, 164, 5, 53, "Input"],
Cell[2675, 90, 257, 4, 32, "Text"],
Cell[2935, 96, 199, 5, 53, "Input"],
Cell[3137, 103, 130, 2, 32, "Text"],
Cell[3270, 107, 151, 4, 33, "Input"],
Cell[3424, 113, 128, 2, 32, "Text"],
Cell[3555, 117, 116, 3, 33, "Input"],
Cell[3674, 122, 228, 4, 32, "Text"],
Cell[3905, 128, 146, 4, 33, "Input"],
Cell[4054, 134, 152, 3, 32, "Text"],
Cell[4209, 139, 72, 2, 33, "Input"],
Cell[4284, 143, 385, 6, 51, "Text"],
Cell[4672, 151, 72, 2, 33, "Input"],
Cell[4747, 155, 509, 7, 70, "Text"],
Cell[5259, 164, 71, 2, 33, "Input"],
Cell[5333, 168, 576, 8, 70, "Text"],
Cell[5912, 178, 79, 2, 33, "Input"],
Cell[5994, 182, 268, 4, 32, "Text"],
Cell[CellGroupData[{
Cell[6287, 190, 297, 5, 72, "Input"],
Cell[6587, 197, 494, 9, 25, "Print"],
Cell[7084, 208, 1056, 14, 159, "Print"],
Cell[8143, 224, 733, 12, 45, "Print"],
Cell[8879, 238, 440, 8, 25, "Print"],
Cell[9322, 248, 1056, 14, 140, "Print"]
}, Open  ]],
Cell[CellGroupData[{
Cell[10415, 267, 50, 0, 33, "Input"],
Cell[10468, 269, 253, 3, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[10758, 277, 45, 0, 33, "Input"],
Cell[10806, 279, 1769, 58, 79, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[12612, 342, 240, 4, 32, "Text"],
Cell[12855, 348, 39, 0, 33, "Input"],
Cell[12897, 350, 369, 9, 33, "Output"]
}, Open  ]],
Cell[13281, 362, 312, 7, 33, "Input"],
Cell[13596, 371, 12729, 377, 292, "Output"],
Cell[26328, 750, 157, 3, 32, "Text"],
Cell[26488, 755, 1810, 49, 167, "Input"],
Cell[28301, 806, 279, 6, 33, "Input"],
Cell[28583, 814, 7555, 225, 276, "Output"],
Cell[36141, 1041, 1045, 29, 72, "Input"],
Cell[37189, 1072, 277, 6, 33, "Input"],
Cell[37469, 1080, 5948, 177, 268, "Output"],
Cell[43420, 1259, 175, 3, 32, "Text"],
Cell[43598, 1264, 1045, 29, 72, "Input"],
Cell[44646, 1295, 276, 6, 33, "Input"],
Cell[44925, 1303, 5177, 153, 264, "Output"],
Cell[50105, 1458, 173, 3, 32, "Text"],
Cell[50281, 1463, 1045, 29, 72, "Input"],
Cell[51329, 1494, 276, 6, 33, "Input"],
Cell[51608, 1502, 4834, 143, 264, "Output"],
Cell[56445, 1647, 146, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[56616, 1654, 113, 2, 33, "Input"],
Cell[56732, 1658, 164, 2, 33, "Output"]
}, Open  ]],
Cell[56911, 1663, 394, 10, 33, "Input"],
Cell[57308, 1675, 163, 5, 66, "Input"],
Cell[57474, 1682, 265, 5, 32, "Text"],
Cell[57742, 1689, 182, 5, 66, "Input"],
Cell[57927, 1696, 52, 0, 32, "Text"],
Cell[CellGroupData[{
Cell[58004, 1700, 114, 4, 50, "Input"],
Cell[58121, 1706, 162, 2, 33, "Output"]
}, Open  ]],
Cell[58298, 1711, 98, 2, 32, "Text"],
Cell[CellGroupData[{
Cell[58421, 1717, 184, 7, 98, "Input"],
Cell[58608, 1726, 1098, 20, 167, "Output"]
}, Open  ]],
Cell[59721, 1749, 273, 6, 33, "Input"],
Cell[59997, 1757, 1268, 24, 258, "Output"],
Cell[61268, 1783, 114, 3, 32, "Text"],
Cell[61385, 1788, 2087, 32, 509, "Input"],
Cell[63475, 1822, 510, 11, 126, "Text"],
Cell[CellGroupData[{
Cell[64010, 1837, 283, 6, 33, "Input"],
Cell[64296, 1845, 898, 14, 64, "Print"],
Cell[65197, 1861, 459, 6, 64, "Print"],
Cell[65659, 1869, 354, 6, 25, "Print"],
Cell[66016, 1877, 342, 6, 25, "Print"],
Cell[66361, 1885, 365, 7, 25, "Print"],
Cell[66729, 1894, 341, 4, 45, "Print"],
Cell[67073, 1900, 354, 6, 25, "Print"],
Cell[67430, 1908, 186, 2, 25, "Print"],
Cell[67619, 1912, 230, 3, 25, "Print"],
Cell[67852, 1917, 354, 6, 25, "Print"],
Cell[68209, 1925, 1107, 14, 178, "Print"],
Cell[69319, 1941, 229, 4, 33, "Output"]
}, Open  ]],
Cell[69563, 1948, 293, 8, 33, "Input"],
Cell[69859, 1958, 79, 1, 33, "Input"],
Cell[69941, 1961, 1004, 34, 117, "Output"],
Cell[70948, 1997, 204, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[71177, 2004, 190, 4, 33, "Input"],
Cell[71370, 2010, 304, 6, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[71711, 2021, 168, 4, 33, "Input"],
Cell[71882, 2027, 552, 7, 64, "Print"]
}, Open  ]],
Cell[CellGroupData[{
Cell[72471, 2039, 77, 1, 33, "Input"],
Cell[72551, 2042, 12189, 332, 223, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[84777, 2379, 66, 1, 33, "Input"],
Cell[84846, 2382, 171, 2, 33, "Output"]
}, Open  ]]
}
]
*)

(* End of internal cache information *)
