(* 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[     79433,       2185]
NotebookOptionsPosition[     73187,       1996]
NotebookOutlinePosition[     73964,       2023]
CellTagsIndexPosition[     73921,       2020]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[TextData[StyleBox["In this example we use the package IntroToSymmetry.m \
to work out the point group of the Euler-Tricomi equation that governs the \
transonic flow very near the transition line between sub and supersonic flow \
in a so-called mixed flow situation. \n\nUxx-x*Uyy=0.",
 FontSize->14,
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

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

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

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

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

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

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

Cell[BoxData[
 RowBox[{
  RowBox[{
  "tricomiequation", "=", "\n", "\"\<D[u[x,y],x,x]-x*D[u[x,y],y,y]\>\""}], 
  ";"}]], "Input"],

Cell[TextData[StyleBox["The function u[x,y] 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,y],x,x]->x*D[u[x,y],y,y]\>\"", "}"}]}], 
  ";"}]], "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\>\"", ",", "\"\<y\>\""}], "}"}]}], ";"}]], "Input"],

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

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

Cell[TextData[StyleBox["Enter the list of function and/or constant names.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

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

Cell[TextData[StyleBox["Enter the maximum derivative order of the 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[{"rorder", "=", "0"}], ";"}]], "Input",
 CellChangeTimes->{{3.471562879770968*^9, 3.471562880768386*^9}}],

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

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

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

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

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

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"FindDeterminingEquations", "[", 
  RowBox[{
  "independentvariables", ",", "dependentvariables", ",", "frozennames", ",", 
   "p", ",", "rorder", ",", "xseon", ",", "tricomiequation", ",", 
   "rulesarray", ",", "internalrules"}], "]"}]], "Input",
 CellChangeTimes->{{3.471562885113669*^9, 3.47156288618532*^9}}],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(25090728\\), the time used = \\!\\(0.545712`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 25090728, 0.545712],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694714942530746`*^9, 3.47156256766816*^9, 
  3.471562612566101*^9, 3.471562994700651*^9, 3.471579521541727*^9, 
  3.483747228818551*^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.4694714942530746`*^9, 3.47156256766816*^9, 
  3.471562612566101*^9, 3.471562994700651*^9, 3.471579521541727*^9, 
  3.483747228874609*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(16\\), the \
byte count of zdeterminingequations = \\!\\(1920\\), the memory in use = \
\\!\\(25256112\\), the time used = \\!\\(0.6211530000000001`\\)\"\>",
  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 = ``", 16, 1920, 25256112, 
   0.6211530000000001],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694714942530746`*^9, 3.47156256766816*^9, 
  3.471562612566101*^9, 3.471562994700651*^9, 3.471579521541727*^9, 
  3.483747228907407*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(25257168\\), the time used = \\!\\(0.621384`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 25257168, 0.621384],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694714942530746`*^9, 3.47156256766816*^9, 
  3.471562612566101*^9, 3.471562994700651*^9, 3.471579521541727*^9, 
  3.483747228909734*^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.4694714942530746`*^9, 3.47156256766816*^9, 
  3.471562612566101*^9, 3.471562994700651*^9, 3.471579521541727*^9, 
  3.483747228911841*^9}]
}, Open  ]],

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

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"-", 
    RowBox[{
     SuperscriptBox["y1", 
      TagBox[
       RowBox[{"(", 
        RowBox[{"0", ",", "2"}], ")"}],
       Derivative],
      MultilineFunction->None], "[", 
     RowBox[{"x1", ",", "x2"}], "]"}]}], ",", "0", ",", "0", ",", "0", ",", 
   "0", ",", "1", ",", "0", ",", 
   RowBox[{"-", "x1"}]}], "}"}]], "Output",
 CellChangeTimes->{3.4694714944102783`*^9, 3.4715625679051933`*^9, 
  3.471562612673975*^9, 3.471562994857795*^9, 3.471579521695403*^9, 
  3.483747228945735*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"z1", "\[Rule]", "x"}], ",", 
   RowBox[{"z2", "\[Rule]", "y"}], ",", 
   RowBox[{"z3", "\[Rule]", 
    RowBox[{"u", "[", 
     RowBox[{"x", ",", "y"}], "]"}]}]}], "}"}]], "Output",
 CellChangeTimes->{3.469471494455616*^9, 3.471562567964397*^9, 
  3.471562612724059*^9, 3.471562994906836*^9, 3.4715795217496843`*^9, 
  3.483747229033934*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"-2*z1*Derivative[0, 0, 1][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"2*z1*Derivative[0, 0, 1][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-2*Derivative[0, 0, 1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"2*z1*Derivative[0, 0, 1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-Derivative[0, 0, 2][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"z1*Derivative[0, 0, 2][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-Derivative[0, 0, 2][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"z1*Derivative[0, 0, 2][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-(z1*Derivative[0, 0, 2][eta1][z1, z2, z3]) + 2*z1*Derivative[0, \
1, 1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-xse1[z1, z2, z3] + 2*z1*Derivative[0, 1, 0][xse2][z1, z2, z3] - \
2*z1*Derivative[1, 0, 0][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"2*z1*Derivative[0, 1, 0][xse1][z1, z2, z3] - 2*Derivative[1, 0, \
0][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"Derivative[0, 0, 2][eta1][z1, z2, z3] - 2*Derivative[1, 0, \
1][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"2*z1*Derivative[0, 1, 1][xse1][z1, z2, z3] - 2*Derivative[1, 0, \
1][xse2][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-(z1*Derivative[0, 2, 0][eta1][z1, z2, z3]) + Derivative[2, 0, \
0][eta1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"z1*Derivative[0, 2, 0][xse1][z1, z2, z3] + 2*Derivative[1, 0, \
1][eta1][z1, z2, z3] - Derivative[2, 0, 0][xse1][z1, z2, z3] == 0\"\>", 
   ",", "\<\"-2*z1*Derivative[0, 1, 1][eta1][z1, z2, z3] + z1*Derivative[0, \
2, 0][xse2][z1, z2, z3] - Derivative[2, 0, 0][xse2][z1, z2, z3] == 0\"\>"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.4694714945105886`*^9, 3.471562568030842*^9, 
  3.471562612770578*^9, 3.471562994944434*^9, 3.4715795217951603`*^9, 
  3.483747229078723*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData["16"], "Output",
 CellChangeTimes->{3.4694714945556583`*^9, 3.471562568121834*^9, 
  3.471562612820279*^9, 3.4715629949899397`*^9, 3.471579521849534*^9, 
  3.4837472291127234`*^9}]
}, Open  ]],

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

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

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

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"SolveDeterminingEquations", "[", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "rorder", ",", 
    "xseon", ",", "zdeterminingequations", ",", 
    RowBox[{"order", "=", "3"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.4715629616038733`*^9, 3.4715629625495863`*^9}}],

