(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 8.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       157,          7]
NotebookDataLength[     49604,       1606]
NotebookOptionsPosition[     42849,       1378]
NotebookOutlinePosition[     43360,       1398]
CellTagsIndexPosition[     43317,       1395]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{

Cell[CellGroupData[{
Cell["PwM`Chap08Numerics`", "Section",
 InitializationGroup->True],

Cell[TextData[{
 StyleBox["From",
  FontWeight->"Bold"],
 ": ",
 StyleBox[ButtonBox["Programming with Mathematica: An Introduction",
  BaseStyle->"Hyperlink",
  ButtonData->{
    URL["http://www.cambridge.org/wellin"], None},
  ButtonNote->"http://www.cambridge.org/wellin"],
  FontSlant->"Italic",
  FontVariations->{"Underline"->True}]
}], "Text",
 CellMargins->{{28, 10}, {7, 7}},
 FontSize->14],

Cell[CellGroupData[{

Cell["Metadata", "Subsection"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Name", ":", " ", "PwM`Chap08Numerics`"}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Book", ":", " ", 
    RowBox[{"Programming", " ", "with", " ", 
     RowBox[{"Mathematica", ":", " ", 
      RowBox[{"An", " ", "Introduction"}]}]}]}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Author", ":", " ", 
    RowBox[{"Paul", " ", "Wellin"}]}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{":", 
    RowBox[{"Summary", ":", " ", 
     RowBox[{
     "This", " ", "package", " ", "contains", " ", "the", " ", "functions", 
      " ", "defined", " ", "in", " ", "Chapter", " ", "8"}]}]}], ",", " ", 
   RowBox[{"Numerics", "."}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Context", ":", " ", "PwM`Chap08Numerics`"}]}], " ", 
  "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Package", " ", 
    RowBox[{"Version", ":", " ", "1.0"}]}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{":", 
    RowBox[{"Copyright", ":", " ", 
     RowBox[{"Copyright", " ", "2012"}]}]}], ",", " ", 
   RowBox[{"Cambridge", " ", "University", " ", "Press"}]}], " ", 
  "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{":", 
    RowBox[{"History", ":", " ", 
     RowBox[{
     "Version", " ", "1.0", " ", "by", " ", "Paul", " ", "Wellin"}]}]}], ",", 
   " ", 
   RowBox[{"Dec", " ", "2012"}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{":", 
    RowBox[{"Keywords", ":", " ", "autocorrelation"}]}], ",", " ", 
   RowBox[{"condition", " ", "number"}], ",", " ", "correlogram", ",", " ", 
   RowBox[{"digit", " ", "sum"}], ",", " ", "eigenvector", ",", " ", 
   RowBox[{"root", " ", "finding"}], ",", " ", 
   RowBox[{"lag", " ", "plot"}], ",", " ", 
   RowBox[{"radius", " ", "of", " ", "gyration"}], ",", " ", 
   RowBox[{"sparse", " ", "array"}], ",", " ", 
   RowBox[{"tridiagonal", " ", "matrix"}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Source", ":", " ", 
    RowBox[{"Chap08Numerics", ".", "nb"}]}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Mathematica", " ", 
    RowBox[{"Version", ":", " ", 
     RowBox[{"8.0", ".4"}]}]}]}], " ", "*)"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["BeginPackage", "Subsection"],

