(* 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[     45799,       1246]
NotebookOptionsPosition[     41111,       1102]
NotebookOutlinePosition[     41720,       1126]
CellTagsIndexPosition[     41677,       1123]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[TextData[StyleBox["Use the package IntroToSymmetry.m to work out the \
first order Lie-Backlund group of of the Keplerian equations of motion of a \
particle moving in a spherical inverse square law potential field.",
 FontSize->14,
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
This next command turns off spurious spelling error warnings.\
\>", "Text"],

Cell[BoxData[
 RowBox[{"Off", "[", 
  RowBox[{"General", "::", "spell"}], "]"}]], "Input"],

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

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

Cell[BoxData[
 RowBox[{
  RowBox[{"independentvariables", "=", 
   RowBox[{"{", "\"\<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[{"{", 
    RowBox[{"\"\<x\>\"", ",", "\"\<y\>\"", ",", "\"\<z\>\""}], "}"}]}], 
  ";"}]], "Input"],

Cell[TextData[StyleBox["Enter the list of function names and/or constant \
names that need to be preserved when the equations are expressed in terms of \
generic variables.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

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

Cell[TextData[StyleBox["Enter the maximum derivative order.",
 FontWeight->"Plain"]], "Text",
 ImageRegion->{{0, 1}, {0, 1}}],

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

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

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

Cell[TextData[StyleBox["When searching for Lie-Backlund groups (rorder=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", "=", "0"}], ";"}]], "Input"],

Cell[TextData[StyleBox["When searching for Lie-Backlund groups it is \
necessary to differentiate the input equations to produce derivatives of \
order porder+rorder and append these higher order differential consequences \
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", "=", "1"}], ";"}]], "Input"],

Cell["\<\
ALL of the equations of motion must be applied to EACH invariance condition. \
Replace the second derivative wherever it appears in the invariance condition.\
\>", "Text"],

Cell["\<\
rulesarray=
{\"D[x[t],t,t]->-
a*x[t]/((x[t]^2+y[t]^2+z[t]^2)^(3/2))\",
\"D[y[t],t,t]->-
a*y[t]/((x[t]^2+y[t]^2+z[t]^2)^(3/2))\",
\"D[z[t],t,t]->-
a*z[t]/((x[t]^2+y[t]^2+z[t]^2)^(3/2))\"};\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["Enter the first input equation as a string, ie, in quotes.", "Text"],

Cell["\<\
inputequation1=
\"D[x[t],t,t]+a*x[t]/((x[t]^2+y[t]^2+z[t]^2)^(3/2))\";\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
Now work out the determining equations of the Lie point group which leaves \
inputequation1 invariant. The Mathematica function Timing outputs the time \
required for the SolveDeterminingEquations function to execute.\
\>", "Text"],

Cell[CellGroupData[{

Cell["\<\
Timing[FindDeterminingEquations[
independentvariables,dependentvariables,frozennames,porder,rorder,xseon,
inputequation1,rulesarray,internalrules]]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(32857000\\), the time used = \
\\!\\(18.622427000000002`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 32857000, 18.622427000000002`],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694832802031593`*^9, 3.471572735782164*^9, 
  3.4837892068130827`*^9, 3.483789463505718*^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.4694832802031593`*^9, 3.471572735782164*^9, 
  3.4837892068130827`*^9, 3.483789464129119*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(1\\), the \
byte count of zdeterminingequations = \\!\\(22472\\), the memory in use = \\!\
\\(44642760\\), the time used = \\!\\(19.689763`\\)\"\>",
  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 = ``", 1, 22472, 44642760, 
   19.689763],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694832802031593`*^9, 3.471572735782164*^9, 
  3.4837892068130827`*^9, 3.483789464560721*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(44645792\\), the time used = \\!\\(19.690179`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 44645792, 19.690179],
  Editable->False]], "Print",
 CellChangeTimes->{3.4694832802031593`*^9, 3.471572735782164*^9, 
  3.4837892068130827`*^9, 3.48378946456293*^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.4694832802031593`*^9, 3.471572735782164*^9, 
  3.4837892068130827`*^9, 3.4837894645648203`*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"1.0688220000000008`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469483281571055*^9, 3.471572736931116*^9, 
  3.4837892080263157`*^9, 3.483789464567438*^9}]
}, Open  ]],

Cell["\<\
Here are the determining equations in terms of z-variables and in the form of \
strings.\
\>", "Text"],

Cell["zdeterminingequations1=zdeterminingequations;", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["Enter the second input equation as a string, ie, in quotes.", "Text"],

Cell["\<\
inputequation2=
\"D[y[t],t,t]+a*y[t]/((x[t]^2+y[t]^2+z[t]^2)^(3/2))\";\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
Now work out the determining equations of the Lie point group which leaves \
inputequation2 invariant.\
\>", "Text"],

Cell[CellGroupData[{

Cell["\<\
Timing[FindDeterminingEquations[
independentvariables,dependentvariables,frozennames,porder,rorder,xseon,
inputequation2,rulesarray,internalrules]]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(44446080\\), the time used = \\!\\(19.695815`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 44446080, 19.695815],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483281741831*^9, 3.471572737103204*^9, 
  3.483789208265955*^9, 3.483789464740926*^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.469483281741831*^9, 3.471572737103204*^9, 
  3.483789208265955*^9, 3.483789465370303*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(1\\), the \
byte count of zdeterminingequations = \\!\\(22472\\), the memory in use = \\!\
\\(44674208\\), the time used = \\!\\(20.758506`\\)\"\>",
  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 = ``", 1, 22472, 44674208, 
   20.758506],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483281741831*^9, 3.471572737103204*^9, 
  3.483789208265955*^9, 3.483789465795252*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(44675520\\), the time used = \\!\\(20.758912000000002`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 44675520, 20.758912000000002`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483281741831*^9, 3.471572737103204*^9, 
  3.483789208265955*^9, 3.4837894657973948`*^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.469483281741831*^9, 3.471572737103204*^9, 
  3.483789208265955*^9, 3.48378946579921*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"1.0641159999999985`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469483283077714*^9, 3.4715727381876707`*^9, 
  3.483789209328179*^9, 3.483789465801931*^9}]
}, Open  ]],

Cell["\<\
Here are the determining equations in terms of z-variables and in the form of \
strings.\
\>", "Text"],

Cell["zdeterminingequations2=zdeterminingequations;", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["Enter the third input equation as a string, ie, in quotes.", "Text"],

Cell["\<\
inputequation3=
\"D[z[t],t,t]+a*z[t]/((x[t]^2+y[t]^2+z[t]^2)^(3/2))\";\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
Now work out the determining equations of the Lie point group which leaves \
inputequation3 invariant.\
\>", "Text"],

Cell[CellGroupData[{

Cell["\<\
Timing[FindDeterminingEquations[
independentvariables,dependentvariables,frozennames,porder,rorder,xseon,
inputequation3,rulesarray,internalrules]]\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[BoxData[
 InterpretationBox["\<\"The function FindDetermining Equations has begun, the \
memory in use = \\!\\(44476096\\), the time used = \\!\\(20.764364`\\)\"\>",
  StringForm[
  "The function FindDetermining Equations has begun, the memory in use = ``, \
the time used = ``", 44476096, 20.764364],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483283247612*^9, 3.47157273833809*^9, 
  3.483789209485183*^9, 3.483789466009634*^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.469483283247612*^9, 3.47157273833809*^9, 
  3.483789209485183*^9, 3.48378946662036*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The determining equations have been expressed in \
terms of z-variables, the length of zdeterminingequations = \\!\\(1\\), the \
byte count of zdeterminingequations = \\!\\(22472\\), the memory in use = \\!\
\\(44701656\\), the time used = \\!\\(21.832947`\\)\"\>",
  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 = ``", 1, 22472, 44701656, 
   21.832947],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483283247612*^9, 3.47157273833809*^9, 
  3.483789209485183*^9, 3.483789467048546*^9}],

Cell[BoxData[
 InterpretationBox["\<\"FindDeterminingEquations is done. The memory in use = \
\\!\\(44702968\\), the time used = \\!\\(21.833351`\\)\"\>",
  StringForm[
  "FindDeterminingEquations is done. The memory in use = ``, the time used = \
``", 44702968, 21.833351],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483283247612*^9, 3.47157273833809*^9, 
  3.483789209485183*^9, 3.483789467050405*^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.469483283247612*^9, 3.47157273833809*^9, 
  3.483789209485183*^9, 3.483789467051969*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"1.069983999999998`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.4694832845372257`*^9, 3.4715727395034227`*^9, 
  3.4837892105777884`*^9, 3.483789467054406*^9}]
}, Open  ]],

Cell["\<\
Here are the determining equations in terms of z-variables and in the form of \
strings.\
\>", "Text"],

Cell["zdeterminingequations3=zdeterminingequations;", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
zdeterminingequations4=Join[
zdeterminingequations1,
zdeterminingequations2,
zdeterminingequations3];\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell[CellGroupData[{

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

Cell[BoxData["3"], "Output",
 CellChangeTimes->{3.469483284702428*^9, 3.471572739706918*^9, 
  3.483789210754519*^9, 3.4837894672289867`*^9}]
}, Open  ]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"z1", "\[Rule]", "t"}], ",", 
   RowBox[{"z2", "\[Rule]", 
    RowBox[{"x", "[", "t", "]"}]}], ",", 
   RowBox[{"z3", "\[Rule]", 
    RowBox[{"y", "[", "t", "]"}]}], ",", 
   RowBox[{"z4", "\[Rule]", 
    RowBox[{"z", "[", "t", "]"}]}], ",", 
   RowBox[{"z5", "\[Rule]", 
    RowBox[{
     SuperscriptBox["x", "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}]}], ",", 
   RowBox[{"z6", "\[Rule]", 
    RowBox[{
     SuperscriptBox["y", "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}]}], ",", 
   RowBox[{"z7", "\[Rule]", 
    RowBox[{
     SuperscriptBox["z", "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}]}]}], "}"}]], "Output",
 CellChangeTimes->{3.469483284743144*^9, 3.471572739788042*^9, 
  3.4837892108156767`*^9, 3.4837894672915363`*^9}]
}, Open  ]],

Cell["\<\
Here are the determining equations in a slightly more readable form as \
expressions rather than strings.\
\>", "Text"],

Cell["\<\
zdeteqns=ToExpression[zdeterminingequations4]/.{Sqrt[z2^2+z3^2+z4^2]->rr};\
\>", "Input",
 ImageRegion->{{0, 1}, {0, 1}}],

Cell["\<\
Here is the correspondence between z-variables and conventional variables.\
\>", "Text"],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"z1", "\[Rule]", "t"}], ",", 
   RowBox[{"z2", "\[Rule]", 
    RowBox[{"x", "[", "t", "]"}]}], ",", 
   RowBox[{"z3", "\[Rule]", 
    RowBox[{"y", "[", "t", "]"}]}], ",", 
   RowBox[{"z4", "\[Rule]", 
    RowBox[{"z", "[", "t", "]"}]}], ",", 
   RowBox[{"z5", "\[Rule]", 
    RowBox[{
     SuperscriptBox["x", "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}]}], ",", 
   RowBox[{"z6", "\[Rule]", 
    RowBox[{
     SuperscriptBox["y", "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}]}], ",", 
   RowBox[{"z7", "\[Rule]", 
    RowBox[{
     SuperscriptBox["z", "\[Prime]",
      MultilineFunction->None], "[", "t", "]"}]}]}], "}"}]], "Output",
 CellChangeTimes->{3.469483285963769*^9, 3.471572740642479*^9, 
  3.4837892108886633`*^9, 3.483789467363505*^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["\<\
Timing[SolveDeterminingEquations[
independentvariables,dependentvariables,rorder,xseon,zdeterminingequations4,\
order=3]]\
\>", "Input",
 CellChangeTimes->{{3.483789192826495*^9, 3.483789195024116*^9}},
 ImageRegion->{{0, 1}, {0, 1}}],

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 = \\!\\(120\\)\"\>",
  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 = ``", 120],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.483789467423423*^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.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.48378946889752*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(49210736\\), The time = \\!\
\\(23.405488`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 49210736, 23.405488],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.483789468898673*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of unknown polynomial coefficients = \
\\!\\(360\\)\"\>",
  StringForm["The number of unknown polynomial coefficients = ``", 360],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.48378947209595*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The number of equations for the polynomial \
coefficients = \\!\\(2301\\)\"\>",
  StringForm[
  "The number of equations for the polynomial coefficients = ``", 2301],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.483789472097232*^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.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.483789472098515*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(54105984\\), The time = \\!\
\\(26.605967000000003`\\)\"\>",
  StringForm[
  "The memory in use = ``, The time = ``", 54105984, 26.605967000000003`],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.4837894720996437`*^9}],

Cell[BoxData["\<\"Solve has finished.\"\>"], "Print",
 CellChangeTimes->{3.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.483789474980555*^9}],

Cell[BoxData["\<\"The function SolveDeterminingEquations is finished \
executing.\"\>"], "Print",
 CellChangeTimes->{3.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.483789475039968*^9}],

Cell[BoxData[
 InterpretationBox["\<\"The memory in use = \\!\\(54703360\\), The time = \\!\
\\(29.546167`\\)\"\>",
  StringForm["The memory in use = ``, The time = ``", 54703360, 29.546167],
  Editable->False]], "Print",
 CellChangeTimes->{3.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.483789475041143*^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.469483319722484*^9, 3.471572740783723*^9, 
  3.483789210947969*^9, 3.4837894750431433`*^9}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"7.682742000000001`", ",", "Null"}], "}"}]], "Output",
 CellChangeTimes->{3.469483379387498*^9, 3.471572823261158*^9, 
  3.483789218394638*^9, 3.4837894750892553`*^9}]
}, Open  ]],

Cell["\<\
Here are the infinitesimal transformation functions for the independent \
variables.\
\>", "Text"],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", "\<\"xse1[z1_, z2_, z3_, z4_, z5_, z6_, z7_]=0\"\>", 
  "}"}]], "Output",
 CellChangeTimes->{3.4694833795153637`*^9, 3.471572823410048*^9, 
  3.483789218504917*^9, 3.483789475230413*^9}]
}, Open  ]],

Cell["and for the dependent variables.", "Text"],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"eta1[z1_, z2_, z3_, z4_, z5_, z6_, z7_]=(-2*b385*z2)/3 - \
b24*z3 - b34*z4 + b384*z5 + b385*z1*z5 - 2*b366*z3*z5 + b261*z3^2*z5 - \
2*b290*z4*z5 + (-b168 - b192)*z3*z4*z5 + b389*z4^2*z5 - b3107*z3*z5^2 + \
b3103*z4*z5^2 + b366*z2*z6 + b345*z3*z6 - b261*z2*z3*z6 + b168*z2*z4*z6 + \
b292*z3*z4*z6 - b368*z4^2*z6 + b3107*z2*z5*z6 + b3109*z4*z5*z6 + b290*z2*z7 + \
b192*z2*z3*z7 - b292*z3^2*z7 + b345*z4*z7 - b389*z2*z4*z7 + b368*z3*z4*z7 - \
b3103*z2*z5*z7 - b3109*z3*z5*z7\"\>", 
   ",", "\<\"eta2[z1_, z2_, z3_, z4_, z5_, z6_, z7_]=b24*z2 - (2*b385*z3)/3 - \
b310*z4 + b366*z2*z5 + b345*z3*z5 - b261*z2*z3*z5 + b192*z2*z4*z5 + (-b268 - \
b292)*z3*z4*z5 + (b368 + b392)*z4^2*z5 + b384*z6 + b385*z1*z6 - 2*b345*z2*z6 \
+ b261*z2^2*z6 - 2*b290*z4*z6 + b268*z2*z4*z6 + b393*z4^2*z6 - b3107*z3*z5*z6 \
+ b3103*z4*z5*z6 + b3107*z2*z6^2 + b3109*z4*z6^2 - b192*z2^2*z7 + b290*z3*z7 \
+ b292*z2*z3*z7 + b366*z4*z7 + (-b368 - b392)*z2*z4*z7 - b393*z3*z4*z7 - \
b3103*z2*z6*z7 - b3109*z3*z6*z7\"\>", 
   ",", "\<\"eta3[z1_, z2_, z3_, z4_, z5_, z6_, z7_]=b34*z2 + b310*z3 - \
(2*b385*z4)/3 + b290*z2*z5 + b168*z2*z3*z5 + (b268 + b292)*z3^2*z5 + \
b345*z4*z5 - b389*z2*z4*z5 + (-b368 - b392)*z3*z4*z5 - b168*z2^2*z6 + \
b290*z3*z6 + (-b268 - b292)*z2*z3*z6 + b366*z4*z6 + b368*z2*z4*z6 - \
b393*z3*z4*z6 + b384*z7 + b385*z1*z7 - 2*b345*z2*z7 + b389*z2^2*z7 - \
2*b366*z3*z7 + b392*z2*z3*z7 + b393*z3^2*z7 - b3107*z3*z5*z7 + b3103*z4*z5*z7 \
+ b3107*z2*z6*z7 + b3109*z4*z6*z7 - b3103*z2*z7^2 - b3109*z3*z7^2\"\>"}], 
  "}"}]], "Output",
 CellChangeTimes->{3.469483379575321*^9, 3.4715728234900618`*^9, 
  3.4837892185670156`*^9, 3.483789475301861*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"infinitesimalgroups1", "=", 
   RowBox[{"infinitesimalgroups", "/.", "\[IndentingNewLine]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"z1", "\[Rule]", "t"}], ",", 
      RowBox[{"z2", "\[Rule]", "x"}], ",", 
      RowBox[{"z3", "\[Rule]", "y"}], ",", 
      RowBox[{"z4", "\[Rule]", "z"}], ",", 
      RowBox[{"z5", "\[Rule]", "xt"}], ",", 
      RowBox[{"z6", "\[Rule]", "yt"}], ",", 
      RowBox[{"z7", "\[Rule]", "zt"}]}], "}"}]}]}], ";"}]], "Input"],