Cell[BoxData[
 InterpretationBox["\<\"The variable powertablelength is the number of terms \
required for each multivariate polynomial used for the infinitesimals. This \
number is determined by the choice of polynomial order and the number of \
zvariables. The time needed to solve the determining equations increases as \
powertable increases. powertablelength = \\!\\(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.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.483747229176705*^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.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.483747229181024*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(25497432\\), The time = \\!\
\\(0.64374`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 25497432, 0.64374],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.4837472291841297`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of unknown polynomial coefficients = \
\\!\\(60\\)\"\>",
  StringForm["The number of unknown polynomial coefficients = ``", 60],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.4837472291869707`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(109\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 109],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.4837472291897373`*^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.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.4837472291924143`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(25537224\\), The time = \\!\
\\(0.647293`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 25537224, 0.647293],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.483747229194955*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.4837472291970987`*^9}],

Cell[BoxData["\<\"The function SolveDeterminingEquations is finished \
executing.\"\>"], "Print",
 CellChangeTimes->{3.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.483747229198978*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(25694016\\), The time = \\!\
\\(0.65484`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 25694016, 0.65484],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.4837472292008457`*^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.469471494610615*^9, 3.471562568185418*^9, 
  3.471562612874774*^9, 3.471562995045341*^9, 3.471579521897977*^9, 
  3.483747229202846*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.02958099999999997`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469471494619369*^9, 3.471562568196957*^9, 
  3.471562612899749*^9, 3.4715629950703382`*^9, 3.471579521909606*^9, 
  3.4837472292054987`*^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_]=(2*a24*z1)/3 - 4*b113*z1*z2\"\>", 
   ",", "\<\"xse2[z1_, z2_, z3_]=a20 - (4*b113*z1^3)/3 + a24*z2 - 3*b113*z2^2\
\"\>"}], "}"}]], "Output",
 CellChangeTimes->{3.46947149466083*^9, 3.471562568237413*^9, 
  3.471562612936532*^9, 3.471562995107461*^9, 3.471579521945362*^9, 
  3.483747229241534*^9}]
}, Open  ]],

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