Cell[BoxData[
 RowBox[{"Remove", "[", "RadiusOfGyrationTensor", "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"BeginPackage", "[", "\"\<PwM`Chap08Numerics`\>\"", "]"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Usage messages for public functions", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"AutoCorrelation", "::", "usage"}], "=", "\"\<AutoCorrelation[\!\(\*
StyleBox[\"data\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"lag\", \"TI\"]\)] returns the auto-correlation statistic of \!\(\*
StyleBox[\"data\", \"TI\"]\) with time lag, \!\(\*
StyleBox[\"lag\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"ConditionNumber", "::", "usage"}], "=", "\"\<ConditionNumber[\!\(\*
StyleBox[\"mat\", \"TI\"]\)] computes the condition number of the matrix \!\(\*
StyleBox[\"mat\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Correlogram", "::", "usage"}], "=", "\"\<Correlogram[\!\(\*
StyleBox[\"data\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"{\", \"TI\"]\)\!\(\*
StyleBox[\"lagmin\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"lagmax\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"incr\", \"TI\"]\)\!\(\*
StyleBox[\"}\", \"TI\"]\)] displays a correlogram of \!\(\*
StyleBox[\"data\", \"TI\"]\) with time lags running from \!\(\*
StyleBox[\"lagmin\", \"TI\"]\) to \!\(\*
StyleBox[\"lagmax\", \"TI\"]\) in increments of \!\(\*
StyleBox[\"incr\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"DigitSum", "::", "usage"}], "=", "\"\<DigitSum[\!\(\*
StyleBox[\"n\", \"TI\"]\), \!\(\*
StyleBox[\"b\", \"TI\"]\)] returns the digit sum of the number \!\(\*
StyleBox[\"n\", \"TI\"]\) in base \!\(\*
StyleBox[\"b\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"EigenvectorPlot", "::", "usage"}], "=", "\"\<EigenvectorPlot[\!\(\*
StyleBox[\"data\", \"TI\"]\)] displays an eigenvector plot of \!\(\*
StyleBox[\"data\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"findRoot", "::", "usage"}], "=", "\"\<findRoot[\!\(\*
StyleBox[\"fun\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"{\", \"TI\"]\)\!\(\*
StyleBox[\"var\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"init\", \"TI\"]\)\!\(\*
StyleBox[\"}\", \"TI\"]\)] implements Newton's root-finding method to find a \
zero of the function \!\(\*
StyleBox[\"fun\", \"TI\"]\)[\!\(\*
StyleBox[\"var\", \"TI\"]\)] starting with an initial estimate of \!\(\*
StyleBox[\"init\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"LagPlot", "::", "usage"}], "=", "\"\<LagPlot[\!\(\*
StyleBox[\"data\", \"TI\"]\), \!\(\*
StyleBox[\"lag\", \"TI\"]\)] returns a lag plot of \!\(\*
StyleBox[\"data\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"MiddleSquareGenerator", "::", "usage"}], "=", 
   "\"\<MiddleSquareGenerator[\!\(\*
StyleBox[\"n\", \"TI\"]\), \!\(\*
StyleBox[\"seed\", \"TI\"]\)] generates \!\(\*
StyleBox[\"n\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)+ 1 random numbers starting with the seed and using \
von Neumann's middle square algorithm.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"RadiusOfGyrationTensor", "::", "usage"}], "=", 
   "\"\<RadiusOfGyrationTensor[\!\(\*
StyleBox[\"lis\", \"TI\"]\)] computes the radius of gyration tensor of the \
numerical list \!\(\*
StyleBox[\"lis\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"RandomSparseArray", "::", "usage"}], "=", 
   "\"\<RandomSparseArray[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns an \!\(\*
StyleBox[\"n\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\[Cross] \!\(\*
StyleBox[\"n\", \"TI\"]\) sparse array with random numbers between 0 and 1 on \
the diagonal and zeros everywhere else.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"TridiagonalMatrix", "::", "usage"}], "=", 
   "\"\<TridiagonalMatrix[\!\(\*
StyleBox[\"n\", \"TI\"]\), \!\(\*
StyleBox[\"p\", \"TI\"]\), \!\(\*
StyleBox[\"q\", \"TI\"]\)] returns an \!\(\*
StyleBox[\"n\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\[Cross] \!\(\*
StyleBox[\"n\", \"TI\"]\) tridiagonal matrix with element \!\(\*
StyleBox[\"p\", \"TI\"]\) on the diagonal and \!\(\*
StyleBox[\"q\", \"TI\"]\) on the off-diagonal.\>\""}], ";"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Options", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Options", "[", "Correlogram", "]"}], "=", 
   RowBox[{"Join", "[", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"Coefficient", "\[Rule]", "0.05"}], "}"}], ",", 
     RowBox[{"Options", "[", "ListPlot", "]"}]}], "]"}]}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Options", "[", "findRoot", "]"}], "=", 
   RowBox[{"{", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"MaxIterations", "\[RuleDelayed]", "$IterationLimit"}], ",", 
     "\[IndentingNewLine]", 
     RowBox[{"PrecisionGoal", "\[Rule]", "Automatic"}], ",", 
     "\[IndentingNewLine]", 
     RowBox[{"WorkingPrecision", "\[Rule]", "Automatic"}]}], 
    "\[IndentingNewLine]", "}"}]}], ";"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Private context", "Subsection"],

Cell[BoxData[
 RowBox[{"Begin", "[", "\"\<`Private`\>\"", "]"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Function definitions (public and private)", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"AutoCorrelation", "[", 
   RowBox[{"data_", ",", 
    RowBox[{"lag_:", "1"}]}], "]"}], ":=", 
  RowBox[{"Correlation", "[", 
   RowBox[{
    RowBox[{"Drop", "[", 
     RowBox[{"data", ",", "lag"}], "]"}], ",", 
    RowBox[{"Drop", "[", 
     RowBox[{"data", ",", 
      RowBox[{"-", "lag"}]}], "]"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ConditionNumber", "[", 
   RowBox[{"mat_", "?", "MatrixQ"}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"sv", "=", 
      RowBox[{"SingularValueList", "[", "mat", "]"}]}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"First", "[", "sv", "]"}], "/", 
     RowBox[{"Last", "[", "sv", "]"}]}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"Correlogram", "[", 
   RowBox[{"data_", ",", 
    RowBox[{"{", 
     RowBox[{"lagmin_", ",", "lagmax_", ",", 
      RowBox[{"incr_:", "1"}]}], "}"}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], ":=", 
  "\[IndentingNewLine]", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"rh", ",", "corrs"}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"rh", "=", 
      RowBox[{"OptionValue", "[", "Coefficient", "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"corrs", "=", 
      RowBox[{"Table", "[", 
       RowBox[{
        RowBox[{"{", 
         RowBox[{"lag", ",", 
          RowBox[{"AutoCorrelation", "[", 
           RowBox[{"data", ",", "lag"}], "]"}]}], "}"}], ",", 
        RowBox[{"{", 
         RowBox[{"lag", ",", "lagmin", ",", "lagmax", ",", "incr"}], "}"}]}], 
       "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"ListPlot", "[", 
      RowBox[{"corrs", ",", "\[IndentingNewLine]", 
       RowBox[{"FilterRules", "[", 
        RowBox[{
         RowBox[{"{", "opts", "}"}], ",", 
         RowBox[{"Options", "[", "ListPlot", "]"}]}], "]"}], ",", 
       RowBox[{"AspectRatio", "\[Rule]", ".4"}], ",", 
       RowBox[{"Frame", "\[Rule]", "True"}], ",", 
       RowBox[{"Axes", "\[Rule]", "False"}], ",", 
       RowBox[{"PlotRange", "\[Rule]", "Automatic"}], ",", 
       RowBox[{"FrameTicks", "\[Rule]", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"{", 
           RowBox[{"Automatic", ",", "False"}], "}"}], ",", 
          RowBox[{"{", 
           RowBox[{"Automatic", ",", "False"}], "}"}]}], "}"}]}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"Epilog", "\[Rule]", 
        RowBox[{"{", 
         RowBox[{"Thin", ",", "Dashed", ",", 
          RowBox[{"Line", "[", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{"0", ",", "rh"}], "}"}], ",", 
             RowBox[{"{", 
              RowBox[{
               RowBox[{
                RowBox[{"(", 
                 RowBox[{"lagmax", "-", "lagmin", "+", "1"}], ")"}], "/", 
                "incr"}], ",", "rh"}], "}"}]}], "}"}], "]"}], ",", 
          RowBox[{"Line", "[", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{"0", ",", 
               RowBox[{"-", "rh"}]}], "}"}], ",", 
             RowBox[{"{", 
              RowBox[{
               RowBox[{
                RowBox[{"(", 
                 RowBox[{"lagmax", "-", "lagmin", "+", "1"}], ")"}], "/", 
                "incr"}], ",", 
               RowBox[{"-", "rh"}]}], "}"}]}], "}"}], "]"}]}], "}"}]}]}], 
      "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"DigitSum", "[", 
   RowBox[{"n_", ",", 
    RowBox[{"base_:", "10"}]}], "]"}], ":=", 
  RowBox[{"Total", "[", 
   RowBox[{"IntegerDigits", "[", 
    RowBox[{"n", ",", "base"}], "]"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"EigenvectorPlot", "[", 
   RowBox[{
    RowBox[{"data", ":", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"_", ",", "_"}], "}"}], ".."}], "}"}]}], ",", "tensor_"}], 
   "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{"T", "=", "tensor"}], ",", "cmx", ",", "cmy", ",", "x", ",", 
      "\[Lambda]1", ",", "\[Lambda]2", ",", "v1x", ",", "v1y", ",", "v2x", 
      ",", "v2y", ",", "l1", ",", "l2"}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      RowBox[{"{", 
       RowBox[{"\[Lambda]1", ",", "\[Lambda]2"}], "}"}], "=", 
      RowBox[{"Eigenvalues", "[", "T", "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"cmx", ",", "cmy"}], "}"}], "=", 
      RowBox[{"Mean", "[", "data", "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{
        RowBox[{"{", 
         RowBox[{"v1x", ",", "v1y"}], "}"}], ",", 
        RowBox[{"{", 
         RowBox[{"v2x", ",", "v2y"}], "}"}]}], "}"}], "=", 
      RowBox[{"Eigenvectors", "[", "T", "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"l1", "=", 
      RowBox[{
       RowBox[{
        FractionBox["v1y", "v1x"], 
        RowBox[{"(", 
         RowBox[{"x", "-", "cmx"}], ")"}]}], "+", "cmy"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"l2", "=", 
      RowBox[{
       RowBox[{
        FractionBox["v2y", "v2x"], 
        RowBox[{"(", 
         RowBox[{"x", "-", "cmx"}], ")"}]}], "+", "cmy"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"Show", "[", 
      RowBox[{
       RowBox[{"{", "\[IndentingNewLine]", 
        RowBox[{
         RowBox[{"ListLinePlot", "[", 
          RowBox[{"data", ",", 
           RowBox[{"PlotStyle", "\[Rule]", "LightGray"}]}], "]"}], ",", 
         "\[IndentingNewLine]", 
         RowBox[{"Plot", "[", 
          RowBox[{"l1", ",", 
           RowBox[{"{", 
            RowBox[{"x", ",", 
             RowBox[{"cmx", "-", "\[Lambda]1"}], ",", 
             RowBox[{"cmx", "+", "\[Lambda]1"}]}], "}"}], ",", 
           RowBox[{"PlotStyle", "\[Rule]", 
            RowBox[{"{", 
             RowBox[{"Gray", ",", "Thick"}], "}"}]}]}], "]"}], ",", 
         "\[IndentingNewLine]", 
         RowBox[{"Plot", "[", 
          RowBox[{"l2", ",", 
           RowBox[{"{", 
            RowBox[{"x", ",", 
             RowBox[{"cmx", "-", "\[Lambda]2"}], ",", 
             RowBox[{"cmx", "+", "\[Lambda]2"}]}], "}"}], ",", 
           RowBox[{"PlotStyle", "\[Rule]", 
            RowBox[{"{", 
             RowBox[{"Gray", ",", "Thick"}], "}"}]}]}], "]"}], ",", 
         "\[IndentingNewLine]", 
         RowBox[{"Graphics", "[", 
          RowBox[{"{", 
           RowBox[{
            RowBox[{"PointSize", "[", "Large", "]"}], ",", "Red", ",", 
            RowBox[{"Point", "[", 
             RowBox[{"Mean", "[", "data", "]"}], "]"}]}], "}"}], "]"}]}], 
        "\[IndentingNewLine]", "}"}], ",", 
       RowBox[{"AspectRatio", "\[Rule]", "Automatic"}]}], "]"}]}]}], 
   "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"findRoot", "[", 
   RowBox[{"fun_", ",", 
    RowBox[{"{", 
     RowBox[{"var_", ",", 
      RowBox[{"init_", "?", "NumericQ"}]}], "}"}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
     "maxIterations", ",", "precisionGoal", ",", "workingPrecision", ",", 
      "initx", ",", 
      RowBox[{"df", "=", 
       SuperscriptBox["fun", "\[Prime]",
        MultilineFunction->None]}], ",", "result"}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      RowBox[{"{", 
       RowBox[{
       "maxIterations", ",", "precisionGoal", ",", "workingPrecision"}], 
       "}"}], "=", 
      RowBox[{"OptionValue", "[", 
       RowBox[{"{", 
        RowBox[{
        "MaxIterations", ",", "PrecisionGoal", ",", "WorkingPrecision"}], 
        "}"}], "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"If", "[", 
      RowBox[{
       RowBox[{"precisionGoal", "===", "Automatic"}], ",", 
       RowBox[{"precisionGoal", "=", 
        RowBox[{"Precision", "[", "init", "]"}]}]}], "]"}], ";", 
     RowBox[{"If", "[", 
      RowBox[{
       RowBox[{"workingPrecision", "===", "Automatic"}], ",", 
       RowBox[{"workingPrecision", "=", 
        RowBox[{"precisionGoal", "+", "10"}]}]}], "]"}], ";", 
     RowBox[{"initx", "=", 
      RowBox[{"SetPrecision", "[", 
       RowBox[{"init", ",", "workingPrecision"}], "]"}]}], ";", 
     RowBox[{"result", "=", 
      RowBox[{"SetPrecision", "[", 
       RowBox[{
        RowBox[{"FixedPoint", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"#1", "-", 
            FractionBox[
             RowBox[{"fun", "[", "#1", "]"}], 
             RowBox[{"df", "[", "#1", "]"}]]}], "&"}], ",", "initx", ",", 
          "maxIterations"}], "]"}], ",", "precisionGoal"}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"var", "\[Rule]", "result"}], "}"}]}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"LagPlot", "[", 
   RowBox[{"data_", ",", 
    RowBox[{"lag_", ":", "1"}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "ListPlot", "]"}]}]}], "]"}], ":=", 
  RowBox[{"ListPlot", "[", 
   RowBox[{
    RowBox[{"Transpose", "[", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"Drop", "[", 
        RowBox[{"data", ",", "lag"}], "]"}], ",", 
       RowBox[{"Drop", "[", 
        RowBox[{"data", ",", 
         RowBox[{"-", "lag"}]}], "]"}]}], "}"}], "]"}], ",", "opts"}], 
   "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"MiddleSquareGenerator", "[", 
   RowBox[{"n_", ",", 
    RowBox[{"seed_:", "1234567890"}]}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{"tmp", "=", 
       RowBox[{"{", "seed", "}"}]}], ",", "s2", ",", "len", ",", 
      RowBox[{"s", "=", "seed"}]}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"Do", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{
        RowBox[{"s2", "=", 
         RowBox[{"IntegerDigits", "[", 
          RowBox[{"s", "^", "2"}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"len", "=", 
         RowBox[{"Length", "[", "s2", "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"s", "=", 
         RowBox[{"FromDigits", "[", 
          RowBox[{
           RowBox[{"If", "[", 
            RowBox[{
             RowBox[{"len", "<", "20"}], ",", 
             RowBox[{"PadLeft", "[", 
              RowBox[{"s2", ",", "20", ",", "0"}], "]"}], ",", "s2"}], "]"}], 
           "[", 
           RowBox[{"[", 
            RowBox[{"6", ";;", "15"}], "]"}], "]"}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"AppendTo", "[", 
         RowBox[{"tmp", ",", "s"}], "]"}]}], ",", "\[IndentingNewLine]", 
       RowBox[{"{", "n", "}"}]}], "]"}], ";", "\[IndentingNewLine]", 
     "tmp"}]}], "\[IndentingNewLine]", "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RadiusOfGyrationTensor", "[", "lis_", "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"cmx", ",", "cmy", ",", "xcoords", ",", "ycoords", ",", "xy"}], 
     "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      RowBox[{"{", 
       RowBox[{"cmx", ",", "cmy"}], "}"}], "=", 
      RowBox[{"Mean", "[", "lis", "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"xcoords", ",", "ycoords"}], "}"}], "=", 
      RowBox[{"Transpose", "[", "lis", "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"xy", "=", 
      RowBox[{
       RowBox[{
        RowBox[{"(", 
         RowBox[{"xcoords", "-", "cmx"}], ")"}], ".", 
        RowBox[{"(", 
         RowBox[{"ycoords", "-", "cmy"}], ")"}]}], "/", 
       RowBox[{"Length", "[", "lis", "]"}]}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{"Mean", "[", 
          SuperscriptBox[
           RowBox[{"(", 
            RowBox[{"xcoords", "-", "cmx"}], ")"}], "2"], "]"}], ",", "xy"}], 
        "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"xy", ",", 
         RowBox[{"Mean", "[", 
          SuperscriptBox[
           RowBox[{"(", 
            RowBox[{"ycoords", "-", "cmy"}], ")"}], "2"], "]"}]}], "}"}]}], 
      "}"}]}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RandomSparseArray", "[", "n_Integer", "]"}], ":=", 
  RowBox[{"SparseArray", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{"Band", "[", 
       RowBox[{"{", 
        RowBox[{"1", ",", "1"}], "}"}], "]"}], "\[RuleDelayed]", 
      RowBox[{"RandomReal", "[", "]"}]}], "}"}], ",", 
    RowBox[{"{", 
     RowBox[{"n", ",", "n"}], "}"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"TridiagonalMatrix", "[", 
   RowBox[{"n_", ",", "p_", ",", "q_"}], "]"}], ":=", 
  RowBox[{"SparseArray", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       RowBox[{"Band", "[", 
        RowBox[{"{", 
         RowBox[{"1", ",", "1"}], "}"}], "]"}], "\[Rule]", "p"}], ",", 
      RowBox[{
       RowBox[{"Band", "[", 
        RowBox[{"{", 
         RowBox[{"1", ",", "2"}], "}"}], "]"}], "\[Rule]", "q"}], ",", 
      RowBox[{
       RowBox[{"Band", "[", 
        RowBox[{"{", 
         RowBox[{"2", ",", "1"}], "}"}], "]"}], "\[Rule]", "q"}]}], "}"}], 
    ",", 
    RowBox[{"{", 
     RowBox[{"n", ",", "n"}], "}"}]}], "]"}]}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["End private context", "Subsection"],

