(* 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[     97061,       3036]
NotebookOptionsPosition[     89671,       2805]
NotebookOutlinePosition[     90299,       2830]
CellTagsIndexPosition[     90256,       2827]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[TextData[{
 StyleBox["In this example we use the package IntroToSymmetry.m to work out, \
first the point group of the Heat equation, \n\nUxx-Ut=0.\n\nthen a \
nonclassical symmetry. References:\n \nBluman and Cole 1969 The general \
similarity solution of the heat equation, J. Math. Mech. 18: 1025-1042.\n\n\
Baumann, Gerd 2000 ",
  FontSize->14,
  FontWeight->"Plain"],
 StyleBox["Symmetry Analysis of Differential Equations with Mathematica",
  FontSize->14,
  FontWeight->"Plain",
  FontSlant->"Italic"],
 StyleBox[" Springer-Verlag (see Section 6.3).",
  FontSize->14,
  FontWeight->"Plain"]
}], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

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

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

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

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<SymmetryAnalysis`IntroToSymmetry`\>\"", 
  "]"}]], "Input"],

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

Cell[BoxData[
 RowBox[{
  RowBox[{"heatequation", "=", "\n", "\"\<D[U[x,t],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],x,x]->D[U[x,t],t]\>\"", "}"}]}], ";"}]], "Input"],

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cell[CellGroupData[{

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

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(55902720\\), the time used = \\!\\(49.454878`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 55902720, 49.454878],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484102351523*^9, 3.471575702640588*^9, 
  3.4838043629610147`*^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.469484102351523*^9, 3.471575702640588*^9, 
  3.483804362994961*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(9\\), the \
byte count of zdeterminingequations = \\!\\(1104\\), the memory in use = \
\\!\\(55838816\\), the time used = \\!\\(49.517468`\\)\"\>",
  StringForm[
  "The determining equations have been expressed in terms of z-variables, the \
length of zdeterminingequations = ``, the byte count of zdeterminingequations \
= ``, the memory in use = ``, the time used = ``", 9, 1104, 55838816, 
   49.517468],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484102351523*^9, 3.471575702640588*^9, 
  3.483804362999015*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(55839872\\), the time used = \\!\\(49.517739000000006`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 55839872, 49.517739000000006`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484102351523*^9, 3.471575702640588*^9, 
  3.483804363002116*^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.469484102351523*^9, 3.471575702640588*^9, 
  3.483804363005026*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.06376900000000063`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469484102403764*^9, 3.471575702676683*^9, 
  3.483804363008946*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData["\<\"D[y1[x1,x2],x1,x1]-D[y1[x1,x2],x2]\"\>"], "Output",
 CellChangeTimes->{3.469484102435285*^9, 3.4715757027099*^9, 
  3.483804363045906*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", "0", ",", "0", ",", 
   RowBox[{"-", "1"}], ",", "1", ",", "0", ",", "0"}], "}"}]], "Output",
 CellChangeTimes->{3.4694841024911213`*^9, 3.471575702764757*^9, 
  3.483804363100905*^9}]
}, Open  ]],

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

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

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"zdeterminingequations", ";"}]], "Input"]
}, Open  ]],

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

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

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

Cell[CellGroupData[{

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

Cell[BoxData["9"], "Output",
 CellChangeTimes->{3.469484102641172*^9, 3.471575702943625*^9, 
  3.483804363284686*^9}]
}, Open  ]],

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

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

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

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"SolveDeterminingEquations", "[", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "r", ",", "xseon", 
    ",", "\[IndentingNewLine]", "zdeterminingequations", ",", 
    RowBox[{"order", "=", "3"}]}], "]"}], "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox["\<\"The variable powertablelength is the number of terms \
required for each multivariate polynomial used for the infinitesimals. This \
number is determined by the choice of polynomial order and the number of \
zvariables. The time needed to solve the determining equations increases as \
powertable increases. powertablelength = \\!\\(20\\)\"\>",
  StringForm[
  "The variable powertablelength is the number of terms required for each \
multivariate polynomial used for the infinitesimals. This number is \
determined by the choice of polynomial order and the number of zvariables. \
The time needed to solve the determining equations increases as powertable \
increases. powertablelength = ``", 20],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484102687766*^9, 3.471575702978072*^9, 
  3.48380436333106*^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.469484102687766*^9, 3.471575702978072*^9, 
  3.483804363335186*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(55889264\\), The time = \\!\
\\(49.540673000000005`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 55889264, 49.540673000000005`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484102687766*^9, 3.471575702978072*^9, 
  3.483804363338097*^9}],

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

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(67\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 67],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484102687766*^9, 3.471575702978072*^9, 
  3.4838043633435507`*^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.469484102687766*^9, 3.471575702978072*^9, 
  3.4838043633461857`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(55872456\\), The time = \\!\
\\(49.543617`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 55872456, 49.543617],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484102687766*^9, 3.471575702978072*^9, 
  3.4838043633490343`*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469484102687766*^9, 3.471575702978072*^9, 
  3.4838043633516493`*^9}],

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

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(55884128\\), The time = \\!\
\\(49.548525`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 55884128, 49.548525],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484102687766*^9, 3.471575702978072*^9, 
  3.483804363356821*^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.469484102687766*^9, 3.471575702978072*^9, 
  3.483804363359438*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.023248000000002378`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469484102697872*^9, 3.471575702989375*^9, 
  3.4838043633631153`*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"xse1[z1_, z2_, z3_]=a10 + (a24*z1)/2 - 2*b111*z2 - \
2*b113*z1*z2\"\>", 
   ",", "\<\"xse2[z1_, z2_, z3_]=a20 + a24*z2 - 2*b113*z2^2\"\>"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.469484102737887*^9, 3.471575703027399*^9, 
  3.483804363397646*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

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

Cell[BoxData[
 RowBox[{"{", "\<\"eta1[z1_, z2_, z3_]=b10 + b11*z1 + (b14*z1^2)/2 + \
(b15*z1^3)/6 + b14*z2 + b15*z1*z2 + b110*z3 + b111*z1*z3 + (b113*z1^2*z3)/2 + \
b113*z2*z3\"\>", "}"}]], "Output",
 CellChangeTimes->{3.469484102792192*^9, 3.471575703081489*^9, 
  3.483804363452148*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"1", ",", "0"}], "}"}], ",", 
     RowBox[{"{", "0", "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "1"}], "}"}], ",", 
     RowBox[{"{", "0", "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{
       FractionBox["x", "2"], ",", "t"}], "}"}], ",", 
     RowBox[{"{", "0", "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}], ",", 
     RowBox[{"{", "1", "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}], ",", 
     RowBox[{"{", "x", "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"t", "+", 
       FractionBox[
        SuperscriptBox["x", "2"], "2"]}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"t", " ", "x"}], "+", 
       FractionBox[
        SuperscriptBox["x", "3"], "6"]}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"0", ",", "0"}], "}"}], ",", 
     RowBox[{"{", "U", "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{
       RowBox[{
        RowBox[{"-", "2"}], " ", "t"}], ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"U", " ", "x"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{
       RowBox[{
        RowBox[{"-", "2"}], " ", "t", " ", "x"}], ",", 
       RowBox[{
        RowBox[{"-", "2"}], " ", 
        SuperscriptBox["t", "2"]}]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"t", " ", "U"}], "+", 
       FractionBox[
        RowBox[{"U", " ", 
         SuperscriptBox["x", "2"]}], "2"]}], "}"}]}], "}"}]}], 
  "}"}]], "Output",
 CellChangeTimes->{3.4694841028386393`*^9, 3.471575703128512*^9, 
  3.483804363498407*^9}]
}, Open  ]],