Cell[BoxData[
 RowBox[{"{", "\<\"eta1[z1_, z2_, z3_]=b10 + b11*z1 + (b17*z1^3)/3 + b14*z2 + \
b15*z1*z2 + b17*z2^2 + b110*z3 + b113*z2*z3\"\>", "}"}]], "Output",
 CellChangeTimes->{3.469471494707584*^9, 3.4715625682907476`*^9, 
  3.47156261297364*^9, 3.4715629951613607`*^9, 3.471579521999696*^9, 
  3.4837472292976723`*^9}],

Cell[CellGroupData[{

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

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{
    FractionBox[
     RowBox[{"2", " ", "a24", " ", "x"}], "3"], "-", 
    RowBox[{"4", " ", "b113", " ", "t", " ", "x"}]}], ",", 
   RowBox[{"a20", "+", 
    RowBox[{"a24", " ", "t"}], "-", 
    RowBox[{"3", " ", "b113", " ", 
     SuperscriptBox["t", "2"]}], "-", 
    FractionBox[
     RowBox[{"4", " ", "b113", " ", 
      SuperscriptBox["x", "3"]}], "3"]}]}], "}"}]], "Output",
 CellChangeTimes->{3.469471494760685*^9, 3.4715625683408623`*^9, 
  3.4715626130203533`*^9, 3.471562995223713*^9, 3.471579522045904*^9, 
  3.483747229358618*^9}]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

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

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"b10", "+", 
   RowBox[{"b14", " ", "t"}], "+", 
   RowBox[{"b17", " ", 
    SuperscriptBox["t", "2"]}], "+", 
   RowBox[{"b110", " ", "u"}], "+", 
   RowBox[{"b113", " ", "t", " ", "u"}], "+", 
   RowBox[{"b11", " ", "x"}], "+", 
   RowBox[{"b15", " ", "t", " ", "x"}], "+", 
   FractionBox[
    RowBox[{"b17", " ", 
     SuperscriptBox["x", "3"]}], "3"]}], "}"}]], "Output",
 CellChangeTimes->{3.469471494806781*^9, 3.4715625683869*^9, 
  3.471562613073627*^9, 3.471562995278296*^9, 3.4715795220994663`*^9, 
  3.483747229408701*^9}]
}, Open  ]],

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

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

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "1"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         FractionBox[
          RowBox[{"2", " ", "x"}], "3"], ",", "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[{"{", "t", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"t", " ", "x"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         SuperscriptBox["t", "2"], "+", 
         FractionBox[
          SuperscriptBox["x", "3"], "3"]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "u", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"-", "4"}], " ", "t", " ", "x"}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "3"}], " ", 
           SuperscriptBox["t", "2"]}], "-", 
          FractionBox[
           RowBox[{"4", " ", 
            SuperscriptBox["x", "3"]}], "3"]}]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"t", " ", "u"}], "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469471494862048*^9, 3.471562568516404*^9, 
  3.4715626131208143`*^9, 3.4715629953249817`*^9, 3.471579522147128*^9, 
  3.483747229463286*^9}],