Cell[BoxData[
 RowBox[{"End", "[", "]"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["EndPackage", "Subsection"],

Cell[BoxData[
 RowBox[{"EndPackage", "[", "]"}]], "Input"]
}, Closed]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Examples", "Section"],

Cell[CellGroupData[{

Cell["Load package", "Subsection"],

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

Cell[TextData[{
 "Load the package (do ",
 StyleBox["not",
  FontSlant->"Italic"],
 " say \[OpenCurlyDoubleQuote]Yes\[CloseCurlyDoubleQuote] to evaluate init \
cells dialog)."
}], "Text"],

Cell[BoxData[
 RowBox[{"<<", "PWM`Chap08Numerics`"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Test usage messages", "Subsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "AutoCorrelation"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"AutoCorrelation[\\!\\(\\*\\nStyleBox[\\\"data\\\", \\\"TI\\\"]\
\\)\\!\\(\\*\\nStyleBox[\\\",\\\", \\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\
\", \\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"lag\\\", \\\"TI\\\"]\\)] returns \
the auto-correlation statistic of \\!\\(\\*\\nStyleBox[\\\"data\\\", \\\"TI\\\
\"]\\) with time lag, \\!\\(\\*\\nStyleBox[\\\"lag\\\", \\\"TI\\\"]\\).\"\>", 
  "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "ConditionNumber"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"ConditionNumber[\\!\\(\\*\\nStyleBox[\\\"mat\\\", \
\\\"TI\\\"]\\)] computes the condition number of the matrix \
\\!\\(\\*\\nStyleBox[\\\"mat\\\", \\\"TI\\\"]\\).\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "Correlogram"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"Correlogram[\\!\\(\\*\\nStyleBox[\\\"data\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\",\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"{\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"lagmin\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\",\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"lagmax\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\",\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"incr\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"}\\\", \\\"TI\\\"]\\)] displays a \
correlogram of \\!\\(\\*\\nStyleBox[\\\"data\\\", \\\"TI\\\"]\\) with time \
lags running from \\!\\(\\*\\nStyleBox[\\\"lagmin\\\", \\\"TI\\\"]\\) to \
\\!\\(\\*\\nStyleBox[\\\"lagmax\\\", \\\"TI\\\"]\\) in increments of \
\\!\\(\\*\\nStyleBox[\\\"incr\\\", \\\"TI\\\"]\\).\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "DigitSum"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"DigitSum[\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\), \
\\!\\(\\*\\nStyleBox[\\\"b\\\", \\\"TI\\\"]\\)] returns the digit sum of the \
number \\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\) in base \
\\!\\(\\*\\nStyleBox[\\\"b\\\", \\\"TI\\\"]\\).\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "EigenvectorPlot"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"EigenvectorPlot[\\!\\(\\*\\nStyleBox[\\\"data\\\", \\\"TI\\\"]\
\\)] displays an eigenvector plot of \\!\\(\\*\\nStyleBox[\\\"data\\\", \
\\\"TI\\\"]\\).\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "findRoot"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"findRoot[\\!\\(\\*\\nStyleBox[\\\"fun\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\",\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"{\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"var\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\",\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"init\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"}\\\", \\\"TI\\\"]\\)] implements \
Newton's root-finding method to find a zero of the function \
\\!\\(\\*\\nStyleBox[\\\"fun\\\", \\\"TI\\\"]\\)[\\!\\(\\*\\nStyleBox[\\\"var\
\\\", \\\"TI\\\"]\\)] starting with an initial estimate of \
\\!\\(\\*\\nStyleBox[\\\"init\\\", \\\"TI\\\"]\\).\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "LagPlot"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"LagPlot[\!\(\*\\nStyleBox[\\\"data\\\", \\\"TI\\\"]\), \
\!\(\*\\nStyleBox[\\\"lag\\\", \\\"TI\\\"]\)] returns a lag plot of \
\!\(\*\\nStyleBox[\\\"data\\\", \\\"TI\\\"]\).\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "MiddleSquareGenerator"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"MiddleSquareGenerator[\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\
\"]\\), \\!\\(\\*\\nStyleBox[\\\"seed\\\", \\\"TI\\\"]\\)] generates \
\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\)+1 random numbers starting with \
the seed and using von Neumann's middle square algorithm.\"\>", 
  "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "RadiusOfGyrationTensor"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"RadiusOfGyrationTensor[\!\(\*\\nStyleBox[\\\"lis\\\", \\\"TI\\\
\"]\)] computes the radius of gyration tensor of the numerical list \
\!\(\*\\nStyleBox[\\\"lis\\\", \\\"TI\\\"]\).\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "RandomSparseArray"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"RandomSparseArray[\!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\)] \
returns an \!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\)\!\(\*\\nStyleBox[\\\" \
\\\", \\\"TI\\\"]\)\[Cross] \!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\) sparse \
array with random numbers between 0 and 1 on the diagonal and zeros \
everywhere else.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"?", "TridiagonalMatrix"}]], "Input"],

Cell[BoxData[
 StyleBox["\<\"TridiagonalMatrix[\\!\\(\\*\\nStyleBox[\\\"n\\\", \
\\\"TI\\\"]\\), \\!\\(\\*\\nStyleBox[\\\"p\\\", \\\"TI\\\"]\\), \
\\!\\(\\*\\nStyleBox[\\\"q\\\", \\\"TI\\\"]\\)] returns an \
\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\\)\[Cross] \\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\) \
tridiagonal matrix with element \\!\\(\\*\\nStyleBox[\\\"p\\\", \
\\\"TI\\\"]\\) on the diagonal and \\!\\(\\*\\nStyleBox[\\\"q\\\", \
\\\"TI\\\"]\\) on the off-diagonal.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Exercise the functions and options", "Subsection"],

Cell[CellGroupData[{

Cell["Autocorrelation", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"data", "=", 
   RowBox[{"RandomInteger", "[", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"1", ",", "100"}], "}"}], ",", 
     RowBox[{"{", "1000", "}"}]}], "]"}]}], ";", 
  RowBox[{"N", "@", 
   RowBox[{"Table", "[", 
    RowBox[{
     RowBox[{"AutoCorrelation", "[", 
      RowBox[{"data", ",", "lag"}], "]"}], ",", 
     RowBox[{"{", 
      RowBox[{"lag", ",", "1", ",", "10", ",", "1"}], "}"}]}], 
    "]"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"-", "0.09037601583103948`"}], ",", 
   RowBox[{"-", "0.008775946526364284`"}], ",", 
   RowBox[{"-", "0.03475354568785669`"}], ",", 
   RowBox[{"-", "0.006307430562435758`"}], ",", "0.04911238878665233`", ",", 
   "0.011394631011723846`", ",", 
   RowBox[{"-", "0.015118214559945635`"}], ",", 
   RowBox[{"-", "0.051412290123943355`"}], ",", 
   RowBox[{"-", "0.04446265755633902`"}], ",", 
   RowBox[{"-", "0.004245912984380781`"}]}], "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["ConditionNumber", "Subsubsection"],

Cell["\<\
Conpute the condition number of the first 8 Hilbert matrices.\
\>", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Map", "[", 
    RowBox[{"ConditionNumber", ",", 
     RowBox[{"Table", "[", 
      RowBox[{
       RowBox[{"HilbertMatrix", "[", "n", "]"}], ",", 
       RowBox[{"{", 
        RowBox[{"n", ",", "1", ",", "12"}], "}"}]}], "]"}]}], "]"}], ";"}], "//",
   "Timing"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"0.42445400000000433`", ",", "Null"}], "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["Correlogram", "Subsubsection"],

Cell[BoxData[
 RowBox[{"temps", "=", 
  RowBox[{"WeatherData", "[", 
   RowBox[{"\"\<Chicago\>\"", ",", "\"\<MeanTemperature\>\"", ",", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"1992", ",", "1"}], "}"}], ",", 
      RowBox[{"{", 
       RowBox[{"2012", ",", "1"}], "}"}], ",", "\"\<Month\>\""}], "}"}], ",", 
    "\"\<Value\>\""}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{"Correlogram", "[", 
  RowBox[{"temps", ",", 
   RowBox[{"{", 
    RowBox[{"1", ",", "40"}], "}"}], ",", "0.35"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"data", "=", 
   RowBox[{"Table", "[", 
    RowBox[{
     RowBox[{
      RowBox[{"RandomReal", "[", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"-", "2"}], ",", "2"}], "}"}], "]"}], 
      RowBox[{"Sin", "[", 
       RowBox[{"x", "+", 
        RowBox[{"RandomReal", "[", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"-", ".25"}], ",", ".25"}], "}"}], "]"}]}], "]"}]}], ",", 
     RowBox[{"{", 
      RowBox[{"x", ",", "0", ",", 
       RowBox[{"10", "\[Pi]"}], ",", ".05"}], "}"}]}], "]"}]}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{"Correlogram", "[", 
  RowBox[{"data", ",", 
   RowBox[{"{", 
    RowBox[{"1", ",", "100"}], "}"}], ",", 
   RowBox[{"Coefficient", "\[Rule]", "0.1"}], ",", 
   RowBox[{"Filling", "\[Rule]", "Axis"}], ",", 
   RowBox[{"PlotRange", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"-", "0.2"}], ",", "0.2"}], "}"}]}], ",", 
   RowBox[{"FrameLabel", "\[Rule]", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"\"\<Auto-correlation coeff.\>\"", ",", "None"}], "}"}], ",", 
      RowBox[{"{", 
       RowBox[{"\"\<Lags\>\"", ",", "None"}], "}"}]}], "}"}]}]}], 
  "]"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["DigitSum", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"DigitSum", "[", 
  RowBox[{"10", "!"}], "]"}]], "Input"],