Cell["List the groups.", "Text"],

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

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"1", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "1"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         FractionBox["x", "2"], ",", "t"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "1", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "x", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"t", "+", 
         FractionBox[
          SuperscriptBox["x", "2"], "2"]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"t", " ", "x"}], "+", 
         FractionBox[
          SuperscriptBox["x", "3"], "6"]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "U", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"-", "2"}], " ", "t"}], ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"U", " ", "x"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"-", "2"}], " ", "t", " ", "x"}], ",", 
         RowBox[{
          RowBox[{"-", "2"}], " ", 
          SuperscriptBox["t", "2"]}]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"t", " ", "U"}], "+", 
         FractionBox[
          RowBox[{"U", " ", 
           SuperscriptBox["x", "2"]}], "2"]}], "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469484102892861*^9, 3.471575703183675*^9, 
  3.483804363552383*^9}],

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

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

Cell[BoxData[
 RowBox[{
  RowBox[{"rulesarraynew", "=", "\[IndentingNewLine]", 
   RowBox[{"{", 
    RowBox[{
    "\"\<D[U[x,t],x,x]->D[U[x,t],t]\>\"", ",", 
     "\"\<D[U[x,t],t]\[Rule](eta1prime[x,t,U[x,t]]/xse2prime[x,t,U[x,t]])-(\
xse1prime[x,t,U[x,t]]/xse2prime[x,t,U[x,t]])*D[U[x,t],x]\>\""}], "}"}]}], 
  ";"}]], "Input"],

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