Cell[TextData[StyleBox["We assumed a third order solution and this last \
expression contains third order terms. So far the infinitesimal for the \
dependent variable has not truncated and we need to recalculate with a higher \
order polynomial.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"SolveDeterminingEquations", "[", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "rorder", ",", 
    "xseon", ",", "zdeterminingequations", ",", 
    RowBox[{"order", "=", "4"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.471562971757494*^9, 3.471562972933618*^9}}],

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

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(26169272\\), The time = \\!\
\\(0.700095`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 26169272, 0.700095],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471494924294*^9, 3.471562568577619*^9, 
  3.471562613175398*^9, 3.4715629953774853`*^9, 3.4715795222047377`*^9, 
  3.48374722951027*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of unknown polynomial coefficients = \
\\!\\(105\\)\"\>",
  StringForm["The number of unknown polynomial coefficients = ``", 105],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471494924294*^9, 3.471562568577619*^9, 
  3.471562613175398*^9, 3.4715629953774853`*^9, 3.4715795222047377`*^9, 
  3.4837472295456676`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(228\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 228],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471494924294*^9, 3.471562568577619*^9, 
  3.471562613175398*^9, 3.4715629953774853`*^9, 3.4715795222047377`*^9, 
  3.48374722954704*^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.469471494924294*^9, 3.471562568577619*^9, 
  3.471562613175398*^9, 3.4715629953774853`*^9, 3.4715795222047377`*^9, 
  3.4837472295483103`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(26237608\\), The time = \\!\
\\(0.7071339999999999`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 26237608, 0.7071339999999999],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471494924294*^9, 3.471562568577619*^9, 
  3.471562613175398*^9, 3.4715629953774853`*^9, 3.4715795222047377`*^9, 
  3.4837472295497713`*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469471494924294*^9, 3.471562568577619*^9, 
  3.471562613175398*^9, 3.4715629953774853`*^9, 3.4715795222047377`*^9, 
  3.483747229575409*^9}],

Cell[BoxData["\<\"The function SolveDeterminingEquations is finished \
executing.\"\>"], "Print",
 CellChangeTimes->{3.469471494924294*^9, 3.471562568577619*^9, 
  3.471562613175398*^9, 3.4715629953774853`*^9, 3.4715795222047377`*^9, 
  3.483747229610859*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(26283504\\), The time = \\!\
\\(0.716257`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 26283504, 0.716257],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471494924294*^9, 3.471562568577619*^9, 
  3.471562613175398*^9, 3.4715629953774853`*^9, 3.4715795222047377`*^9, 
  3.4837472296425056`*^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.469471494924294*^9, 3.471562568577619*^9, 
  3.471562613175398*^9, 3.4715629953774853`*^9, 3.4715795222047377`*^9, 
  3.483747229678594*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.054199`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469471494981123*^9, 3.47156256858941*^9, 
  3.4715626132124987`*^9, 3.4715629953943853`*^9, 3.47157952221935*^9, 
  3.483747229710533*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"b10", "+", 
   RowBox[{"b15", " ", "t"}], "+", 
   RowBox[{"b19", " ", 
    SuperscriptBox["t", "2"]}], "+", 
   RowBox[{"b112", " ", 
    SuperscriptBox["t", "3"]}], "+", 
   RowBox[{"b115", " ", "u"}], "+", 
   RowBox[{"b119", " ", "t", " ", "u"}], "+", 
   RowBox[{"b11", " ", "x"}], "+", 
   RowBox[{"b16", " ", "t", " ", "x"}], "+", 
   RowBox[{"b110", " ", 
    SuperscriptBox["t", "2"], " ", "x"}], "+", 
   FractionBox[
    RowBox[{"b19", " ", 
     SuperscriptBox["x", "3"]}], "3"], "+", 
   RowBox[{"b112", " ", "t", " ", 
    SuperscriptBox["x", "3"]}], "+", 
   FractionBox[
    RowBox[{"b110", " ", 
     SuperscriptBox["x", "4"]}], "6"]}], "}"}]], "Output",
 CellChangeTimes->{3.469471495105294*^9, 3.471562568625244*^9, 
  3.47156261329154*^9, 3.471562995501545*^9, 3.4715795223418303`*^9, 
  3.483747229927899*^9}]
}, Open  ]],

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

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

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "1"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         FractionBox[
          RowBox[{"2", " ", "x"}], "3"], ",", "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[{"{", "t", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"t", " ", "x"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         SuperscriptBox["t", "2"], "+", 
         FractionBox[
          SuperscriptBox["x", "3"], "3"]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          SuperscriptBox["t", "2"], " ", "x"}], "+", 
         FractionBox[
          SuperscriptBox["x", "4"], "6"]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         SuperscriptBox["t", "3"], "+", 
         RowBox[{"t", " ", 
          SuperscriptBox["x", "3"]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "u", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"-", "4"}], " ", "t", " ", "x"}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "3"}], " ", 
           SuperscriptBox["t", "2"]}], "-", 
          FractionBox[
           RowBox[{"4", " ", 
            SuperscriptBox["x", "3"]}], "3"]}]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"t", " ", "u"}], "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469471495163505*^9, 3.471562568673277*^9, 
  3.471562613420341*^9, 3.471562995541936*^9, 3.471579522384902*^9, 
  3.4837472299862337`*^9}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Timing", "[", 
  RowBox[{"SolveDeterminingEquations", "[", 
   RowBox[{
   "independentvariables", ",", "dependentvariables", ",", "rorder", ",", 
    "xseon", ",", "zdeterminingequations", ",", 
    RowBox[{"order", "=", "5"}]}], "]"}], "]"}]], "Input",
 CellChangeTimes->{{3.471562981252887*^9, 3.471562982228593*^9}}],