Cell[BoxData["27"], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["EigenvectorPlot", "Subsubsection"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<PwM`RandomWalks`\>\"", "]"}]], "Input", "TOP"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"coords", "=", 
   RowBox[{"RandomWalk", "[", 
    RowBox[{"10000", ",", 
     RowBox[{"Dimension", "\[Rule]", "2"}], ",", 
     RowBox[{"LatticeWalk", "\[Rule]", "False"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"\[ScriptCapitalT]", "=", 
   RowBox[{"RadiusOfGyrationTensor", "[", "coords", "]"}]}], ";"}]}], "Input"],

Cell[BoxData[
 RowBox[{"EigenvectorPlot", "[", 
  RowBox[{"coords", ",", "\[ScriptCapitalT]"}], "]"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["findRoot", "Subsubsection"],

Cell[BoxData[
 RowBox[{"findRoot", "[", 
  RowBox[{"Sin", ",", 
   RowBox[{"{", 
    RowBox[{"x", ",", 
     FractionBox["14", "10"]}], "}"}], ",", 
   RowBox[{"PrecisionGoal", "\[Rule]", "40"}]}], "]"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["LagPlot", "Subsubsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"data", "=", 
   RowBox[{"BlockRandom", "[", 
    RowBox[{
     RowBox[{"SeedRandom", "[", 
      RowBox[{"1", ",", 
       RowBox[{"Method", "\[Rule]", 
        RowBox[{"{", 
         RowBox[{"\"\<Congruential\>\"", ",", 
          RowBox[{"\"\<Multiplier\>\"", "\[Rule]", "11"}], ",", 
          RowBox[{"\"\<Increment\>\"", "\[Rule]", "0"}], ",", 
          RowBox[{"\"\<Modulus\>\"", "\[Rule]", "17"}]}], "}"}]}]}], "]"}], 
     ";", "\[IndentingNewLine]", 
     RowBox[{"RandomReal", "[", 
      RowBox[{"1", ",", 
       RowBox[{"{", "1000", "}"}]}], "]"}]}], "]"}]}], ";"}]], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Table", "[", 
  RowBox[{
   RowBox[{"LagPlot", "[", 
    RowBox[{"data", ",", "lag", ",", 
     RowBox[{"ImageSize", "\[Rule]", "Small"}]}], "]"}], ",", 
   RowBox[{"{", 
    RowBox[{"lag", ",", "1", ",", "4"}], "}"}]}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   GraphicsBox[{{}, 
     {Hue[0.67, 0.6, 0.6], PointBox[CompressedData["
1:eJztz7GJQlEQhtGL24dgH8LrwdBQMDa1EsvYSFNDQwMFAwMRWVYREe1A3h3e
NOGZ5IcvGc5gMhtNe6WU608p7fbrrZvVsr2/Zr+r13Q9dps99pI99pR9UW+T
PfaZPfaQfVjvkT32P/u83i37uN4x+/vV3jl77D17/PnN3jm7zs/Pz8/Pz8/P
z8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/P
z8/Pz8/P/63+D5LkJkg=
       "]]}, {}},
    AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
    Axes->True,
    AxesOrigin->{0, 0},
    ImageSize->Small,
    PlotRange->{{0., 0.9411764705882353}, {0., 0.9411764705882353}},
    PlotRangeClipping->True,
    PlotRangePadding->{
      Scaled[0.02], 
      Scaled[0.02]}], ",", 
   GraphicsBox[{{}, 
     {Hue[0.67, 0.6, 0.6], PointBox[CompressedData["
1:eJztz0EKgUEcxuGJeyj3UN8dLC2Vta2TOIYVW0tLC8rCQpIkSdxA34z5X8Lz
bqZmfk09/fF0OOmklG7dlNpzv8trVst216aXt/2d66a8X5ralftTdPO8TXTl
/hVdeT9EN8h7Rlfub9HN8u7RjfKO0X3e7c7RlfdHdOXfRXTVVbvqqh0/Pz8/
Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/
Pz8/Pz8/Pz8/P/+/+L+LTSAN
       "]]}, {}},
    AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
    Axes->True,
    AxesOrigin->{0, 0},
    ImageSize->Small,
    PlotRange->{{0., 0.9411764705882353}, {0., 0.9411764705882353}},
    PlotRangeClipping->True,
    PlotRangePadding->{
      Scaled[0.02], 
      Scaled[0.02]}], ",", 
   GraphicsBox[{{}, 
     {Hue[0.67, 0.6, 0.6], PointBox[CompressedData["
1:eJztz7GJQkEUhtFB+xDsQ5geDA2FjU2txDKMNDU0NFDYwEBEVBYR2e1A3oxz
i1jOn1x4w/fgDKez8VcvpXTrp9TdQdkur1fdrvmw73bJ9fvmc0+f7/u8KNvm
1tX7iq6+f0c3KntGV+89unnZT3STsmN0f7/dztHV90d09T/L6Jqjdc3RuuZo
HT8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/
Pz8/Pz8/Pz8/Pz8/Pz8//3/1vwGDrhg9
       "]]}, {}},
    AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
    Axes->True,
    AxesOrigin->{0, 0},
    ImageSize->Small,
    PlotRange->{{0., 0.9411764705882353}, {0., 0.9411764705882353}},
    PlotRangeClipping->True,
    PlotRangePadding->{
      Scaled[0.02], 
      Scaled[0.02]}], ",", 
   GraphicsBox[{{}, 
     {Hue[0.67, 0.6, 0.6], PointBox[CompressedData["
1:eJztzzFqQkEUBdBB9yG4D2H2YGkpWKd1JVmGlbYpU6ZQsLAIIhJCCKI7kD8z
bxYh5zYP/pt/eWe6fJuvRiml6zilYR72Qy55tx1yzZOS7zY/8nvJZ67v9u37
rc2vtj/m6JmV/Peeuv/pPeuS396zKDn1nsd9yLn31P1f76n/bXpP3B09cXf0
xN3RE3dHDz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/
Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8//6v4n0OeEG0=
       "]]}, {}},
    AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
    Axes->True,
    AxesOrigin->{0, 0},
    ImageSize->Small,
    PlotRange->{{0., 0.9411764705882353}, {0., 0.9411764705882353}},
    PlotRangeClipping->True,
    PlotRangePadding->{
      Scaled[0.02], 
      Scaled[0.02]}]}], "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["MiddleSquareGenerator", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"MiddleSquareGenerator", "[", "3", "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "1234567890", ",", "1578750190", ",", "4521624250", ",", "858581880"}], 
  "}"}]], "Output"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{"data", "=", 
   RowBox[{"MiddleSquareGenerator", "[", 
    RowBox[{"500", ",", "1234567890"}], "]"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"Take", "[", 
  RowBox[{"data", ",", "24"}], "]"}]}], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "1234567890", ",", "1578750190", ",", "4521624250", ",", "858581880", ",", 
   "1628446643", ",", "8384690979", ",", "428133239", ",", "2980703366", ",", 
   "5925560837", ",", "2712329881", ",", "7333833654", ",", "1160645429", ",",
    "978118585", ",", "7159663224", ",", "7774810980", ",", "6857747285", ",",
    "6978249248", ",", "9625672125", ",", "5638580020", ",", "5846419432", 
   ",", "6201748672", ",", "6865906537", ",", "6725748193", ",", 
   "6887556427"}], "}"}]], "Output"]
}, Closed]],

Cell[BoxData[
 RowBox[{"ListLinePlot", "[", 
  SuperscriptBox[
   RowBox[{"Abs", "[", 
    RowBox[{"Fourier", "[", "data", "]"}], "]"}], "2"], "]"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["RadiusOfGyrationTensor", "Subsubsection"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<PwM`RandomWalks`\>\"", "]"}]], "Input", "TOP"],

Cell[BoxData[
 RowBox[{
  RowBox[{"coords", "=", 
   RowBox[{"RandomWalk", "[", 
    RowBox[{"10000", ",", 
     RowBox[{"Dimension", "\[Rule]", "2"}], ",", 
     RowBox[{"LatticeWalk", "\[Rule]", "False"}]}], "]"}]}], ";"}]], "Input"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"walk", "=", 
   RowBox[{"RandomWalk", "[", 
    RowBox[{
     SuperscriptBox["10", "6"], ",", 
     RowBox[{"LatticeWalk", "\[Rule]", "False"}]}], "]"}]}], ";"}], "\n", 
 RowBox[{"\[ScriptCapitalT]", "=", 
  RowBox[{"RadiusOfGyrationTensor", "[", "walk", "]"}]}]}], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["RandomSparseArray", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"Normal", "[", 
   RowBox[{"RandomSparseArray", "[", "5", "]"}], "]"}], "//", 
  "MatrixForm"}]], "Input"],

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {"0.9135786595761082`", "0", "0", "0", "0"},
     {"0", "0.7721068364341714`", "0", "0", "0"},
     {"0", "0", "0.2699423765192783`", "0", "0"},
     {"0", "0", "0", "0.034540878864362856`", "0"},
     {"0", "0", "0", "0", "0.02580354370980764`"}
    },
    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"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["TridiagonalMatrix", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"TridiagonalMatrix", "[", 
  RowBox[{"5", ",", "\[Alpha]", ",", "\[Beta]"}], "]"}]], "Input"],