Cell[CellGroupData[{

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

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(55854288\\), the time used = \\!\\(49.559848`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 55854288, 49.559848],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484103003778*^9, 3.47157570329115*^9, 
  3.483804363713245*^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.469484103003778*^9, 3.47157570329115*^9, 
  3.483804363769389*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(6\\), the \
byte count of zdeterminingequations = \\!\\(1704\\), the memory in use = \
\\!\\(55904648\\), the time used = \\!\\(49.63371300000001`\\)\"\>",
  StringForm[
  "The determining equations have been expressed in terms of z-variables, the \
length of zdeterminingequations = ``, the byte count of zdeterminingequations \
= ``, the memory in use = ``, the time used = ``", 6, 1704, 55904648, 
   49.63371300000001],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484103003778*^9, 3.47157570329115*^9, 
  3.483804363772822*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(55905704\\), the time used = \\!\\(49.633979`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 55905704, 49.633979],
  Editable->False]], "Print",
 CellChangeTimes->{3.469484103003778*^9, 3.47157570329115*^9, 
  3.483804363775345*^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.469484103003778*^9, 3.47157570329115*^9, 
  3.483804363777725*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.07497699999999696`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469484103068234*^9, 3.4715757033518133`*^9, 
  3.483804363781013*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData["6"], "Output",
 CellChangeTimes->{3.469484103186282*^9, 3.471575703457115*^9, 
  3.483804363815282*^9}]
}, Open  ]],

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

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

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

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

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

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

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{"-", "2"}], " ", 
     RowBox[{"xse2", "[", 
      RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["xse2", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{"-", 
       RowBox[{"xse2", "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "2"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{
      RowBox[{"xse1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse2", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "2"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}], 
   ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "2"}], " ", 
     RowBox[{"xse2", "[", 
      RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["xse2", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "\[Equal]", "0"}], ",", 
   RowBox[{
    RowBox[{
     RowBox[{"2", " ", 
      RowBox[{"xse1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{
      RowBox[{"xse2", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["eta1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "2"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{
      RowBox[{"eta1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse2", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "2"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{"2", " ", 
      RowBox[{"xse2", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{"2", " ", 
      RowBox[{"xse1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse2", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}], 
   ",", 
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{"-", 
       RowBox[{"xse2", "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], " ", 
      RowBox[{
       SuperscriptBox["eta1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "1", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{
      RowBox[{"eta1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse2", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "1", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{"2", " ", 
      RowBox[{"eta1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{
      RowBox[{"xse2", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["eta1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"2", ",", "0", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{
      RowBox[{"eta1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse2", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"2", ",", "0", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}], 
   ",", 
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{"-", "2"}], " ", 
      RowBox[{"eta1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{
      RowBox[{"xse2", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "1", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{
      RowBox[{"xse1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse2", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"0", ",", "1", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{"2", " ", 
      RowBox[{"xse1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{"2", " ", 
      RowBox[{"xse2", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["eta1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{"2", " ", 
      RowBox[{"eta1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse2", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"1", ",", "0", ",", "1"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "-", 
     RowBox[{
      RowBox[{"xse2", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse1", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"2", ",", "0", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}], "+", 
     RowBox[{
      RowBox[{"xse1", "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], " ", 
      RowBox[{
       SuperscriptBox["xse2", 
        TagBox[
         RowBox[{"(", 
          RowBox[{"2", ",", "0", ",", "0"}], ")"}],
         Derivative],
        MultilineFunction->None], "[", 
       RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}]}]}], "\[Equal]", "0"}]}], 
  "}"}]], "Output",
 CellChangeTimes->{3.469484103356518*^9, 3.471575703645524*^9, 
  3.4838043639985533`*^9}]
}, Open  ]],

Cell[TextData[StyleBox["These are the full nonlinear determining equations. \
This is an extremely complex system and the only reasonable way to make \
progress is to look for simplifying assumptions that lead to interesting \
solutions. To begin set xse2=1 (without loss of generality - see the text \
section 9.3).",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationssimplified", "=", 
   RowBox[{"zdeterminingequationsexpressions", "/.", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       RowBox[{"xse2", "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "\[Rule]", "1"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1"}], "]"}], 
       "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2"}], "]"}], 
       "\[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"}], "]"}], ",", "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"}], "]"}], ",", "z2", ",", "z2"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2", ",", "z3"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse2", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z3", ",", "z3"}],
         "]"}], "\[Rule]", "0"}]}], "}"}]}]}], ";"}]], "Input"],

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

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

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

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

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

Cell[TextData[StyleBox["This is still a fairly complex nonlinear system for \
xse1 and eta1. To make further progress let eta1=0 and D[xse1,z2]=0 and \
D[xse1,z3]=0.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"zdeterminingequationssimplified2", "=", 
   RowBox[{"zdeterminingequationssimplified1", "/.", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       RowBox[{"eta1", "[", 
        RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], "\[Rule]", "0"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1"}], "]"}], 
       "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2"}], "]"}], 
       "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z3"}], "]"}], 
       "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      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"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z1", ",", "z3"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2", ",", "z2"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2", ",", "z3"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"eta1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z3", ",", "z3"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2"}], "]"}], 
       "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2", ",", "z1"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z2", ",", "z2"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      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"}], "]"}], 
       "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z3", ",", "z1"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z3", ",", "z2"}],
         "]"}], "\[Rule]", "0"}], ",", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"D", "[", 
        RowBox[{
         RowBox[{"xse1", "[", 
          RowBox[{"z1", ",", "z2", ",", "z3"}], "]"}], ",", "z3", ",", "z3"}],
         "]"}], "\[Rule]", "0"}]}], "}"}]}]}], ";"}]], "Input"],

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

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

Cell[CellGroupData[{

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

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

Cell[TextData[{
 StyleBox["Finally with a series of simplified assumptions we have pared the \
determining equations to a simple result although other solutions to the full \
nonlinear system are certainly possible. Use ",
  FontWeight->"Plain"],
 StyleBox["Mathematica",
  FontWeight->"Plain",
  FontSlant->"Italic"],
 StyleBox[" to solve the remaining determining equation.",
  FontWeight->"Plain"]
}], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"DSolve", "[", 
  RowBox[{
   RowBox[{
    RowBox[{
     RowBox[{"2", "*", 
      RowBox[{"xse1", "[", "z1", "]"}], "*", 
      RowBox[{
       RowBox[{"xse1", "'"}], "[", "z1", "]"}]}], "-", 
     RowBox[{
      RowBox[{"xse1", "''"}], "[", "z1", "]"}]}], "\[Equal]", "0"}], ",", 
   RowBox[{"xse1", "[", "z1", "]"}], ",", "z1"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"xse1", "[", "z1", "]"}], "\[Rule]", 
    RowBox[{
     SqrtBox[
      RowBox[{"C", "[", "1", "]"}]], " ", 
     RowBox[{"Tan", "[", 
      RowBox[{
       RowBox[{"z1", " ", 
        SqrtBox[
         RowBox[{"C", "[", "1", "]"}]]}], "+", 
       RowBox[{
        SqrtBox[
         RowBox[{"C", "[", "1", "]"}]], " ", 
        RowBox[{"C", "[", "2", "]"}]}]}], "]"}]}]}], "}"}], "}"}]], "Output",
 CellChangeTimes->{3.469484103615425*^9, 3.471575703946261*^9, 
  3.483804364287444*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"D", "[", 
  RowBox[{
   RowBox[{"a", "*", 
    RowBox[{"Tan", "[", 
     RowBox[{
      RowBox[{"a", "*", "x"}], "+", "b"}], "]"}]}], ",", "x"}], 
  "]"}]], "Input"],