Cell[BoxData[
 InterpretationBox["\<\"The variable powertablelength is the number of terms \
required for each multivariate polynomial used for the infinitesimals. This \
number is determined by the choice of polynomial order and the number of \
zvariables. The time needed to solve the determining equations increases as \
powertable increases. powertablelength = \\!\\(56\\)\"\>",
  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 = ``", 56],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.483747230052841*^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.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.483747230098651*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(26743264\\), The time = \\!\
\\(0.800412`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 26743264, 0.800412],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.483747230119725*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of unknown polynomial coefficients = \
\\!\\(168\\)\"\>",
  StringForm["The number of unknown polynomial coefficients = ``", 168],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.483747230140636*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(419\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 419],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.483747230174163*^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.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.48374723020562*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(26910248\\), The time = \\!\
\\(0.8146370000000001`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 26910248, 0.8146370000000001],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.483747230244651*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.483747230274702*^9}],

Cell[BoxData["\<\"The function SolveDeterminingEquations is finished \
executing.\"\>"], "Print",
 CellChangeTimes->{3.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.4837472303110733`*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(27017472\\), The time = \\!\
\\(0.8349890000000001`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 27017472, 0.8349890000000001],
  Editable->False]], "Print",
 CellChangeTimes->{3.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.483747230339909*^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.469471495275193*^9, 3.47156256872692*^9, 
  3.471562613488999*^9, 3.471562995594329*^9, 3.471579522437442*^9, 
  3.483747230375538*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.10831600000000008`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469471495332155*^9, 3.471562568816757*^9, 
  3.471562613874896*^9, 3.47156299569584*^9, 3.471579522567045*^9, 
  3.4837472304078417`*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"b10", "+", 
   RowBox[{"b16", " ", "t"}], "+", 
   RowBox[{"b111", " ", 
    SuperscriptBox["t", "2"]}], "+", 
   RowBox[{"b115", " ", 
    SuperscriptBox["t", "3"]}], "+", 
   RowBox[{"b121", " ", "u"}], "+", 
   RowBox[{"b126", " ", "t", " ", "u"}], "+", 
   RowBox[{"b11", " ", "x"}], "+", 
   RowBox[{"b17", " ", "t", " ", "x"}], "+", 
   RowBox[{"b112", " ", 
    SuperscriptBox["t", "2"], " ", "x"}], "+", 
   RowBox[{"b116", " ", 
    SuperscriptBox["t", "3"], " ", "x"}], "+", 
   FractionBox[
    RowBox[{"b111", " ", 
     SuperscriptBox["x", "3"]}], "3"], "+", 
   RowBox[{"b115", " ", "t", " ", 
    SuperscriptBox["x", "3"]}], "+", 
   FractionBox[
    RowBox[{"b112", " ", 
     SuperscriptBox["x", "4"]}], "6"], "+", 
   RowBox[{
    FractionBox["1", "2"], " ", "b116", " ", "t", " ", 
    SuperscriptBox["x", "4"]}]}], "}"}]], "Output",
 CellChangeTimes->{3.4694714953804417`*^9, 3.471562568855927*^9, 
  3.4715626140059977`*^9, 3.471562995743136*^9, 3.4715795226140003`*^9, 
  3.483747230505494*^9}]
}, Open  ]],

Cell["And list the groups one more time.", "Text"],

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

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "1"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         FractionBox[
          RowBox[{"2", " ", "x"}], "3"], ",", "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[{"{", "t", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"t", " ", "x"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         SuperscriptBox["t", "2"], "+", 
         FractionBox[
          SuperscriptBox["x", "3"], "3"]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          SuperscriptBox["t", "2"], " ", "x"}], "+", 
         FractionBox[
          SuperscriptBox["x", "4"], "6"]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         SuperscriptBox["t", "3"], "+", 
         RowBox[{"t", " ", 
          SuperscriptBox["x", "3"]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          SuperscriptBox["t", "3"], " ", "x"}], "+", 
         FractionBox[
          RowBox[{"t", " ", 
           SuperscriptBox["x", "4"]}], "2"]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "u", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"-", "4"}], " ", "t", " ", "x"}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "3"}], " ", 
           SuperscriptBox["t", "2"]}], "-", 
          FractionBox[
           RowBox[{"4", " ", 
            SuperscriptBox["x", "3"]}], "3"]}]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"t", " ", "u"}], "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.469471495426847*^9, 3.471562568911642*^9, 
  3.471562614051523*^9, 3.47156299579772*^9, 3.4715795226697807`*^9, 
  3.483747230571237*^9}],

Cell[TextData[StyleBox["As we see from  the last two outputs, maximum order \
terms continue to appear. It can be inferred that the eta infinitesimal \
admits a general function which, as we well know, is any solution of the \
original linear equation.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["Let's work out the commutator of the group.", "Text"],

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

Cell["\<\
Drop the groups corresponding to superposition of an arbitrary solution of \
the equation.\
\>", "Text",
 CellChangeTimes->{{3.469471436419896*^9, 3.469471437106421*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"infinitesimalgroupsxy", "=", "\[IndentingNewLine]", 
   RowBox[{"Drop", "[", 
    RowBox[{"infinitesimalgroupsxy1", ",", 
     RowBox[{"{", 
      RowBox[{"3", ",", "9"}], "}"}]}], "]"}]}], ";"}]], "Input"],

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

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "1"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         FractionBox[
          RowBox[{"2", " ", "x"}], "3"], ",", "t"}], "}"}], ",", 
       RowBox[{"{", "0", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          SuperscriptBox["t", "3"], " ", "x"}], "+", 
         FractionBox[
          RowBox[{"t", " ", 
           SuperscriptBox["x", "4"]}], "2"]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"0", ",", "0"}], "}"}], ",", 
       RowBox[{"{", "u", "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"-", "4"}], " ", "t", " ", "x"}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "3"}], " ", 
           SuperscriptBox["t", "2"]}], "-", 
          FractionBox[
           RowBox[{"4", " ", 
            SuperscriptBox["x", "3"]}], "3"]}]}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"t", " ", "u"}], "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.4694714955404997`*^9, 3.471562569066619*^9, 
  3.471562614149115*^9, 3.471562995918223*^9, 3.4715795227774467`*^9, 
  3.48374723066912*^9}]
}, Open  ]],

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

Cell[CellGroupData[{

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

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", 
   ",", "True", ",", "True", ",", "True", ",", "True", ",", "True", ",", 
   "True", ",", "True", ",", "True", ",", "True", ",", "True"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.471562614189124*^9, 3.4715629960080643`*^9, 
  3.471579522814459*^9, 3.4837472307076*^9}]
}, Open  ]],