Cell["\<\
Check the groups.xse's are on the left,eta's are on the right.\
\>", "Text"],

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

Cell[BoxData[
 TagBox[GridBox[{
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{
           RowBox[{"-", "xt"}], " ", "y", " ", "z"}], "+", 
          RowBox[{"x", " ", "yt", " ", "z"}]}], ",", "0", ",", 
         RowBox[{
          RowBox[{"x", " ", "xt", " ", "y"}], "-", 
          RowBox[{
           SuperscriptBox["x", "2"], " ", "yt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{
           RowBox[{"-", "xt"}], " ", "y", " ", "z"}], "+", 
          RowBox[{"x", " ", "y", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{"x", " ", "xt", " ", "z"}], "-", 
          RowBox[{
           SuperscriptBox["x", "2"], " ", "zt"}]}], ",", "0"}], "}"}]}], 
      "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"-", "y"}], ",", "x", ",", "0"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"xt", " ", 
           SuperscriptBox["y", "2"]}], "-", 
          RowBox[{"x", " ", "y", " ", "yt"}]}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "x"}], " ", "xt", " ", "y"}], "+", 
          RowBox[{
           SuperscriptBox["x", "2"], " ", "yt"}]}], ",", "0"}], "}"}]}], 
      "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "xt"}], " ", "y", " ", "z"}], "+", 
          RowBox[{"x", " ", "yt", " ", "z"}]}], ",", 
         RowBox[{
          RowBox[{"xt", " ", 
           SuperscriptBox["y", "2"]}], "-", 
          RowBox[{"x", " ", "y", " ", "yt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{
           RowBox[{"-", "2"}], " ", "xt", " ", "z"}], "+", 
          RowBox[{"x", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "2"}], " ", "yt", " ", "z"}], "+", 
          RowBox[{"y", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{"x", " ", "xt"}], "+", 
          RowBox[{"y", " ", "yt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"y", " ", "yt", " ", "z"}], "-", 
          RowBox[{
           SuperscriptBox["y", "2"], " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "xt"}], " ", "y", " ", "z"}], "+", 
          RowBox[{"x", " ", "y", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{"xt", " ", 
           SuperscriptBox["y", "2"]}], "-", 
          RowBox[{"x", " ", "y", " ", "yt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"-", "z"}], ",", "0", ",", "x"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", 
         RowBox[{"-", "z"}], ",", "y"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"y", " ", "yt"}], "+", 
          RowBox[{"z", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{"xt", " ", "y"}], "-", 
          RowBox[{"2", " ", "x", " ", "yt"}]}], ",", 
         RowBox[{
          RowBox[{"xt", " ", "z"}], "-", 
          RowBox[{"2", " ", "x", " ", "zt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{
           RowBox[{"-", "2"}], " ", "xt", " ", "y"}], "+", 
          RowBox[{"x", " ", "yt"}]}], ",", 
         RowBox[{
          RowBox[{"x", " ", "xt"}], "+", 
          RowBox[{"z", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{"yt", " ", "z"}], "-", 
          RowBox[{"2", " ", "y", " ", "zt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{
           RowBox[{"-", "yt"}], " ", 
           SuperscriptBox["z", "2"]}], "+", 
          RowBox[{"y", " ", "z", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{"xt", " ", 
           SuperscriptBox["z", "2"]}], "-", 
          RowBox[{"x", " ", "z", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "xt"}], " ", "y", " ", "z"}], "+", 
          RowBox[{"x", " ", "yt", " ", "z"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"xt", ",", "yt", ",", "zt"}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"-", 
           FractionBox[
            RowBox[{"2", " ", "x"}], "3"]}], "+", 
          RowBox[{"t", " ", "xt"}]}], ",", 
         RowBox[{
          RowBox[{"-", 
           FractionBox[
            RowBox[{"2", " ", "y"}], "3"]}], "+", 
          RowBox[{"t", " ", "yt"}]}], ",", 
         RowBox[{
          RowBox[{"-", 
           FractionBox[
            RowBox[{"2", " ", "z"}], "3"]}], "+", 
          RowBox[{"t", " ", "zt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"xt", " ", 
           SuperscriptBox["z", "2"]}], "-", 
          RowBox[{"x", " ", "z", " ", "zt"}]}], ",", "0", ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "x"}], " ", "xt", " ", "z"}], "+", 
          RowBox[{
           SuperscriptBox["x", "2"], " ", "zt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", 
         RowBox[{
          RowBox[{"xt", " ", 
           SuperscriptBox["z", "2"]}], "-", 
          RowBox[{"x", " ", "z", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "xt"}], " ", "y", " ", "z"}], "+", 
          RowBox[{"x", " ", "y", " ", "zt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"0", ",", 
         RowBox[{
          RowBox[{"yt", " ", 
           SuperscriptBox["z", "2"]}], "-", 
          RowBox[{"y", " ", "z", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "y"}], " ", "yt", " ", "z"}], "+", 
          RowBox[{
           SuperscriptBox["y", "2"], " ", "zt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{
           SuperscriptBox["xt", "2"], " ", "z"}], "-", 
          RowBox[{"x", " ", "xt", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{"xt", " ", "yt", " ", "z"}], "-", 
          RowBox[{"x", " ", "yt", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{"xt", " ", "z", " ", "zt"}], "-", 
          RowBox[{"x", " ", 
           SuperscriptBox["zt", "2"]}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{
           RowBox[{"-", 
            SuperscriptBox["xt", "2"]}], " ", "y"}], "+", 
          RowBox[{"x", " ", "xt", " ", "yt"}]}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "xt"}], " ", "y", " ", "yt"}], "+", 
          RowBox[{"x", " ", 
           SuperscriptBox["yt", "2"]}]}], ",", 
         RowBox[{
          RowBox[{
           RowBox[{"-", "xt"}], " ", "y", " ", "zt"}], "+", 
          RowBox[{"x", " ", "yt", " ", "zt"}]}]}], "}"}]}], "}"}]},
    {
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", "0", "}"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          RowBox[{"xt", " ", "yt", " ", "z"}], "-", 
          RowBox[{"xt", " ", "y", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{
           SuperscriptBox["yt", "2"], " ", "z"}], "-", 
          RowBox[{"y", " ", "yt", " ", "zt"}]}], ",", 
         RowBox[{
          RowBox[{"yt", " ", "z", " ", "zt"}], "-", 
          RowBox[{"y", " ", 
           SuperscriptBox["zt", "2"]}]}]}], "}"}]}], "}"}]}
   },
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellChangeTimes->{3.4694833796835337`*^9, 3.471572823612524*^9, 
  3.4837892186412983`*^9, 3.483789475416623*^9}]
}, Open  ]],