Cell[BoxData[
 RowBox[{
  SuperscriptBox["a", "2"], " ", 
  SuperscriptBox[
   RowBox[{"Sec", "[", 
    RowBox[{"b", "+", 
     RowBox[{"a", " ", "x"}]}], "]"}], "2"]}]], "Output",
 CellChangeTimes->{3.469484103644738*^9, 3.4715757039798803`*^9, 
  3.483804364333623*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"D", "[", 
  RowBox[{
   RowBox[{"a", "*", 
    RowBox[{"Tan", "[", 
     RowBox[{
      RowBox[{"a", "*", "x"}], "+", "b"}], "]"}]}], ",", "x", ",", "x"}], 
  "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"2", " ", 
  SuperscriptBox["a", "3"], " ", 
  SuperscriptBox[
   RowBox[{"Sec", "[", 
    RowBox[{"b", "+", 
     RowBox[{"a", " ", "x"}]}], "]"}], "2"], " ", 
  RowBox[{"Tan", "[", 
   RowBox[{"b", "+", 
    RowBox[{"a", " ", "x"}]}], "]"}]}]], "Output",
 CellChangeTimes->{3.469484103674061*^9, 3.471575704008195*^9, 
  3.483804364388068*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"2", "*", "a", "*", 
   RowBox[{"Tan", "[", 
    RowBox[{
     RowBox[{"a", "*", "x"}], "+", "b"}], "]"}], "*", 
   RowBox[{"D", "[", 
    RowBox[{
     RowBox[{"a", "*", 
      RowBox[{"Tan", "[", 
       RowBox[{
        RowBox[{"a", "*", "x"}], "+", "b"}], "]"}]}], ",", "x"}], "]"}]}], 
  "-", 
  RowBox[{"D", "[", 
   RowBox[{
    RowBox[{"a", "*", 
     RowBox[{"Tan", "[", 
      RowBox[{
       RowBox[{"a", "*", "x"}], "+", "b"}], "]"}]}], ",", "x", ",", "x"}], 
   "]"}]}]], "Input"],

Cell[BoxData["0"], "Output",
 CellChangeTimes->{3.469484103707676*^9, 3.471575704041403*^9, 
  3.483804364433852*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"D", "[", 
  RowBox[{
   RowBox[{
    RowBox[{"-", "a"}], "*", 
    RowBox[{"Tanh", "[", 
     RowBox[{
      RowBox[{"a", "*", "x"}], "+", "b"}], "]"}]}], ",", "x"}], 
  "]"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"-", 
   SuperscriptBox["a", "2"]}], " ", 
  SuperscriptBox[
   RowBox[{"Sech", "[", 
    RowBox[{"b", "+", 
     RowBox[{"a", " ", "x"}]}], "]"}], "2"]}]], "Output",
 CellChangeTimes->{3.4694841037411823`*^9, 3.471575704075376*^9, 
  3.483804364488415*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"D", "[", 
  RowBox[{
   RowBox[{
    RowBox[{"-", "a"}], "*", 
    RowBox[{"Tanh", "[", 
     RowBox[{
      RowBox[{"a", "*", "x"}], "+", "b"}], "]"}]}], ",", "x", ",", "x"}], 
  "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"2", " ", 
  SuperscriptBox["a", "3"], " ", 
  SuperscriptBox[
   RowBox[{"Sech", "[", 
    RowBox[{"b", "+", 
     RowBox[{"a", " ", "x"}]}], "]"}], "2"], " ", 
  RowBox[{"Tanh", "[", 
   RowBox[{"b", "+", 
    RowBox[{"a", " ", "x"}]}], "]"}]}]], "Output",
 CellChangeTimes->{3.469484103774304*^9, 3.471575704113256*^9, 
  3.483804364534781*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"2", "*", 
   RowBox[{"(", 
    RowBox[{"-", "1"}], ")"}], "*", "a", "*", 
   RowBox[{"Tanh", "[", 
    RowBox[{
     RowBox[{"a", "*", "x"}], "+", "b"}], "]"}], "*", 
   RowBox[{"D", "[", 
    RowBox[{
     RowBox[{
      RowBox[{"-", "a"}], "*", 
      RowBox[{"Tanh", "[", 
       RowBox[{
        RowBox[{"a", "*", "x"}], "+", "b"}], "]"}]}], ",", "x"}], "]"}]}], 
  "-", 
  RowBox[{"D", "[", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "a"}], "*", 
     RowBox[{"Tanh", "[", 
      RowBox[{
       RowBox[{"a", "*", "x"}], "+", "b"}], "]"}]}], ",", "x", ",", "x"}], 
   "]"}]}]], "Input"],

Cell[BoxData["0"], "Output",
 CellChangeTimes->{3.4694841038074007`*^9, 3.4715757041417103`*^9, 
  3.483804364588448*^9}]
}, Open  ]],