Cell[TextData[StyleBox["Let's generate the commutator table of the Lie \
algebra. First the number of groups",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"numberofgroups", "=", 
  RowBox[{"Length", "[", "infinitesimalgroupsxy", "]"}]}]], "Input"],

Cell[BoxData["5"], "Output",
 CellChangeTimes->{3.469471495596936*^9, 3.4715625691019707`*^9, 
  3.471562614217204*^9, 3.471562996042492*^9, 3.47157952286814*^9, 
  3.48374723074055*^9}]
}, Open  ]],

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

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

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

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

Cell[CellGroupData[{

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

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{
             FractionBox["2", "3"], " ", "x", " ", 
             RowBox[{"(", 
              RowBox[{
               SuperscriptBox["t", "3"], "+", 
               RowBox[{"2", " ", "t", " ", 
                SuperscriptBox["x", "3"]}]}], ")"}]}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", 
             RowBox[{"-", 
              FractionBox[
               RowBox[{"8", " ", 
                SuperscriptBox["x", "3"]}], "3"]}]}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", 
              FractionBox["2", "3"]}], " ", "x", " ", 
             RowBox[{"(", 
              RowBox[{
               SuperscriptBox["t", "3"], "+", 
               RowBox[{"2", " ", "t", " ", 
                SuperscriptBox["x", "3"]}]}], ")"}]}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{
              SuperscriptBox["t", "3"], " ", "x"}], "+", 
             FractionBox[
              RowBox[{"t", " ", 
               SuperscriptBox["x", "4"]}], "2"]}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"5", " ", 
              SuperscriptBox["t", "4"], " ", "x"}], "+", 
             FractionBox[
              RowBox[{"17", " ", 
               SuperscriptBox["t", "2"], " ", 
               SuperscriptBox["x", "4"]}], "2"]}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{"-", 
              FractionBox["1", "2"]}], " ", "t", " ", "x", " ", 
             RowBox[{"(", 
              RowBox[{
               RowBox[{"2", " ", 
                SuperscriptBox["t", "2"]}], "+", 
               SuperscriptBox["x", "3"]}], ")"}]}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]},
     {
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", 
             FractionBox[
              RowBox[{"8", " ", 
               SuperscriptBox["x", "3"]}], "3"]}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", 
            RowBox[{
             RowBox[{
              RowBox[{"-", "5"}], " ", 
              SuperscriptBox["t", "4"], " ", "x"}], "-", 
             FractionBox[
              RowBox[{"17", " ", 
               SuperscriptBox["t", "2"], " ", 
               SuperscriptBox["x", "4"]}], "2"]}], "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}], 
      RowBox[{"(", "\[NoBreak]", 
       TagBox[GridBox[{
          {
           RowBox[{"{", 
            RowBox[{"0", ",", "0"}], "}"}]},
          {
           RowBox[{"{", "0", "}"}]}
         },
         GridBoxAlignment->{
          "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, 
           "Rows" -> {{Baseline}}, "RowsIndexed" -> {}},
         GridBoxSpacings->{"Columns" -> {
             Offset[0.27999999999999997`], {
              Offset[0.5599999999999999]}, 
             Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
             Offset[0.2], {
              Offset[0.4]}, 
             Offset[0.2]}, "RowsIndexed" -> {}}],
        Column], "\[NoBreak]", ")"}]}
    },
    GridBoxAlignment->{
     "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, 
      "RowsIndexed" -> {}},
    GridBoxSpacings->{"Columns" -> {
        Offset[0.27999999999999997`], {
         Offset[0.7]}, 
        Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
        Offset[0.2], {
         Offset[0.4]}, 
        Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
  Function[BoxForm`e$, 
   MatrixForm[BoxForm`e$]]]], "Output",
 CellChangeTimes->{3.4694714957031603`*^9, 3.4715625692173862`*^9, 
  3.471562614321773*^9, 3.4715629961098413`*^9, 3.471579522980605*^9, 
  3.4837472308917503`*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

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

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[545, 20, 369, 6, 117, "Text"],
Cell[917, 28, 124, 1, 32, "Text"],
Cell[1044, 31, 281, 7, 33, "Input"],
Cell[1328, 40, 476, 13, 32, "Text"],
Cell[1807, 55, 101, 2, 33, "Input"],
Cell[1911, 59, 164, 3, 32, "Text"],
Cell[2078, 64, 129, 4, 53, "Input"],
Cell[2210, 70, 257, 4, 51, "Text"],
Cell[2470, 76, 163, 4, 53, "Input"],
Cell[2636, 82, 130, 2, 32, "Text"],
Cell[2769, 86, 151, 4, 33, "Input"],
Cell[2923, 92, 128, 2, 32, "Text"],
Cell[3054, 96, 116, 3, 33, "Input"],
Cell[3173, 101, 139, 2, 32, "Text"],
Cell[3315, 105, 96, 3, 33, "Input"],
Cell[3414, 110, 152, 3, 32, "Text"],
Cell[3569, 115, 67, 2, 33, "Input"],
Cell[3639, 119, 385, 6, 70, "Text"],
Cell[4027, 127, 138, 3, 33, "Input"],
Cell[4168, 132, 509, 7, 70, "Text"],
Cell[4680, 141, 71, 2, 33, "Input"],
Cell[4754, 145, 576, 8, 89, "Text"],
Cell[5333, 155, 79, 2, 33, "Input"],
Cell[5415, 159, 267, 4, 51, "Text"],
Cell[CellGroupData[{
Cell[5707, 167, 336, 6, 53, "Input"],
Cell[6046, 175, 493, 9, 45, "Print"],
Cell[6542, 186, 1076, 15, 197, "Print"],
Cell[7621, 203, 771, 13, 64, "Print"],
Cell[8395, 218, 461, 9, 25, "Print"],
Cell[8859, 229, 1078, 15, 216, "Print"]
}, Open  ]],
Cell[9952, 247, 186, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[10163, 254, 45, 0, 33, "Input"],
Cell[10211, 256, 546, 16, 42, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[10794, 277, 240, 4, 51, "Text"],
Cell[11037, 283, 39, 0, 33, "Input"],
Cell[11079, 285, 392, 10, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[11508, 300, 279, 4, 51, "Text"],
Cell[11790, 306, 47, 0, 33, "Input"],
Cell[11840, 308, 1742, 29, 338, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[13619, 342, 78, 1, 33, "Input"],
Cell[13700, 345, 193, 3, 33, "Output"]
}, Open  ]],
Cell[13908, 351, 511, 11, 145, "Text"],
Cell[CellGroupData[{
Cell[14444, 366, 348, 7, 53, "Input"],
Cell[14795, 375, 924, 15, 83, "Print"],
Cell[15722, 392, 486, 7, 83, "Print"],
Cell[16211, 401, 377, 7, 25, "Print"],
Cell[16591, 410, 367, 7, 25, "Print"],
Cell[16961, 419, 392, 8, 25, "Print"],
Cell[17356, 429, 368, 5, 45, "Print"],
Cell[17727, 436, 377, 7, 25, "Print"],
Cell[18107, 445, 213, 3, 25, "Print"],
Cell[18323, 450, 255, 4, 25, "Print"],
Cell[18581, 456, 377, 7, 25, "Print"],
Cell[18961, 465, 1132, 15, 235, "Print"],
Cell[20096, 482, 257, 5, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[20390, 492, 184, 3, 32, "Text"],
Cell[20577, 497, 38, 0, 33, "Input"],
Cell[20618, 499, 361, 7, 53, "Output"]
}, Open  ]],
Cell[20994, 509, 38, 0, 33, "Input"],
Cell[21035, 511, 324, 5, 53, "Output"],
Cell[CellGroupData[{
Cell[21384, 520, 146, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[21555, 527, 253, 7, 33, "Input"],
Cell[21811, 536, 596, 16, 58, "Output"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[22456, 558, 143, 2, 32, "Text"],
Cell[22602, 562, 253, 7, 33, "Input"],
Cell[22858, 571, 573, 15, 58, "Output"]
}, Open  ]],
Cell[23446, 589, 32, 0, 32, "Text"],
Cell[23481, 591, 278, 8, 33, "Input"],
Cell[23762, 601, 2204, 79, 235, "Output"],
Cell[25969, 682, 311, 5, 51, "Text"],
Cell[CellGroupData[{
Cell[26305, 691, 344, 7, 53, "Input"],
Cell[26652, 700, 928, 15, 83, "Print"],
Cell[27583, 717, 490, 7, 83, "Print"],
Cell[28076, 726, 380, 7, 25, "Print"],
Cell[28459, 735, 373, 7, 25, "Print"],
Cell[28835, 744, 393, 8, 25, "Print"],
Cell[29231, 754, 372, 5, 45, "Print"],
Cell[29606, 761, 406, 8, 25, "Print"],
Cell[30015, 771, 215, 3, 25, "Print"],
Cell[30233, 776, 259, 4, 25, "Print"],
Cell[30495, 782, 383, 7, 25, "Print"],
Cell[30881, 791, 1136, 15, 235, "Print"],
Cell[32020, 808, 244, 5, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[32301, 818, 253, 7, 33, "Input"],
Cell[32557, 827, 870, 24, 58, "Output"]
}, Open  ]],
Cell[33442, 854, 38, 0, 32, "Text"],
Cell[33483, 856, 278, 8, 33, "Input"],
Cell[33764, 866, 2773, 100, 299, "Output"],
Cell[CellGroupData[{
Cell[36562, 970, 344, 7, 53, "Input"],
Cell[36909, 979, 923, 15, 83, "Print"],
Cell[37835, 996, 485, 7, 83, "Print"],
Cell[38323, 1005, 376, 7, 25, "Print"],
Cell[38702, 1014, 366, 7, 25, "Print"],
Cell[39071, 1023, 389, 8, 25, "Print"],
Cell[39463, 1033, 364, 5, 45, "Print"],
Cell[39830, 1040, 399, 8, 25, "Print"],
Cell[40232, 1050, 210, 3, 25, "Print"],
Cell[40445, 1055, 256, 4, 25, "Print"],
Cell[40704, 1061, 399, 8, 25, "Print"],
Cell[41106, 1071, 1131, 15, 235, "Print"],
Cell[42240, 1088, 254, 5, 33, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[42531, 1098, 253, 7, 33, "Input"],
Cell[42787, 1107, 1056, 29, 93, "Output"]
}, Open  ]],
Cell[43858, 1139, 50, 0, 32, "Text"],
Cell[43911, 1141, 278, 8, 33, "Input"],
Cell[44192, 1151, 3104, 112, 335, "Output"],
Cell[47299, 1265, 318, 5, 51, "Text"],
Cell[47620, 1272, 59, 0, 32, "Text"],
Cell[47682, 1274, 294, 8, 33, "Input"],
Cell[47979, 1284, 180, 4, 32, "Text"],
Cell[CellGroupData[{
Cell[48184, 1292, 241, 6, 53, "Input"],
Cell[48428, 1300, 79, 1, 33, "Input"],
Cell[48510, 1303, 1641, 56, 159, "Output"]
}, Open  ]],
Cell[50166, 1362, 204, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[50395, 1369, 190, 4, 33, "Input"],
Cell[50588, 1375, 386, 8, 33, "Output"]
}, Open  ]],
Cell[50989, 1386, 174, 3, 32, "Text"],
Cell[CellGroupData[{
Cell[51188, 1393, 115, 2, 33, "Input"],
Cell[51306, 1397, 186, 3, 33, "Output"]
}, Open  ]],
Cell[51507, 1403, 124, 2, 32, "Text"],
Cell[51634, 1407, 191, 4, 53, "Input"],
Cell[51828, 1413, 575, 8, 102, "Print"],
Cell[52406, 1423, 132, 2, 32, "Text"],
Cell[CellGroupData[{
Cell[52563, 1429, 112, 2, 33, "Input"],
Cell[52678, 1433, 20189, 549, 289, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[72904, 1987, 66, 1, 33, "Input"],
Cell[72973, 1990, 198, 3, 33, "Output"]
}, Open  ]]
}
]
*)

(* End of internal cache information *)