Cell[BoxData[
 TagBox[
  RowBox[{"SparseArray", "[", 
   RowBox[{
    InterpretationBox[
     RowBox[{"\<\"<\"\>", "\[InvisibleSpace]", "13", 
      "\[InvisibleSpace]", "\<\">\"\>"}],
     SequenceForm["<", 13, ">"],
     Editable->False], ",", 
    RowBox[{"{", 
     RowBox[{"5", ",", "5"}], "}"}]}], "]"}],
  False,
  Editable->False]], "Output"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {"\[Alpha]", "\[Beta]", "0", "0", "0"},
     {"\[Beta]", "\[Alpha]", "\[Beta]", "0", "0"},
     {"0", "\[Beta]", "\[Alpha]", "\[Beta]", "0"},
     {"0", "0", "\[Beta]", "\[Alpha]", "\[Beta]"},
     {"0", "0", "0", "\[Beta]", "\[Alpha]"}
    },
    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[
   SparseArray[
    Automatic, {5, 5}, 0, {
     1, {{0, 2, 5, 8, 11, 13}, {{2}, {1}, {1}, {2}, {3}, {4}, {2}, {3}, {3}, {
       5}, {4}, {4}, {
       5}}}, {$CellContext`\[Beta], $CellContext`\[Alpha], $CellContext`\
\[Beta], $CellContext`\[Alpha], $CellContext`\[Beta], $CellContext`\[Beta], \
$CellContext`\[Beta], $CellContext`\[Alpha], $CellContext`\[Beta], \
$CellContext`\[Beta], $CellContext`\[Alpha], $CellContext`\[Beta], \
$CellContext`\[Alpha]}}]]]]], "Output"]
}, Closed]]
}, Closed]]
}, Open  ]]
}, Open  ]]
},
AutoGeneratedPackage->Automatic,
WindowSize->{924, 861},
WindowMargins->{{446, Automatic}, {Automatic, 33}},
ShowSelection->True,
Magnification:>FEPrivate`If[
  FEPrivate`Equal[FEPrivate`$VersionNumber, 6.], 1.25, 1.25 Inherited],
FrontEndVersion->"8.0 for Mac OS X x86 (32-bit, 64-bit Kernel) (October 5, \
2011)",
StyleDefinitions->"Default.nb"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[579, 22, 66, 1, 83, "Section",
 InitializationGroup->True],
Cell[648, 25, 398, 13, 34, "Text"],
Cell[CellGroupData[{
Cell[1071, 42, 30, 0, 42, "Subsection"],
Cell[1104, 44, 129, 3, 33, "Input"],
Cell[1236, 49, 239, 6, 33, "Input"],
Cell[1478, 57, 146, 4, 33, "Input"],
Cell[1627, 63, 318, 8, 53, "Input"],
Cell[1948, 73, 135, 4, 33, "Input"],
Cell[2086, 79, 147, 4, 33, "Input"],
Cell[2236, 85, 241, 7, 33, "Input"],
Cell[2480, 94, 256, 8, 33, "Input"],
Cell[2739, 104, 547, 11, 72, "Input"],
Cell[3289, 117, 152, 4, 33, "Input"],
Cell[3444, 123, 173, 5, 33, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[3654, 133, 34, 0, 31, "Subsection"],
Cell[3691, 135, 80, 1, 51, "Input"],
Cell[3774, 138, 91, 1, 51, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[3902, 144, 57, 0, 31, "Subsection"],
Cell[3962, 146, 396, 9, 72, "Input"],
Cell[4361, 157, 248, 5, 53, "Input"],
Cell[4612, 164, 749, 19, 72, "Input"],
Cell[5364, 185, 297, 7, 33, "Input"],
Cell[5664, 194, 238, 5, 33, "Input"],
Cell[5905, 201, 633, 16, 72, "Input"],
Cell[6541, 219, 248, 6, 33, "Input"],
Cell[6792, 227, 386, 9, 72, "Input"],
Cell[7181, 238, 285, 7, 72, "Input"],
Cell[7469, 247, 385, 9, 72, "Input"],
Cell[7857, 258, 498, 12, 72, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[8392, 275, 29, 0, 31, "Subsection"],
Cell[8424, 277, 285, 8, 51, "Input"],
Cell[8712, 287, 449, 11, 171, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[9198, 303, 37, 0, 31, "Subsection"],
Cell[9238, 305, 74, 1, 51, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[9349, 311, 63, 0, 31, "Subsection"],
Cell[9415, 313, 356, 11, 51, "Input"],
Cell[9774, 326, 408, 12, 82, "Input"],
Cell[10185, 340, 2738, 73, 350, "Input"],
Cell[12926, 415, 237, 7, 51, "Input"],
Cell[13166, 424, 3083, 84, 533, "Input"],
Cell[16252, 510, 2019, 56, 376, "Input"],
Cell[18274, 568, 551, 17, 82, "Input"],
Cell[18828, 587, 1391, 36, 290, "Input"],
Cell[20222, 625, 1384, 40, 191, "Input"],
Cell[21609, 667, 407, 12, 51, "Input"],
Cell[22019, 681, 694, 22, 82, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[22750, 708, 41, 0, 31, "Subsection"],
Cell[22794, 710, 51, 1, 51, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[22882, 716, 32, 0, 31, "Subsection"],
Cell[22917, 718, 58, 1, 51, "Input"]
}, Closed]]
}, Open  ]],
Cell[CellGroupData[{
Cell[23024, 725, 27, 0, 83, "Section"],
Cell[CellGroupData[{
Cell[23076, 729, 34, 0, 42, "Subsection"],
Cell[23113, 731, 52, 1, 96, "Input"],
Cell[23168, 734, 187, 6, 93, "Text"],
Cell[23358, 742, 63, 1, 96, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[23458, 748, 41, 0, 31, "Subsection"],
Cell[CellGroupData[{
Cell[23524, 752, 58, 1, 96, "Input"],
Cell[23585, 755, 441, 6, 145, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[24063, 766, 58, 1, 96, "Input"],
Cell[24124, 769, 232, 4, 145, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[24393, 778, 54, 1, 96, "Input"],
Cell[24450, 781, 959, 17, 203, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[25446, 803, 51, 1, 96, "Input"],
Cell[25500, 806, 318, 5, 145, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[25855, 816, 58, 1, 96, "Input"],
Cell[25916, 819, 220, 3, 145, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[26173, 827, 51, 1, 96, "Input"],
Cell[26227, 830, 782, 14, 203, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[27046, 849, 50, 1, 96, "Input"],
Cell[27099, 852, 242, 4, 145, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[27378, 861, 64, 1, 96, "Input"],
Cell[27445, 864, 342, 5, 203, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[27824, 874, 65, 1, 96, "Input"],
Cell[27892, 877, 248, 4, 145, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[28177, 886, 60, 1, 96, "Input"],
Cell[28240, 889, 375, 5, 203, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[28652, 899, 60, 1, 96, "Input"],
Cell[28715, 902, 568, 8, 203, "Print"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[29332, 916, 56, 0, 31, "Subsection"],
Cell[CellGroupData[{
Cell[29413, 920, 40, 0, 30, "Subsubsection"],
Cell[CellGroupData[{
Cell[29478, 924, 464, 15, 82, "Input"],
Cell[29945, 941, 505, 11, 82, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[30499, 958, 40, 0, 21, "Subsubsection"],
Cell[30542, 960, 85, 2, 50, "Text"],
Cell[CellGroupData[{
Cell[30652, 966, 321, 10, 51, "Input"],
Cell[30976, 978, 95, 2, 51, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[31120, 986, 36, 0, 21, "Subsubsection"],
Cell[31159, 988, 377, 10, 82, "Input"],
Cell[31539, 1000, 154, 4, 51, "Input"],
Cell[31696, 1006, 575, 19, 51, "Input"],
Cell[32274, 1027, 627, 18, 82, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[32938, 1050, 33, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[32996, 1054, 80, 2, 51, "Input"],
Cell[33079, 1058, 29, 0, 51, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[33157, 1064, 40, 0, 21, "Subsubsection"],
Cell[33200, 1066, 88, 1, 51, "Input"],
Cell[33291, 1069, 379, 10, 82, "Input"],
Cell[33673, 1081, 112, 2, 51, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[33822, 1088, 33, 0, 21, "Subsubsection"],
Cell[33858, 1090, 214, 6, 88, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[34109, 1101, 32, 0, 21, "Subsubsection"],
Cell[34144, 1103, 625, 16, 171, "Input"],
Cell[CellGroupData[{
Cell[34794, 1123, 261, 7, 51, "Input"],
Cell[35058, 1132, 2709, 70, 525, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[37816, 1208, 46, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[37887, 1212, 74, 1, 51, "Input"],
Cell[37964, 1215, 134, 4, 51, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[38135, 1224, 242, 6, 82, "Input"],
Cell[38380, 1232, 533, 9, 141, "Output"]
}, Closed]],
Cell[38928, 1244, 159, 4, 63, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[39124, 1253, 47, 0, 21, "Subsubsection"],
Cell[39174, 1255, 88, 1, 51, "Input"],
Cell[39265, 1258, 235, 6, 51, "Input"],
Cell[39503, 1266, 310, 8, 93, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[39850, 1279, 42, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[39917, 1283, 140, 4, 51, "Input"],
Cell[40060, 1289, 804, 20, 170, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[40913, 1315, 42, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[40980, 1319, 116, 2, 51, "Input"],
Cell[41099, 1323, 350, 12, 51, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[41486, 1340, 63, 1, 51, "Input"],
Cell[41552, 1343, 1245, 29, 170, "Output"]
}, Closed]]
}, Closed]]
}, Open  ]]
}, Open  ]]
}
]
*)

(* End of internal cache information *)