Cell[TextData[StyleBox["This is a nonclassical symmetry of the heat equation,",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

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

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

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

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

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

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"xse1", "[", 
   RowBox[{"z1_", ",", "z2_", ",", "z3_"}], "]"}], "=", 
  RowBox[{
   RowBox[{"-", 
    RowBox[{"Sqrt", "[", 
     RowBox[{"a", "^", "2"}], "]"}]}], "*", 
   RowBox[{"Tanh", "[", 
    RowBox[{
     RowBox[{"z1", "*", 
      RowBox[{"Sqrt", "[", 
       RowBox[{"a", "^", "2"}], "]"}]}], "+", 
     RowBox[{"b", "*", 
      RowBox[{"Sqrt", "[", 
       RowBox[{"a", "^", "2"}], "]"}]}]}], "]"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"-", 
   SqrtBox[
    SuperscriptBox["a", "2"]]}], " ", 
  RowBox[{"Tanh", "[", 
   RowBox[{
    RowBox[{
     SqrtBox[
      SuperscriptBox["a", "2"]], " ", "b"}], "+", 
    RowBox[{
     SqrtBox[
      SuperscriptBox["a", "2"]], " ", "z1"}]}], "]"}]}]], "Output",
 CellChangeTimes->{3.4694841039219713`*^9, 3.471575704239738*^9, 
  3.483804364800102*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"-", "1"}], "+", 
  RowBox[{"3", " ", "z3"}]}]], "Output",
 GeneratedCell->False,
 CellAutoOverwrite->False],

Cell[CellGroupData[{

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

Cell[BoxData["1"], "Output",
 CellChangeTimes->{3.469484103957974*^9, 3.471575704280201*^9, 
  3.483804364835333*^9}]
}, Open  ]],

Cell[BoxData[
 RowBox[{
  RowBox[{"eta1", "[", 
   RowBox[{"z1_", ",", "z2_", ",", "z3_"}], "]"}], ":=", "0"}]], "Input"],

Cell[CellGroupData[{

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

Cell[BoxData["0"], "Output",
 CellChangeTimes->{3.4694841040220423`*^9, 3.471575704341433*^9, 
  3.4838043649164867`*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"-", "2"}], " ", 
   SuperscriptBox[
    RowBox[{"(", 
     SuperscriptBox["a", "2"], ")"}], 
    RowBox[{"3", "/", "2"}]], " ", 
   SuperscriptBox[
    RowBox[{"Sech", "[", 
     RowBox[{
      RowBox[{
       SqrtBox[
        SuperscriptBox["a", "2"]], " ", "b"}], "+", 
      RowBox[{
       SqrtBox[
        SuperscriptBox["a", "2"]], " ", "x1"}]}], "]"}], "2"], " ", 
   RowBox[{"Tanh", "[", 
    RowBox[{
     RowBox[{
      SqrtBox[
       SuperscriptBox["a", "2"]], " ", "b"}], "+", 
     RowBox[{
      SqrtBox[
       SuperscriptBox["a", "2"]], " ", "x1"}]}], "]"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
  RowBox[{"2", " ", 
   SuperscriptBox["a", "2"], " ", 
   SuperscriptBox[
    RowBox[{"Sech", "[", 
     RowBox[{
      RowBox[{
       SqrtBox[
        SuperscriptBox["a", "2"]], " ", "b"}], "+", 
      RowBox[{
       SqrtBox[
        SuperscriptBox["a", "2"]], " ", "x1"}]}], "]"}], "2"], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"2", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.469484104058611*^9, 3.471575704377249*^9, 
  3.4838043649750338`*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0", ",", "0", ",", "0", ",", "0", ",", "0", ",", 
   RowBox[{
    RowBox[{
     RowBox[{"-", "2"}], " ", 
     SuperscriptBox[
      RowBox[{"(", 
       SuperscriptBox["a", "2"], ")"}], 
      RowBox[{"3", "/", "2"}]], " ", 
     SuperscriptBox[
      RowBox[{"Sech", "[", 
       RowBox[{
        RowBox[{
         SqrtBox[
          SuperscriptBox["a", "2"]], " ", "b"}], "+", 
        RowBox[{
         SqrtBox[
          SuperscriptBox["a", "2"]], " ", "x1"}]}], "]"}], "2"], " ", 
     RowBox[{"Tanh", "[", 
      RowBox[{
       RowBox[{
        SqrtBox[
         SuperscriptBox["a", "2"]], " ", "b"}], "+", 
       RowBox[{
        SqrtBox[
         SuperscriptBox["a", "2"]], " ", "x1"}]}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
    RowBox[{"2", " ", 
     SuperscriptBox["a", "2"], " ", 
     SuperscriptBox[
      RowBox[{"Sech", "[", 
       RowBox[{
        RowBox[{
         SqrtBox[
          SuperscriptBox["a", "2"]], " ", "b"}], "+", 
        RowBox[{
         SqrtBox[
          SuperscriptBox["a", "2"]], " ", "x1"}]}], "]"}], "2"], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"2", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ",", "0", ",", "0"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.469484104096648*^9, 3.471575704474368*^9, 
  3.483804365025103*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{
  RowBox[{"2", " ", 
   SuperscriptBox["a", "2"], " ", 
   SuperscriptBox[
    RowBox[{"Sech", "[", 
     RowBox[{
      RowBox[{
       SqrtBox[
        SuperscriptBox["a", "2"]], " ", "b"}], "+", 
      RowBox[{
       SqrtBox[
        SuperscriptBox["a", "2"]], " ", "x1"}]}], "]"}], "2"], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"0", ",", "1"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
  RowBox[{"2", " ", 
   SuperscriptBox[
    RowBox[{"(", 
     SuperscriptBox["a", "2"], ")"}], 
    RowBox[{"3", "/", "2"}]], " ", 
   SuperscriptBox[
    RowBox[{"Sech", "[", 
     RowBox[{
      RowBox[{
       SqrtBox[
        SuperscriptBox["a", "2"]], " ", "b"}], "+", 
      RowBox[{
       SqrtBox[
        SuperscriptBox["a", "2"]], " ", "x1"}]}], "]"}], "2"], " ", 
   RowBox[{"Tanh", "[", 
    RowBox[{
     RowBox[{
      SqrtBox[
       SuperscriptBox["a", "2"]], " ", "b"}], "+", 
     RowBox[{
      SqrtBox[
       SuperscriptBox["a", "2"]], " ", "x1"}]}], "]"}], " ", 
   RowBox[{
    SuperscriptBox["y1", 
     TagBox[
      RowBox[{"(", 
       RowBox[{"1", ",", "0"}], ")"}],
      Derivative],
     MultilineFunction->None], "[", 
    RowBox[{"x1", ",", "x2"}], "]"}]}]}]], "Output",
 CellChangeTimes->{3.4694841041738033`*^9, 3.4715757045148907`*^9, 
  3.48380436507498*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"2", " ", 
  SuperscriptBox[
   RowBox[{"Sech", "[", 
    RowBox[{
     SqrtBox[
      SuperscriptBox["a", "2"]], " ", 
     RowBox[{"(", 
      RowBox[{"b", "+", "x1"}], ")"}]}], "]"}], "2"], " ", 
  RowBox[{"(", 
   RowBox[{
    RowBox[{
     SuperscriptBox["a", "2"], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"0", ",", "1"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "-", 
    RowBox[{
     SuperscriptBox[
      RowBox[{"(", 
       SuperscriptBox["a", "2"], ")"}], 
      RowBox[{"3", "/", "2"}]], " ", 
     RowBox[{"Tanh", "[", 
      RowBox[{
       SqrtBox[
        SuperscriptBox["a", "2"]], " ", 
       RowBox[{"(", 
        RowBox[{"b", "+", "x1"}], ")"}]}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ")"}]}]], "Output",
 CellChangeTimes->{3.469484104324275*^9, 3.4715757046595697`*^9, 
  3.483804365259321*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"%", "/.", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"D", "[", 
     RowBox[{
      RowBox[{"y1", "[", 
       RowBox[{"x1", ",", "x2"}], "]"}], ",", "x2"}], "]"}], "\[Rule]", 
    RowBox[{
     RowBox[{"-", 
      RowBox[{"(", 
       RowBox[{
        RowBox[{"-", 
         RowBox[{"Sqrt", "[", 
          RowBox[{"a", "^", "2"}], "]"}]}], "*", 
        RowBox[{"Tanh", "[", 
         RowBox[{
          RowBox[{"x1", "*", 
           RowBox[{"Sqrt", "[", 
            RowBox[{"a", "^", "2"}], "]"}]}], "+", 
          RowBox[{"b", "*", 
           RowBox[{"Sqrt", "[", 
            RowBox[{"a", "^", "2"}], "]"}]}]}], "]"}]}], ")"}]}], "*", 
     RowBox[{"D", "[", 
      RowBox[{
       RowBox[{"y1", "[", 
        RowBox[{"x1", ",", "x2"}], "]"}], ",", "x1"}], "]"}]}]}], 
   "}"}]}]], "Input"],

Cell[BoxData[
 RowBox[{"2", " ", 
  SuperscriptBox[
   RowBox[{"Sech", "[", 
    RowBox[{
     SqrtBox[
      SuperscriptBox["a", "2"]], " ", 
     RowBox[{"(", 
      RowBox[{"b", "+", "x1"}], ")"}]}], "]"}], "2"], " ", 
  RowBox[{"(", 
   RowBox[{
    RowBox[{
     RowBox[{"-", 
      SuperscriptBox[
       RowBox[{"(", 
        SuperscriptBox["a", "2"], ")"}], 
       RowBox[{"3", "/", "2"}]]}], " ", 
     RowBox[{"Tanh", "[", 
      RowBox[{
       SqrtBox[
        SuperscriptBox["a", "2"]], " ", 
       RowBox[{"(", 
        RowBox[{"b", "+", "x1"}], ")"}]}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}], "+", 
    RowBox[{
     SuperscriptBox[
      RowBox[{"(", 
       SuperscriptBox["a", "2"], ")"}], 
      RowBox[{"3", "/", "2"}]], " ", 
     RowBox[{"Tanh", "[", 
      RowBox[{
       RowBox[{
        SqrtBox[
         SuperscriptBox["a", "2"]], " ", "b"}], "+", 
       RowBox[{
        SqrtBox[
         SuperscriptBox["a", "2"]], " ", "x1"}]}], "]"}], " ", 
     RowBox[{
      SuperscriptBox["y1", 
       TagBox[
        RowBox[{"(", 
         RowBox[{"1", ",", "0"}], ")"}],
        Derivative],
       MultilineFunction->None], "[", 
      RowBox[{"x1", ",", "x2"}], "]"}]}]}], ")"}]}]], "Output",
 CellChangeTimes->{3.4694841043598213`*^9, 3.471575704693899*^9, 
  3.4838043653015947`*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData["0"], "Output",
 CellChangeTimes->{3.4694841044619303`*^9, 3.471575704752042*^9, 
  3.483804365403777*^9}]
}, Open  ]],

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

Cell[TextData[{
 "xse1[x, t, U]:=-Sqrt[a^2]*Tanh[x*Sqrt[a^2]+b*Sqrt[a^2]]\nxse2[x, t, U]:=1\n\
eta1[x, t, U]:=0\n\nwith group operator\n\n\
X=-(Sqrt[a^2]*Tanh[x*Sqrt[a^2]+b*Sqrt[a^2]]) ",
 StyleBox["\[PartialD]/\[PartialD]x+(\[PartialD]/\[PartialD]t).",
  FontWeight->"Plain"]
}], "Text"],

Cell[TextData[StyleBox["over the set of solutions that satisfy the condition \
XU=0.",
 FontWeight->"Plain"]], "Text"],

Cell[CellGroupData[{

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

Cell[BoxData["864633528"], "Output",
 CellChangeTimes->{3.469484104507462*^9, 3.471575704775632*^9, 
  3.483804365451211*^9}]
}, Open  ]]
},
WindowToolbars->{},
CellGrouping->Manual,
WindowSize->{1009, 904},
WindowMargins->{{5, Automatic}, {Automatic, 17}},
PrintingCopies->1,
PrintingPageRange->{1, Automatic},
PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}},
ShowCellLabel->True,
ShowCellTags->False,
RenderingOptions->{"ObjectDithering"->True,
"RasterDithering"->False},
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, 646, 16, 200, "Text"],
Cell[1194, 38, 124, 1, 32, "Text"],
Cell[1321, 41, 160, 4, 33, "Input"],
Cell[1484, 47, 476, 13, 32, "Text"],
Cell[1963, 62, 101, 2, 33, "Input"],
Cell[2067, 66, 163, 3, 32, "Text"],
Cell[2233, 71, 119, 3, 53, "Input"],
Cell[2355, 76, 257, 4, 51, "Text"],
Cell[2615, 82, 156, 3, 53, "Input"],
Cell[2774, 87, 130, 2, 32, "Text"],
Cell[2907, 91, 151, 4, 33, "Input"],
Cell[3061, 97, 128, 2, 32, "Text"],
Cell[3192, 101, 116, 3, 33, "Input"],
Cell[3311, 106, 228, 4, 32, "Text"],
Cell[3542, 112, 96, 3, 33, "Input"],
Cell[3641, 117, 152, 3, 32, "Text"],
Cell[3796, 122, 67, 2, 33, "Input"],
Cell[3866, 126, 385, 6, 51, "Text"],
Cell[4254, 134, 67, 2, 33, "Input"],
Cell[4324, 138, 509, 7, 70, "Text"],
Cell[4836, 147, 71, 2, 33, "Input"],
Cell[4910, 151, 576, 8, 89, "Text"],
Cell[5489, 161, 79, 2, 33, "Input"],
Cell[5571, 165, 268, 4, 51, "Text"],
Cell[CellGroupData[{
Cell[5864, 173, 300, 6, 53, "Input"],
Cell[6167, 181, 427, 8, 45, "Print"],
Cell[6597, 191, 1006, 14, 197, "Print"],
Cell[7606, 207, 681, 12, 64, "Print"],
Cell[8290, 221, 412, 8, 25, "Print"],
Cell[8705, 231, 1008, 14, 197, "Print"],
Cell[9716, 247, 184, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[9937, 256, 50, 0, 33, "Input"],
Cell[9990, 258, 156, 2, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[10183, 265, 45, 0, 33, "Input"],
Cell[10231, 267, 243, 5, 33, "Output"]
}, Open  ]],
Cell[10489, 275, 39, 0, 33, "Input"],
Cell[10531, 277, 320, 9, 33, "Output"],
Cell[CellGroupData[{
Cell[10876, 290, 279, 4, 51, "Text"],
Cell[11158, 296, 64, 1, 33, "Input"]
}, Open  ]],
Cell[11237, 300, 287, 10, 33, "Input"],
Cell[11527, 312, 5306, 171, 221, "Output"],
Cell[16836, 485, 57, 0, 32, "Text"],
Cell[CellGroupData[{
Cell[16918, 489, 78, 1, 33, "Input"],
Cell[16999, 492, 117, 2, 33, "Output"]
}, Open  ]],
Cell[17131, 497, 491, 11, 145, "Text"],
Cell[CellGroupData[{
Cell[17647, 512, 296, 6, 53, "Input"],
Cell[17946, 520, 854, 14, 83, "Print"],
Cell[18803, 536, 417, 6, 83, "Print"],
Cell[19223, 544, 332, 7, 25, "Print"],
Cell[19558, 553, 296, 6, 25, "Print"],
Cell[19857, 561, 321, 7, 25, "Print"],
Cell[20181, 570, 299, 4, 45, "Print"],
Cell[20483, 576, 312, 6, 25, "Print"],
Cell[20798, 584, 144, 2, 25, "Print"],
Cell[20945, 588, 188, 3, 25, "Print"],
Cell[21136, 593, 310, 6, 25, "Print"],
Cell[21449, 601, 1063, 14, 235, "Print"],
Cell[22515, 617, 187, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[22739, 626, 184, 3, 32, "Text"],
Cell[22926, 631, 38, 0, 33, "Input"],
Cell[22967, 633, 294, 7, 53, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[23298, 645, 141, 2, 32, "Text"],
Cell[23442, 649, 38, 0, 33, "Input"],
Cell[23483, 651, 288, 5, 53, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[23808, 661, 268, 7, 33, "Input"],
Cell[24079, 670, 2111, 76, 105, "Output"]
}, Open  ]],
Cell[26205, 749, 32, 0, 32, "Text"],
Cell[26240, 751, 78, 1, 33, "Input"],
Cell[26321, 754, 2387, 88, 269, "Output"],
Cell[28711, 844, 94, 2, 32, "Text"],
Cell[28808, 848, 659, 9, 145, "Text"],
Cell[29470, 859, 328, 8, 91, "Input"],
Cell[29801, 869, 194, 6, 33, "Input"],
Cell[CellGroupData[{
Cell[30020, 879, 303, 6, 53, "Input"],
Cell[30326, 887, 424, 8, 45, "Print"],
Cell[30753, 897, 1005, 14, 197, "Print"],
Cell[31761, 913, 696, 12, 64, "Print"],
Cell[32460, 927, 392, 8, 25, "Print"],
Cell[32855, 937, 1007, 14, 197, "Print"],
Cell[33865, 953, 186, 4, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[34088, 962, 79, 1, 33, "Input"],
Cell[34170, 965, 117, 2, 33, "Output"]
}, Open  ]],
Cell[34302, 970, 287, 10, 33, "Input"],
Cell[34592, 982, 9255, 270, 317, "Output"],
Cell[43850, 1254, 180, 3, 32, "Text"],
Cell[44033, 1259, 194, 5, 33, "Input"],
Cell[44230, 1266, 194, 5, 33, "Input"],
Cell[44427, 1273, 194, 5, 33, "Input"],
Cell[CellGroupData[{
Cell[44646, 1282, 139, 2, 33, "Input"],
Cell[44788, 1286, 8493, 265, 310, "Output"]
}, Open  ]],
Cell[53296, 1554, 382, 6, 51, "Text"],
Cell[53681, 1562, 2378, 63, 224, "Input"],
Cell[56062, 1627, 255, 9, 33, "Input"],
Cell[56320, 1638, 4340, 133, 169, "Output"],
Cell[60663, 1773, 393, 10, 53, "Input"],
Cell[61059, 1785, 256, 9, 33, "Input"],
Cell[61318, 1796, 4033, 123, 165, "Output"],
Cell[65354, 1921, 231, 4, 32, "Text"],
Cell[65588, 1927, 4203, 111, 376, "Input"],
Cell[69794, 2040, 256, 9, 33, "Input"],
Cell[70053, 2051, 1070, 34, 133, "Output"],
Cell[CellGroupData[{
Cell[71148, 2089, 61, 1, 33, "Input"],
Cell[71212, 2092, 1023, 33, 133, "Output"]
}, Open  ]],
Cell[72250, 2128, 444, 11, 51, "Text"],
Cell[CellGroupData[{
Cell[72719, 2143, 371, 11, 33, "Input"],
Cell[73093, 2156, 555, 18, 42, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[73685, 2179, 189, 7, 33, "Input"],
Cell[73877, 2188, 271, 8, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[74185, 2201, 199, 7, 33, "Input"],
Cell[74387, 2210, 368, 11, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[74792, 2226, 527, 19, 33, "Input"],
Cell[75322, 2247, 117, 2, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[75476, 2254, 210, 8, 33, "Input"],
Cell[75689, 2264, 291, 9, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[76017, 2278, 220, 8, 33, "Input"],
Cell[76240, 2288, 370, 11, 38, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[76647, 2304, 627, 23, 33, "Input"],
Cell[77277, 2329, 121, 2, 33, "Output"]
}, Open  ]],
Cell[77413, 2334, 143, 2, 32, "Text"],
Cell[77559, 2338, 300, 6, 145, "Text"],
Cell[77862, 2346, 153, 3, 32, "Text"],
Cell[78018, 2351, 67, 2, 33, "Input"],
Cell[78088, 2355, 67, 2, 33, "Input"],
Cell[78158, 2359, 67, 2, 33, "Input"],
Cell[CellGroupData[{
Cell[78250, 2365, 457, 15, 33, "Input"],
Cell[78710, 2382, 390, 14, 51, "Output"]
}, Open  ]],
Cell[79115, 2399, 142, 5, 33, "Output"],
Cell[CellGroupData[{
Cell[79282, 2408, 120, 3, 33, "Input"],
Cell[79405, 2413, 117, 2, 33, "Output"]
}, Open  ]],
Cell[79537, 2418, 121, 3, 33, "Input"],
Cell[CellGroupData[{
Cell[79683, 2425, 116, 4, 50, "Input"],
Cell[79802, 2431, 121, 2, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[79960, 2438, 122, 4, 50, "Input"],
Cell[80085, 2444, 1449, 53, 95, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[81571, 2502, 111, 4, 50, "Input"],
Cell[81685, 2508, 1657, 56, 96, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[83379, 2569, 176, 6, 82, "Input"],
Cell[83558, 2577, 1431, 52, 95, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[85026, 2634, 60, 1, 33, "Input"],
Cell[85089, 2637, 1171, 41, 57, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[86297, 2683, 821, 27, 33, "Input"],
Cell[87121, 2712, 1507, 53, 96, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[88665, 2770, 61, 1, 33, "Input"],
Cell[88729, 2773, 119, 2, 33, "Output"]
}, Open  ]],
Cell[88863, 2778, 161, 3, 32, "Text"],
Cell[89027, 2783, 288, 6, 145, "Text"],
Cell[89318, 2791, 118, 2, 32, "Text"],
Cell[CellGroupData[{
Cell[89461, 2797, 66, 1, 33, "Input"],
Cell[89530, 2800, 125, 2, 33, "Output"]
}, Open  ]]
}
]
*)

(* End of internal cache information *)