Cell["Check the infinitesimals in the determining equations.", "Text",
 CellChangeTimes->{{3.471145395559845*^9, 3.471145429404257*^9}}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Simplify", "[", 
  RowBox[{"ToExpression", "[", "zdeterminingequations4", "]"}], 
  "]"}]], "Input",
 CellChangeTimes->{{3.471145481019026*^9, 3.4711455173104143`*^9}, 
   3.471146122753789*^9, {3.47154140257237*^9, 3.471541418863482*^9}, {
   3.4715667761993*^9, 3.4715667786858253`*^9}, 3.471567789726531*^9, 
   3.471568099275279*^9, 3.4715715735656223`*^9, 3.471572095183077*^9, {
   3.4715726099623337`*^9, 3.471572610792289*^9}, {3.483789456558812*^9, 
   3.483789458284305*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"True", ",", "True", ",", "True"}], "}"}]], "Output",
 CellChangeTimes->{3.471572830495921*^9, 3.483789218700448*^9, 
  3.483789475780147*^9}]
}, Open  ]],

Cell["\<\
This is the well known 8 parameter Lie-Backlund group of translation in time, \
3-D rotation in space and space-time dilation. The last three items are the \
infinitesimals of the Runge-Lenz vector.\
\>", "Text"],

Cell[CellGroupData[{

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

Cell[BoxData["72774224"], "Output",
 CellChangeTimes->{3.46948337975266*^9, 3.471572830658741*^9, 
  3.483789218746867*^9, 3.4837894758449087`*^9}]
}, Open  ]]
},
WindowToolbars->{},
CellGrouping->Manual,
WindowSize->{971, 1039},
WindowMargins->{{232, Automatic}, {Automatic, 23}},
PrintingCopies->1,
PrintingPageRange->{1, Automatic},
PrivateNotebookOptions->{"ColorPalette"->{RGBColor, -1}},
ShowCellLabel->True,
ShowCellTags->False,
RenderingOptions->{"ObjectDithering"->True,
"RasterDithering"->False},
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, 301, 5, 45, "Text"],
Cell[849, 27, 85, 2, 26, "Text"],
Cell[937, 31, 90, 2, 27, "Input"],
Cell[1030, 35, 124, 1, 26, "Text"],
Cell[1157, 38, 160, 4, 27, "Input"],
Cell[1320, 44, 476, 13, 26, "Text"],
Cell[1799, 59, 93, 1, 27, "Input"],
Cell[1895, 62, 130, 2, 26, "Text"],
Cell[2028, 66, 118, 3, 27, "Input"],
Cell[2149, 71, 128, 2, 26, "Text"],
Cell[2280, 75, 170, 5, 27, "Input"],
Cell[2453, 82, 238, 4, 26, "Text"],
Cell[2694, 88, 109, 3, 27, "Input"],
Cell[2806, 93, 125, 2, 26, "Text"],
Cell[2934, 97, 72, 2, 27, "Input"],
Cell[3009, 101, 395, 6, 41, "Text"],
Cell[3407, 109, 72, 2, 27, "Input"],
Cell[3482, 113, 514, 7, 56, "Text"],
Cell[3999, 122, 71, 2, 27, "Input"],
Cell[4073, 126, 535, 8, 56, "Text"],
Cell[4611, 136, 79, 2, 27, "Input"],
Cell[4693, 140, 181, 3, 26, "Text"],
Cell[4877, 145, 244, 9, 105, "Input"],
Cell[5124, 156, 74, 0, 26, "Text"],
Cell[5201, 158, 127, 4, 40, "Input"],
Cell[5331, 164, 241, 4, 41, "Text"],
Cell[CellGroupData[{
Cell[5597, 172, 204, 5, 53, "Input"],
Cell[5804, 179, 472, 9, 20, "Print"],
Cell[6279, 190, 1032, 14, 126, "Print"],
Cell[7314, 206, 709, 12, 36, "Print"],
Cell[8026, 220, 418, 8, 20, "Print"],
Cell[8447, 230, 1036, 14, 126, "Print"],
Cell[9486, 246, 207, 4, 27, "Output"]
}, Open  ]],
Cell[9708, 253, 112, 3, 26, "Text"],
Cell[9823, 258, 94, 1, 27, "Input"],
Cell[9920, 261, 75, 0, 26, "Text"],
Cell[9998, 263, 127, 4, 40, "Input"],
Cell[10128, 269, 126, 3, 26, "Text"],
Cell[CellGroupData[{
Cell[10279, 276, 204, 5, 53, "Input"],
Cell[10486, 283, 447, 8, 20, "Print"],
Cell[10936, 293, 1028, 14, 126, "Print"],
Cell[11967, 309, 705, 12, 36, "Print"],
Cell[12675, 323, 436, 8, 20, "Print"],
Cell[13114, 333, 1029, 14, 126, "Print"],
Cell[14146, 349, 207, 4, 27, "Output"]
}, Open  ]],
Cell[14368, 356, 112, 3, 26, "Text"],
Cell[14483, 361, 94, 1, 27, "Input"],
Cell[14580, 364, 74, 0, 26, "Text"],
Cell[14657, 366, 127, 4, 40, "Input"],
Cell[14787, 372, 126, 3, 26, "Text"],
Cell[CellGroupData[{
Cell[14938, 379, 204, 5, 53, "Input"],
Cell[15145, 386, 446, 8, 20, "Print"],
Cell[15594, 396, 1026, 14, 126, "Print"],
Cell[16623, 412, 704, 12, 36, "Print"],
Cell[17330, 426, 414, 8, 20, "Print"],
Cell[17747, 436, 1029, 14, 126, "Print"],
Cell[18779, 452, 210, 4, 27, "Output"]
}, Open  ]],
Cell[19004, 459, 112, 3, 26, "Text"],
Cell[19119, 464, 94, 1, 27, "Input"],
Cell[19216, 467, 158, 6, 66, "Input"],
Cell[CellGroupData[{
Cell[19399, 477, 80, 1, 27, "Input"],
Cell[19482, 480, 141, 2, 27, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[19660, 487, 62, 1, 27, "Input"],
Cell[19725, 490, 830, 23, 27, "Output"]
}, Open  ]],
Cell[20570, 516, 129, 3, 26, "Text"],
Cell[20702, 521, 131, 3, 27, "Input"],
Cell[20836, 526, 98, 2, 26, "Text"],
Cell[CellGroupData[{
Cell[20959, 532, 62, 1, 27, "Input"],
Cell[21024, 535, 828, 23, 27, "Output"]
}, Open  ]],
Cell[21867, 561, 489, 11, 101, "Text"],
Cell[CellGroupData[{
Cell[22381, 576, 244, 6, 40, "Input"],
Cell[22628, 584, 879, 14, 51, "Print"],
Cell[23510, 600, 438, 6, 51, "Print"],
Cell[23951, 608, 332, 6, 20, "Print"],
Cell[24286, 616, 319, 6, 20, "Print"],
Cell[24608, 624, 345, 7, 20, "Print"],
Cell[24956, 633, 319, 4, 36, "Print"],
Cell[25278, 639, 356, 7, 20, "Print"],
Cell[25637, 648, 164, 2, 20, "Print"],
Cell[25804, 652, 208, 3, 20, "Print"],
Cell[26015, 657, 332, 6, 20, "Print"],
Cell[26350, 665, 1087, 14, 156, "Print"],
Cell[27440, 681, 206, 4, 27, "Output"]
}, Open  ]],
Cell[27661, 688, 108, 3, 26, "Text"],
Cell[CellGroupData[{
Cell[27794, 695, 61, 1, 27, "Input"],
Cell[27858, 698, 214, 4, 27, "Output"]
}, Open  ]],
Cell[28087, 705, 48, 0, 26, "Text"],
Cell[CellGroupData[{
Cell[28160, 709, 61, 1, 27, "Input"],
Cell[28224, 712, 1681, 25, 238, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[29942, 742, 494, 12, 43, "Input"],
Cell[30439, 756, 86, 2, 26, "Text"],
Cell[30528, 760, 78, 1, 27, "Input"],
Cell[30609, 763, 9139, 297, 403, "Output"]
}, Open  ]],
Cell[39763, 1063, 136, 1, 26, "Text"],
Cell[CellGroupData[{
Cell[39924, 1068, 509, 9, 27, "Input"],
Cell[40436, 1079, 181, 4, 27, "Output"]
}, Open  ]],
Cell[40632, 1086, 222, 4, 41, "Text"],
Cell[CellGroupData[{
Cell[40879, 1094, 66, 1, 27, "Input"],
Cell[40948, 1097, 147, 2, 27, "Output"]
}, Open  ]]
}
]
*)

(* End of internal cache information *)
