(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 5.1' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 95464, 3238]*) (*NotebookOutlinePosition[ 96170, 3262]*) (* CellTagsIndexPosition[ 96126, 3258]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell["Conic Normal Form of a Real 2 \[Times] 2 Matrix", "Title"], Cell["Tony Thrall , 19-April-2005: ", "Text"], Cell[TextData[{ "In example 4, section 1.1, of Reference 1, the author presents certain \ normal forms of real 2 \[Times] 2 matrices. I have written ", StyleBox["Mathematica", FontSlant->"Italic"], " function conicReduceM2R to calculate the conjugation matrix required to \ transform a given real numeric matrix to its normal form. Subsequent \ sections of this notebook contain the function definition and supporting \ material. The reader is invited to copy and modify the code, with my request \ for acknowledgement in consequent publications. The mathematics underlying \ the code is presented in Reference 2." }], "Text"], Cell[TextData[{ "Reference 1: ", "Wulf Rossmann, ", StyleBox["Lie groups: an introduction through linear groups", FontSlant->"Italic"], ", Oxford University Press, New York, 2004." }], "Text"], Cell["\<\ Reference 2: submitted for publication\ \>", "Text"], Cell[CellGroupData[{ Cell["Explore", "Section"], Cell[CellGroupData[{ Cell["\<\ Assuming[{a, b, c, d}\[Element]Reals, f[]]\ \>", "Subsection"], Cell[CellGroupData[{ Cell["Define discrim", "Subsubsection"], Cell[BoxData[ \(discrim[{{a_, \ b_}, \ {c_, \ d_}}]\ := \ \((a\ - \ d)\)^2\ + \ \((4\ b\ c)\)\)], "Input"], Cell[BoxData[ \(discRoot[{{a_, \ b_}, \ {c_, \ d_}}]\ := \ Sqrt[discrim[\ {{a, \ b}, \ {c, \ d}}\ ]]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Define discrimReal", "Subsubsection"], Cell[BoxData[ \(discrimReal[{{a_, \ b_}, \ {c_, \ d_}}]\ := \ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\[IndentingNewLine]\((a\ - \ d)\)^2\ + \ \((4\ b\ c)\)\[IndentingNewLine]]]\)], "Input"], Cell[BoxData[ \(discRootReal[{{a_, \ b_}, \ {c_, \ d_}}]\ := \ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\[IndentingNewLine]Sqrt[ discrimReal[\ {{a, \ b}, \ {c, \ d}}\ ]]\[IndentingNewLine]]]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Test discrimReal", "Subsubsection"], Cell[CellGroupData[{ Cell[BoxData[ \(discrimReal[\ {{a, \ b}, \ {c, \ d}}\ ]\)], "Input"], Cell[BoxData[ \(4\ b\ c + \((a - d)\)\^2\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(discRootReal[\ {{a, \ b}, \ {c, \ d}}\ ]\)], "Input"], Cell[BoxData[ \(\@\(4\ b\ c + \((a - d)\)\^2\)\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Simplify[\ discRootReal[\ {{a, \ 0}, \ {0, \ d}}\ ]\ ]\)], "Input"], Cell[BoxData[ \(Abs[a - d]\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Simplify[\ discRootReal[\ {{0, \ \(-\ Sin[\[Theta]]\)}, \ {Sin[\[Theta]], \ 0}}\ ]\ ]\)], "Input"], Cell[BoxData[ \(2\ \[ImaginaryI]\ Abs[Sin[\[Theta]]]\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Assuming[\ {a, \ b, \ c, \ d} \[Element] Reals, \ Abs[a\ - \ d]\ < \ a\ - \ d\ ]\)], "Input"], Cell[BoxData[ \(Abs[a - d] < a - d\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Assuming[\ {a, \ b, \ c, \ d} \[Element] Reals, \ Cosh[a]\ < \ Sinh[a]\ ]\)], "Input"], Cell[BoxData[ \(Cosh[a] < Sinh[a]\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Assuming[\ {a, \ b, \ c, \ d} \[Element] Reals, \ Cosh[a]^2\ < \ Sinh[a]^2\ ]\)], "Input"], Cell[BoxData[ \(Cosh[a]\^2 < Sinh[a]\^2\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Simplify[Cosh[a]^2\ - \ Sinh[a]^2]\)], "Input"], Cell[BoxData[ \(1\)], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Test discrim", "Subsubsection"], Cell[CellGroupData[{ Cell[BoxData[ \(discrim[\ {{a, \ b}, \ {c, \ d}}\ ]\)], "Input"], Cell[BoxData[ \(4\ b\ c + \((a - d)\)\^2\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(discRoot[\ {{a, \ b}, \ {c, \ d}}\ ]\)], "Input"], Cell[BoxData[ \(\@\(4\ b\ c + \((a - d)\)\^2\)\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Simplify[\ discRoot[\ {{a, \ 0}, \ {0, \ d}}\ ]\ ]\)], "Input"], Cell[BoxData[ \(\@\((a - d)\)\^2\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Simplify[\ discRoot[\ {{0, \ \(-\ Sin[\[Theta]]\)}, \ {Sin[\[Theta]], \ 0}}\ ]\ ]\)], "Input"], Cell[BoxData[ \(2\ \@\(-Sin[\[Theta]]\^2\)\)], "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Characteristic values and vectors", "Subsection"], Cell[CellGroupData[{ Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " Eigenvalues and Eigenvectors" }], "Subsubsection"], Cell[CellGroupData[{ Cell[BoxData[ \(eAvalues\ = \ Eigenvalues[\((A\ = \ {{a, b}, {c, d}})\)]\)], "Input"], Cell[BoxData[ \({1\/2\ \((a + d - \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\), 1\/2\ \((a + d + \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)}\)], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(eAvectors\ = \ Eigenvectors[A]\)], "Input"], Cell[BoxData[ \({{\(-\(\(\(-a\) + d + \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\)\)\/\(2\ c\)\)\), 1}, {\(-\(\(\(-a\) + d - \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\)\)\/\(2\ c\)\)\), 1}}\)], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(pAvectors\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ 2\ c\ eAvectors]\ ]\)], "Input"], Cell[BoxData[ RowBox[{\(General::"spell1"\), \(\(:\)\(\ \)\), "\<\"Possible spelling \ error: new symbol name \\\"\\!\\(pAvectors\\)\\\" is similar to existing \ symbol \\\"\\!\\(eAvectors\\)\\\". \ \\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", ButtonStyle->\\\"RefGuideLinkText\ \\\", ButtonFrame->None, ButtonData:>\\\"General::spell1\\\"]\\)\"\>"}]], \ "Message"], Cell[BoxData[ \({{a - d - \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\), 2\ c}, {a - d + \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\), 2\ c}}\)], "Output"] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["Options for symbolic characteristic vectors", "Subsubsection"], Cell[BoxData[ \(Clear[\ singVectors01, \ singVectors02\ ]\)], "Input"], Cell[BoxData[ \(singVectors01[\ {{a_, \ b_}, \ {c_, \ d_}}\ ]\ := \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ \[IndentingNewLine]{{a, \ b}, \ {c, \ d}}\ - \ \(Eigenvalues[\ {{a, \ b}, \ {c, \ d}}\ ]\)\ [\([1]\)]\ IdentityMatrix[ 2]\[IndentingNewLine]]\ ]\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(singVectors01[\ {{a, \ b}, \ {c, \ d}}\ ] // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(1\/2\ \((a - d + \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\), "b"}, { "c", \(1\/2\ \((\(-a\) + d + \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[BoxData[ \(singVectors02[\ {{a_, \ b_}, \ {c_, \ d_}}\ ]\ := \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ \[IndentingNewLine]{{a, \ b}, \ {c, \ d}}\ - \ \(Eigenvalues[\ {{a, \ b}, \ {c, \ d}}\ ]\)\ [\([2]\)]\ IdentityMatrix[ 2]\[IndentingNewLine]]\ ]\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(singVectors02[\ {{a, \ b}, \ {c, \ d}}\ ] // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(1\/2\ \((a - d - \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\), "b"}, { "c", \(1\/2\ \((\(-a\) + d - \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[BoxData[ \(Clear[\ eM0101, \ eM0102, \ eM0201, \ eM0202\ ]\)], "Input"], Cell[BoxData[ \(Clear[\ det0101, \ det0102, \ det0201, \ det0202\ ]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["eM0101", "Subsubsection"], Cell[BoxData[ \(eM0101[\ {{a_, \ b_}, \ {c_, \ d_}}\ ]\ := \ Block[{A, \ sVecs01, \ sVecs02}, \[IndentingNewLine]A\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ {{a, \ b}, \ {c, \ d}}]\ ]; \[IndentingNewLine]sVecs01\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ singVectors01[A]]\ ]; \[IndentingNewLine]sVecs02\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ singVectors02[A]]\ ]; \[IndentingNewLine]Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ \[IndentingNewLine]{{\(-\ sVecs02\ [\([1, \ 2]\)]\), \ \(-\ sVecs01\ [\([1, \ 2]\)]\)}, \ {sVecs02\ [\([1, \ 1]\)], \ sVecs01\ [\([1, \ 1]\)]}}]]\[IndentingNewLine]]\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(eM0101[\ {{a, \ b}, \ {c, \ d}}\ ] // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(-b\), \(-b\)}, {\(1\/2\ \((a - d - \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\), \(1\/2\ \ \((a - d + \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(\((test0101\ = \ Simplify[\[IndentingNewLine]{{a, \ b}, \ {c, \ d}} . eM0101[\ {{a, \ b}, \ {c, \ d}}\ ]\ - \ eM0101[\ {{a, \ b}, \ {c, \ d}}\ ] . DiagonalMatrix[{\(Eigenvalues[{{a, \ b}, \ {c, \ d}}]\)\ [\([2]\)], \ \(Eigenvalues[{{a, \ b}, \ {c, \ d}}]\)\ [\([1]\)]}]\[IndentingNewLine]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(Det[eM0101[\ {{a, \ b}, \ {c, \ d}}\ ]]\)], "Input"], Cell[BoxData[ \(\(-b\)\ \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\)\)], "Output"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["eM0102", "Subsubsection"], Cell[BoxData[ \(eM0102[\ {{a_, \ b_}, \ {c_, \ d_}}\ ]\ := \ Block[{A, \ sVecs01, \ sVecs02}, \[IndentingNewLine]A\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ {{a, \ b}, \ {c, \ d}}]\ ]; \[IndentingNewLine]sVecs01\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ singVectors01[A]]\ ]; \[IndentingNewLine]sVecs02\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ singVectors02[A]]\ ]; \[IndentingNewLine]Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ \[IndentingNewLine]{{sVecs02\ [\([1, \ 2]\)], \ \(-\ sVecs01\ [\([2, \ 2]\)]\)}, \ {\(-\ sVecs02\ [\([1, \ 1]\)]\), \ sVecs01\ [\([2, \ 1]\)]}}]]\[IndentingNewLine]]\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(eM0102[\ {{a, \ b}, \ {c, \ d}}\ ] // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ { "b", \(1\/2\ \((a - d - \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\)}, {\(1\/2\ \((\(-a\) + d + \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\), "c"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(\((test0102\ = \ Simplify[\[IndentingNewLine]{{a, \ b}, \ {c, \ d}} . eM0102[\ {{a, \ b}, \ {c, \ d}}\ ]\ - \ eM0102[\ {{a, \ b}, \ {c, \ d}}\ ] . DiagonalMatrix[{\(Eigenvalues[{{a, \ b}, \ {c, \ d}}]\)\ [\([2]\)], \ \(Eigenvalues[{{a, \ b}, \ {c, \ d}}]\)\ [\([1]\)]}]\[IndentingNewLine]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(Det[eM0102[\ {{a, \ b}, \ {c, \ d}}\ ]]\)], "Input"], Cell[BoxData[ \(a\^2\/2 + 2\ b\ c - a\ d + d\^2\/2 - 1\/2\ a\ \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\) + 1\/2\ d\ \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\)\)], "Output"] }, Closed]], Cell[BoxData[ \(det0102[\ {{a_, \ b_}, \ {c_, \ d_}}\ ]\ := \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ \[IndentingNewLine]Sqrt[ discr[\ {{a, \ b}, \ {c, \ d}}\ ]]\ \((Sqrt[ discr[\ {{a, \ b}, \ {c, \ d}}\ ]]\ - \ \((a\ - \ d)\))\)/2\[IndentingNewLine]]]\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(det0102[\ {{a, \ b}, \ {c, \ d}}\ ]\)], "Input"], Cell[BoxData[ \(1\/2\ \@\(4\ b\ c + \((a - d)\)\^2\)\ \((\(-a\) + \@\(4\ b\ c + \((a - \ d)\)\^2\) + d)\)\)], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(Simplify[ Det[eM0102[\ {{a, \ b}, \ {c, \ d}}\ ]]\ - \ det0102[\ {{a, \ b}, \ {c, \ d}}\ ]]\)], "Input"], Cell[BoxData[ \(0\)], "Output"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["eM0201", "Subsubsection"], Cell[BoxData[ \(eM0201[\ {{a_, \ b_}, \ {c_, \ d_}}\ ]\ := \ Block[{A, \ sVecs01, \ sVecs02}, \[IndentingNewLine]A\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ {{a, \ b}, \ {c, \ d}}]\ ]; \[IndentingNewLine]sVecs01\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ singVectors01[A]]\ ]; \[IndentingNewLine]sVecs02\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ singVectors02[A]]\ ]; \[IndentingNewLine]Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ \[IndentingNewLine]{{\(-\ sVecs02\ [\([2, \ 2]\)]\), \ \(-\ sVecs01\ [\([1, \ 2]\)]\)}, \ {sVecs02\ [\([2, \ 1]\)], \ sVecs01\ [\([1, \ 1]\)]}}]]\[IndentingNewLine]]\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(eM0201[\ {{a, \ b}, \ {c, \ d}}\ ] // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(1\/2\ \((a - d + \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\), \(-b\)}, { "c", \(1\/2\ \((a - d + \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(\((test0201\ = \ Simplify[\[IndentingNewLine]{{a, \ b}, \ {c, \ d}} . eM0201[\ {{a, \ b}, \ {c, \ d}}\ ]\ - \ eM0201[\ {{a, \ b}, \ {c, \ d}}\ ] . DiagonalMatrix[{\(Eigenvalues[{{a, \ b}, \ {c, \ d}}]\)\ [\([2]\)], \ \(Eigenvalues[{{a, \ b}, \ {c, \ d}}]\)\ [\([1]\)]}]\[IndentingNewLine]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(Det[eM0201[\ {{a, \ b}, \ {c, \ d}}\ ]]\)], "Input"], Cell[BoxData[ \(a\^2\/2 + 2\ b\ c - a\ d + d\^2\/2 + 1\/2\ a\ \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\) - 1\/2\ d\ \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\)\)], "Output"] }, Closed]], Cell[BoxData[ \(det0201[\ {{a_, \ b_}, \ {c_, \ d_}}\ ]\ := \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ \[IndentingNewLine]Sqrt[ discr[\ {{a, \ b}, \ {c, \ d}}\ ]]\ \((\((a\ - \ d)\)\ + \ Sqrt[discr[\ {{a, \ b}, \ {c, \ d}}\ ]])\)/ 2\[IndentingNewLine]]]\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(det0201[\ {{a, \ b}, \ {c, \ d}}\ ]\)], "Input"], Cell[BoxData[ \(1\/2\ \@\(4\ b\ c + \((a - d)\)\^2\)\ \((a + \@\(4\ b\ c + \((a - \ d)\)\^2\) - d)\)\)], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(Simplify[ Det[eM0201[\ {{a, \ b}, \ {c, \ d}}\ ]]\ - \ det0201[\ {{a, \ b}, \ {c, \ d}}\ ]]\)], "Input"], Cell[BoxData[ \(0\)], "Output"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["eM0202", "Subsubsection"], Cell[BoxData[ \(eM0202[\ {{a_, \ b_}, \ {c_, \ d_}}\ ]\ := \ Block[{A, \ sVecs01, \ sVecs02}, \[IndentingNewLine]A\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ {{a, \ b}, \ {c, \ d}}]\ ]; \[IndentingNewLine]sVecs01\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ singVectors01[A]]\ ]; \[IndentingNewLine]sVecs02\ = \ Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ singVectors02[A]]\ ]; \[IndentingNewLine]Simplify[\ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ \[IndentingNewLine]{{\(-\ sVecs02\ [\([2, \ 2]\)]\), \ \(-\ sVecs01\ [\([2, \ 2]\)]\)}, \ {sVecs02\ [\([2, \ 1]\)], \ sVecs01\ [\([2, \ 1]\)]}}]]\[IndentingNewLine]]\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(eM0202[\ {{a, \ b}, \ {c, \ d}}\ ] // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(1\/2\ \((a - d + \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\), \(1\/2\ \ \((a - d - \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\))\)\)}, {"c", "c"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(\((test0202\ = \ Simplify[\[IndentingNewLine]{{a, \ b}, \ {c, \ d}} . eM0202[\ {{a, \ b}, \ {c, \ d}}\ ]\ - \ eM0202[\ {{a, \ b}, \ {c, \ d}}\ ] . DiagonalMatrix[{\(Eigenvalues[{{a, \ b}, \ {c, \ d}}]\)\ [\([2]\)], \ \(Eigenvalues[{{a, \ b}, \ {c, \ d}}]\)\ [\([1]\)]}]\[IndentingNewLine]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(Det[eM0202[\ {{a, \ b}, \ {c, \ d}}\ ]]\)], "Input"], Cell[BoxData[ \(c\ \@\(a\^2 + 4\ b\ c - 2\ a\ d + d\^2\)\)], "Output"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " Matrix reduction" }], "Subsubsection"], Cell[CellGroupData[{ Cell[BoxData[ \(SchurDecomposition[\((A\ = \ {{a, b}, {c, d}})\)]\)], "Input"], Cell[BoxData[ RowBox[{\(SchurDecomposition::"schurn"\), \(\(:\)\(\ \)\), \ "\<\"\\!\\(SchurDecomposition\\) has received a matrix with non-numeric \ elements. \\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", \ ButtonStyle->\\\"RefGuideLinkText\\\", ButtonFrame->None, \ ButtonData:>\\\"SchurDecomposition::schurn\\\"]\\)\"\>"}]], "Message", FontSize->12], Cell[BoxData[ \(SchurDecomposition[{{a, b}, {c, d}}]\)], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(QRDecomposition[A]\)], "Input"], Cell[BoxData[ \({{{Conjugate[a]\/\@\(a\^2 + c\^2\), Conjugate[c]\/\@\(a\^2 + c\^2\)}, {\((Conjugate[a]\^2\ Conjugate[ b] - a\ Conjugate[a\ b] + Conjugate[b]\ Conjugate[c]\^2 - c\ Conjugate[a\ d])\)/\((\((Conjugate[a]\^2 + Conjugate[c]\^2)\)\ \[Sqrt]\((\(1\/\(a\^2 + c\^2\)\) \((a\^2\ b\^2 + b\^2\ c\^2 + a\^2\ d\^2 + c\^2\ d\^2 - 2\ a\ b\^2\ Conjugate[a] - 2\ b\ c\ d\ Conjugate[a] + b\^2\ Conjugate[a]\^2 - 2\ a\ b\ d\ Conjugate[c] - 2\ c\ d\^2\ Conjugate[c] + 2\ b\ d\ Conjugate[a]\ Conjugate[c] + d\^2\ Conjugate[c]\^2)\))\))\), \((\(-a\)\ \ Conjugate[b\ c] + Conjugate[a]\^2\ Conjugate[d] + Conjugate[c]\^2\ Conjugate[d] - c\ Conjugate[c\ d])\)/\((\((Conjugate[a]\^2 + Conjugate[c]\^2)\)\ \[Sqrt]\((\(1\/\(a\^2 + c\^2\)\) \((a\^2\ b\^2 + b\^2\ c\^2 + a\^2\ d\^2 + c\^2\ d\^2 - 2\ a\ b\^2\ Conjugate[a] - 2\ b\ c\ d\ Conjugate[a] + b\^2\ Conjugate[a]\^2 - 2\ a\ b\ d\ Conjugate[c] - 2\ c\ d\^2\ Conjugate[c] + 2\ b\ d\ Conjugate[a]\ Conjugate[c] + d\^2\ Conjugate[c]\^2)\))\))\)}}, {{\@\(a\^2 + c\^2\ \), \(b\ Conjugate[a] + d\ Conjugate[c]\)\/\@\(a\^2 + c\^2\)}, {0, \[Sqrt]\((\ \(1\/\(a\^2 + c\^2\)\) \((a\^2\ b\^2 + b\^2\ c\^2 + a\^2\ d\^2 + c\^2\ d\^2 - 2\ a\ b\^2\ Conjugate[a] - 2\ b\ c\ d\ Conjugate[a] + b\^2\ Conjugate[a]\^2 - 2\ a\ b\ d\ Conjugate[c] - 2\ c\ d\^2\ Conjugate[c] + 2\ b\ d\ Conjugate[a]\ Conjugate[c] + d\^2\ Conjugate[c]\^2)\))\)}}}\)], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(Assuming[\ {a, \ b, \ c, \ d} \[Element] Reals, \ QRDecomposition[A]\ ] // Simplify\)], "Input"], Cell[BoxData[ \({{{Conjugate[a]\/\@\(a\^2 + c\^2\), Conjugate[c]\/\@\(a\^2 + c\^2\)}, {\((Conjugate[a]\^2\ Conjugate[ b] - a\ Conjugate[a\ b] + Conjugate[b]\ Conjugate[c]\^2 - c\ Conjugate[a\ d])\)/\((\((Conjugate[a]\^2 + Conjugate[c]\^2)\)\ \[Sqrt]\((\(1\/\(a\^2 + c\^2\)\) \((\((a\^2 + c\^2)\)\ \((b\^2 + d\^2)\) + b\^2\ Conjugate[a]\^2 - 2\ d\ \((a\ b + c\ d)\)\ Conjugate[c] + d\^2\ Conjugate[c]\^2 - 2\ b\ Conjugate[ a]\ \((a\ b + c\ d - d\ Conjugate[ c])\))\))\))\), \((\(-a\)\ Conjugate[ b\ c] + Conjugate[a]\^2\ Conjugate[d] + Conjugate[c]\^2\ Conjugate[d] - c\ Conjugate[c\ d])\)/\((\((Conjugate[a]\^2 + Conjugate[c]\^2)\)\ \[Sqrt]\((\(1\/\(a\^2 + c\^2\)\) \((\((a\^2 + c\^2)\)\ \((b\^2 + d\^2)\) + b\^2\ Conjugate[a]\^2 - 2\ d\ \((a\ b + c\ d)\)\ Conjugate[c] + d\^2\ Conjugate[c]\^2 - 2\ b\ Conjugate[ a]\ \((a\ b + c\ d - d\ Conjugate[ c])\))\))\))\)}}, {{\@\(a\^2 + c\^2\), \ \(b\ Conjugate[a] + d\ Conjugate[c]\)\/\@\(a\^2 + c\^2\)}, {0, \ \[Sqrt]\((\(1\/\(a\^2 + c\^2\)\) \((\((a\^2 + c\^2)\)\ \((b\^2 + d\^2)\) + b\^2\ Conjugate[a]\^2 - 2\ d\ \((a\ b + c\ d)\)\ Conjugate[c] + d\^2\ Conjugate[c]\^2 - 2\ b\ Conjugate[ a]\ \((a\ b + c\ d - d\ Conjugate[c])\))\))\)}}}\)], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(Assuming[\ {a, \ b, \ c, \ d} \[Element] Reals, \ QRDecomposition[A]\ ]\)], "Input"], Cell[BoxData[ \({{{Conjugate[a]\/\@\(a\^2 + c\^2\), Conjugate[c]\/\@\(a\^2 + c\^2\)}, {\((Conjugate[a]\^2\ Conjugate[ b] - a\ Conjugate[a\ b] + Conjugate[b]\ Conjugate[c]\^2 - c\ Conjugate[a\ d])\)/\((\((Conjugate[a]\^2 + Conjugate[c]\^2)\)\ \[Sqrt]\((\(1\/\(a\^2 + c\^2\)\) \((a\^2\ b\^2 + b\^2\ c\^2 + a\^2\ d\^2 + c\^2\ d\^2 - 2\ a\ b\^2\ Conjugate[a] - 2\ b\ c\ d\ Conjugate[a] + b\^2\ Conjugate[a]\^2 - 2\ a\ b\ d\ Conjugate[c] - 2\ c\ d\^2\ Conjugate[c] + 2\ b\ d\ Conjugate[a]\ Conjugate[c] + d\^2\ Conjugate[c]\^2)\))\))\), \((\(-a\)\ \ Conjugate[b\ c] + Conjugate[a]\^2\ Conjugate[d] + Conjugate[c]\^2\ Conjugate[d] - c\ Conjugate[c\ d])\)/\((\((Conjugate[a]\^2 + Conjugate[c]\^2)\)\ \[Sqrt]\((\(1\/\(a\^2 + c\^2\)\) \((a\^2\ b\^2 + b\^2\ c\^2 + a\^2\ d\^2 + c\^2\ d\^2 - 2\ a\ b\^2\ Conjugate[a] - 2\ b\ c\ d\ Conjugate[a] + b\^2\ Conjugate[a]\^2 - 2\ a\ b\ d\ Conjugate[c] - 2\ c\ d\^2\ Conjugate[c] + 2\ b\ d\ Conjugate[a]\ Conjugate[c] + d\^2\ Conjugate[c]\^2)\))\))\)}}, {{\@\(a\^2 + c\^2\ \), \(b\ Conjugate[a] + d\ Conjugate[c]\)\/\@\(a\^2 + c\^2\)}, {0, \[Sqrt]\((\ \(1\/\(a\^2 + c\^2\)\) \((a\^2\ b\^2 + b\^2\ c\^2 + a\^2\ d\^2 + c\^2\ d\^2 - 2\ a\ b\^2\ Conjugate[a] - 2\ b\ c\ d\ Conjugate[a] + b\^2\ Conjugate[a]\^2 - 2\ a\ b\ d\ Conjugate[c] - 2\ c\ d\^2\ Conjugate[c] + 2\ b\ d\ Conjugate[a]\ Conjugate[c] + d\^2\ Conjugate[c]\^2)\))\)}}}\)], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(Assuming[\ {a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\ QRDecomposition[A]\ ]\ ]\)], "Input"], Cell[BoxData[ \({{{a\/\@\(a\^2 + c\^2\), c\/\@\(a\^2 + c\^2\)}, {\(c\ \((b\ c - a\ d)\)\)\/\(\@\(a\^2 + c\^2\ \)\ Abs[b\ c - a\ d]\), \(a\ \((\(-b\)\ c + a\ d)\)\)\/\(\@\(a\^2 + c\^2\)\ \ Abs[b\ c - a\ d]\)}}, {{\@\(a\^2 + c\^2\), \(a\ b + c\ d\)\/\@\(a\^2 + \ c\^2\)}, {0, Abs[b\ c - a\ d]\/\@\(a\^2 + c\^2\)}}}\)], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(\((q\ = \ \(Assuming[\ {a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\ QRDecomposition[A]\ ]\ ]\)\ [\([1]\)])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(a\/\@\(a\^2 + c\^2\)\), \(c\/\@\(a\^2 + c\^2\)\)}, {\(\(c\ \((b\ c - a\ d)\)\)\/\(\@\(a\^2 + c\^2\)\ Abs[ b\ c - a\ d]\)\), \(\(a\ \((\(-b\)\ c + a\ d)\)\)\/\(\@\(a\^2 + c\^2\)\ Abs[b\ c - a\ d]\)\)} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(\((t\ = \ \(Assuming[\ {a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\ QRDecomposition[A]\ ]\ ]\)\ [\([2]\)])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(\@\(a\^2 + c\^2\)\), \(\(a\ b + c\ d\)\/\@\(a\^2 + c\^2\)\)}, {"0", \(Abs[b\ c - a\ d]\/\@\(a\^2 + c\^2\)\)} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Scale equalization", "Subsubsection"], Cell[CellGroupData[{ Cell[BoxData[ \(\((symP\ = \ {{\[Alpha], \ 0}, \ {\[Beta], \ \[Alpha]}})\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\[Alpha]", "0"}, {"\[Beta]", "\[Alpha]"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(\((syD\ = \ DiagonalMatrix[{\[Gamma], \ \[Delta]}])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\[Gamma]", "0"}, {"0", "\[Delta]"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(Inverse[syD] // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(1\/\[Gamma]\), "0"}, {"0", \(1\/\[Delta]\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ \(\((newP\ = \ Inverse[syD] . symP . syD // Simplify)\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\[Alpha]", "0"}, {\(\(\[Beta]\ \[Gamma]\)\/\[Delta]\), "\[Alpha]"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]] }, Closed]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["canonicalConicM2R", "Section"], Cell[CellGroupData[{ Cell["ellipM2R", "Subsection"], Cell[CellGroupData[{ Cell["Define ellipM2R", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[ellipM2R]\)\)\)], "Input"], Cell[BoxData[ \(ellipM2R[r_, \ \[Theta]_]\ := \ Simplify[\ r\ {{Cos[\[Theta]], \ \(-\ Sin[\[Theta]]\)}, \ {Sin[\[Theta]], \ Cos[\[Theta]]}}\ ]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Test ellipM2R", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[testEllip]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((testEllip\ = \ ellipM2R[5, \ ArcTan[3, \ 4]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", \(-4\)}, {"4", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["hypM2R", "Subsection"], Cell[CellGroupData[{ Cell["Define hypM2R", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[hypM2R]\)\)\)], "Input"], Cell[BoxData[ \(hypM2R[r_, \ \[Theta]_]\ := \ Simplify[\ r\ {{Cosh[\[Theta]], \ Sinh[\[Theta]]}, \ {Sinh[\[Theta]], \ Cosh[\[Theta]]}}\ ]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Test hypM2R", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[testHyp]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((testHyp\ = \ hypM2R[3, \ ArcTanh[4/5]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"5", "4"}, {"4", "5"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["parabM2R", "Subsection"], Cell[CellGroupData[{ Cell["Define parabM2R", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[parabM2R]\)\)\)], "Input"], Cell[BoxData[ \(parabM2R[r_, \ \[Theta]_]\ := \ Simplify[\ r\ {{Cos[\[Theta]], \ 0}, \ {Sin[\[Theta]], \ Cos[\[Theta]]}}\ ]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Test parabM2R", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[testParab]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((testParab\ = \ parabM2R[5, \ ArcTan[3, \ 4]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", "0"}, {"4", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["scalarM2R", "Subsection"], Cell[CellGroupData[{ Cell["Define scalarM2R", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[scalarM2R]\)\)\)], "Input"], Cell[BoxData[ \(scalarM2R[scalar_]\ := \ Simplify[\ scalar\ IdentityMatrix[2]\ ]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Test scalarM2R", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[testScalar]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((testScalar\ = \ scalarM2R[3])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", "0"}, {"0", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["Test cases", "Section"], Cell[CellGroupData[{ Cell["define example conic matrices", "Subsubsection"], Cell[CellGroupData[{ Cell[BoxData[ \(\(\(\ \)\(Clear[ellipA, \ hypA, \ parabA, \ scalarA]\)\)\)], "Input"], Cell[BoxData[ RowBox[{\(General::"spell1"\), \(\(:\)\(\ \)\), "\<\"Possible spelling \ error: new symbol name \\\"\\!\\(scalarA\\)\\\" is similar to existing symbol \ \\\"\\!\\(scalar\\)\\\". \\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", \ ButtonStyle->\\\"RefGuideLinkText\\\", ButtonFrame->None, \ ButtonData:>\\\"General::spell1\\\"]\\)\"\>"}]], "Message"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"ellipA", " ", "=", " ", RowBox[{"(", GridBox[{ {"3", \(-4\)}, {"4", "3"} }], ")"}]}]], "Input"], Cell[BoxData[ \({{3, \(-4\)}, {4, 3}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"hypA", " ", "=", " ", RowBox[{"(", GridBox[{ {"5", "4"}, {"4", "5"} }], ")"}]}]], "Input"], Cell[BoxData[ \({{5, 4}, {4, 5}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"parabA", " ", "=", " ", RowBox[{"(", GridBox[{ {"3", "0"}, {"4", "3"} }], ")"}]}]], "Input"], Cell[BoxData[ \({{3, 0}, {4, 3}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"scalarA", " ", "=", " ", RowBox[{"(", GridBox[{ {"3", "0"}, {"0", "3"} }], ")"}]}]], "Input"], Cell[BoxData[ \({{3, 0}, {0, 3}}\)], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["define some transformation matrices", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[rotateM, \ unRotateM, \ squishM, \ unSquishM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((rotateM\ = \ ellipM2R[1, \ Pi/4])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(1\/\@2\), \(-\(1\/\@2\)\)}, {\(1\/\@2\), \(1\/\@2\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((unRotateM\ = \ Inverse[\ rotateM\ ])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(1\/\@2\), \(1\/\@2\)}, {\(-\(1\/\@2\)\), \(1\/\@2\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((squishM\ = \ hypM2R[1, \ ArcTanh[4/5]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(5\/3\), \(4\/3\)}, {\(4\/3\), \(5\/3\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((unSquishM\ = \ Inverse[\ squishM\ ])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(5\/3\), \(-\(4\/3\)\)}, {\(-\(4\/3\)\), \(5\/3\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["spectrumM2R", "Section"], Cell[CellGroupData[{ Cell["spectrumM2R", "Subsection"], Cell[CellGroupData[{ Cell["Define spectrumM2R", "Subsubsection"], Cell[BoxData[ \(Clear[spectrumM2R]\)], "Input"], Cell[BoxData[ RowBox[{\(spectrumM2R[\ {{a_, \ b_}, \ {c_, \ d_}}\ ]\), " ", ":=", " ", RowBox[{"Block", "[", "\[IndentingNewLine]", RowBox[{"(*", " ", "\[IndentingNewLine]", StyleBox[\(Given\ real\ 2\ \[Times]\ 2\ numeric\ matrix\ A, \ return\ \[IndentingNewLine] {eMat, \ eVals}\ where\ \[IndentingNewLine] A . eMat\ \[Equal] \ eMat . diag \((eVals)\)\), FontColor->RGBColor[0, 0, 1]], "\[IndentingNewLine]", " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", "\[IndentingNewLine]", StyleBox[\(Notes\ \[IndentingNewLine] \((1)\)\ return\ values\ may\ be\ complex\ \[IndentingNewLine] \((2)\) if\ A\ has\ only\ one\ eignevector\ set\ \[IndentingNewLine] 2 nd\ column\ of\ eMat\ to\ zero\ \[IndentingNewLine] 2 nd\ elt\ of\ eVals\ to\ 1 st\ elt\ \[IndentingNewLine] \((3)\)\ 1 st\ elt\ of\ eVals\ is\ the\ larger\ or\ \[IndentingNewLine] has\ positive\ imaginary\ part\), FontColor->RGBColor[0, 0, 1]], "\[IndentingNewLine]", " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{\({discrim, \ commonFactor\ = \ 1, \ x, \ eVals, \ eMat}\), ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{\(discrim\ = \ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\[IndentingNewLine]\((a\ - \ d)\)^2\ + \ \((4\ b\ c)\)\[IndentingNewLine]]]\), ";", "\[IndentingNewLine]", "\[IndentingNewLine]", \(eVals\ = \ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\[IndentingNewLine]{a + d + Sqrt[discrim], a + d - Sqrt[discrim]}/2\[IndentingNewLine]]]\), ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"eMat", " ", "=", " ", RowBox[{"Assuming", "[", RowBox[{\({a, \ b, \ c, \ d} \[Element] Reals\), ",", " ", RowBox[{"Simplify", "[", " ", "\[IndentingNewLine]", RowBox[{"Which", "[", " ", "\[IndentingNewLine]", RowBox[{\(\((b\ \[Equal] \ 0)\)\ \[And] \ \((c\ \[Equal] \ 0)\)\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(A\ is\ a\ diagonal\ matrix\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"Which", "[", " ", "\[IndentingNewLine]", RowBox[{\(a\ < \ d\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(list\ larger\ eigenvalue\ first\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \({{0, \ 1}, \ {1, \ 0}}\), ",", "\[IndentingNewLine]", "True", ",", "\[IndentingNewLine]", \(IdentityMatrix[2]\)}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", \(\((discrim\ \[NotEqual] \ 0)\)\ \[And] \ \((c\ \[NotEqual] \ 0)\)\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(distinct\ eigenvectors, \ c\ \[NotEqual] \ 0\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \({{a - d + Sqrt[discrim], a - d - Sqrt[discrim]}, {2\ c, 2\ c}}\), ",", "\[IndentingNewLine]", \(\((discrim\ \[NotEqual] \ 0)\)\ \[And] \ \((c\ \[Equal] \ 0)\)\), ",", "\[IndentingNewLine]", RowBox[{"Which", "[", "\[IndentingNewLine]", RowBox[{\(a\ < \ d\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(distinct\ eigenvectors, \ c\ \[Equal] \ 0, \ a\ < \ d\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \({{b, \ 1}, \ {d\ - \ a, \ 0}}\), ",", "\[IndentingNewLine]", "True", ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(distinct\ eigenvectors, \ c\ \[Equal] \ 0, \ a\ > \ d\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \({{1, b}, {0, d\ - \ a}}\)}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", \(\((discrim\ \[Equal] \ \ 0)\)\ \[And] \ \((c\ \[NotEqual] \ 0)\)\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(single\ eigenvector, \ c\ \[NotEqual] \ 0\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \({{a - d, 0}, {2\ c, 0}}\), ",", "\[IndentingNewLine]", \(\((discrim\ \[Equal] \ 0)\)\ \[And] \ \((b\ \[NotEqual] \ 0)\)\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(single\ eigenvector, \ c\ \[Equal] \ 0, \ b\ \[NotEqual] \ 0, \ a\ \[Equal] \ d\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \({{1, \ 0}, \ {0, \ 0}}\), ",", "\[IndentingNewLine]", "True", ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(A\ is\ undetermined\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", "Null"}], "\[IndentingNewLine]", "]"}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(simplify\ eMat\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"commonFactor", " ", "=", " ", RowBox[{"If", "[", " ", RowBox[{\(MatrixQ[eMat]\), ",", "\[IndentingNewLine]", \(Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\ \[IndentingNewLine]\(FactorTermsList[\ Flatten[eMat] . Table[\ x^j, \ {j, \ 0, \ 3}\ ]\ ]\)\ [\([1]\)]\[IndentingNewLine]]]\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox["else", FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", "1"}], "]"}]}], ";", "\[IndentingNewLine]", \(eMat\ = \ If[\ MatrixQ[eMat], eMat/commonFactor\ ]\), ";", "\[IndentingNewLine]", "\[IndentingNewLine]", \({eMat, \ eVals}\)}]}], "]"}]}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["examine symbolic case", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((A\ = \ {{s, \ t}, \ {u, \ v}})\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"s", "t"}, {"u", "v"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({Null, {1\/2\ \((s + \@\(4\ t\ u + \((s - v)\)\^2\) + v)\), 1\/2\ \((s - \@\(4\ t\ u + \((s - v)\)\^2\) + v)\)}}\)], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Test ellipA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((A\ = \ ellipA)\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", \(-4\)}, {"4", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({{{\[ImaginaryI], \(-\[ImaginaryI]\)}, {1, 1}}, {3 + 4\ \[ImaginaryI], 3 - 4\ \[ImaginaryI]}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(eM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\[ImaginaryI]", \(-\[ImaginaryI]\)}, {"1", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((testM\ = \ Simplify[A . eM\ - \ eM . DiagonalMatrix[eV]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Test hypA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((A\ = \ hypA)\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"5", "4"}, {"4", "5"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({{{1, \(-1\)}, {1, 1}}, {9, 1}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(eM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", \(-1\)}, {"1", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((testM\ = \ Simplify[A . eM\ - \ eM . DiagonalMatrix[eV]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Test parabA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((A\ = \ parabA)\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", "0"}, {"4", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({{{0, 0}, {1, 0}}, {3, 3}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(eM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"1", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((testM\ = \ Simplify[A . eM\ - \ eM . DiagonalMatrix[eV]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Test scalarA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((A\ = \ scalarA)\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", "0"}, {"0", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({{{1, 0}, {0, 1}}, {3, 3}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(eM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0"}, {"0", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((testM\ = \ Simplify[A . eM\ - \ eM . DiagonalMatrix[eV]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Re-test ellipA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((A\ = \ Simplify[unSquishM . ellipA . squishM])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(-\(133\/9\)\), \(-\(164\/9\)\)}, {\(164\/9\), \(187\/9\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({{{\(-40\) + 9\ \[ImaginaryI], \(-40\) - 9\ \[ImaginaryI]}, {41, 41}}, {3 + 4\ \[ImaginaryI], 3 - 4\ \[ImaginaryI]}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(eM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(\(-40\) + 9\ \[ImaginaryI]\), \(\(-40\) - 9\ \[ImaginaryI]\)}, {"41", "41"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((testM\ = \ Simplify[A . eM\ - \ eM . DiagonalMatrix[eV]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Re-test hypA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((A\ = \ Simplify[unRotateM . hypA . rotateM])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"9", "0"}, {"0", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({{{1, 0}, {0, 1}}, {9, 1}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(eM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0"}, {"0", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((testM\ = \ Simplify[A . eM\ - \ eM . DiagonalMatrix[eV]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Re-test parabA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((A\ = \ Simplify[unRotateM . parabA . rotateM])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"5", \(-2\)}, {"2", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({{{1, 0}, {1, 0}}, {3, 3}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(eM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0"}, {"1", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((testM\ = \ Simplify[A . eM\ - \ eM . DiagonalMatrix[eV]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((newParabA\ = \ {{3, \ \(-1\)}, \ {1, \ 5}})\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", \(-1\)}, {"1", "5"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(A\ = \ newParabA\)], "Input"], Cell[BoxData[ \({{3, \(-1\)}, {1, 5}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({{{\(-1\), 0}, {1, 0}}, {4, 4}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(eM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(-1\), "0"}, {"1", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((testM\ = \ Simplify[A . eM\ - \ eM . DiagonalMatrix[eV]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((A\ = \ Simplify[unSquishM . newParabA . squishM])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(-5\), \(-9\)}, {"9", "13"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({{{\(-1\), 0}, {1, 0}}, {4, 4}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(eM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(-1\), "0"}, {"1", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((testM\ = \ Simplify[A . eM\ - \ eM . DiagonalMatrix[eV]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[BoxData[ \(\(\(\ \)\(Clear[eM, \ eV, \ testM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"newTestParabM", " ", "=", " ", RowBox[{"(", "\[NoBreak]", GridBox[{ {"4", "0"}, {"2", "4"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}]}]], "Input"], Cell[BoxData[ \({{4, 0}, {2, 4}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(A\ = \ newTestParabM\)], "Input"], Cell[BoxData[ \({{4, 0}, {2, 4}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({eM, \ eV}\ = \ spectrumM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({{{0, 0}, {1, 0}}, {4, 4}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(eM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"1", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((testM\ = \ Simplify[A . eM\ - \ eM . DiagonalMatrix[eV]])\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"0", "0"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["conicReduceM2R", "Section"], Cell[CellGroupData[{ Cell["conicReduceM2R", "Subsection"], Cell[CellGroupData[{ Cell["Define conicReduceM2R", "Subsubsection"], Cell[BoxData[ \(Clear[conicReduceM2R]\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{\(conicReduceM2R[\ {{a_, \ b_}, \ {c_, \ d_}}\ ]\), " ", ":=", " ", RowBox[{"Block", "[", "\[IndentingNewLine]", RowBox[{"(*", " ", "\[IndentingNewLine]", StyleBox[ RowBox[{\(Given\ real\ 2\ \[Times]\ 2\ numeric\ matrix\ A\), ",", " ", RowBox[{ "return", " ", "\[IndentingNewLine]", \({conicM, \ tM}\ where\), " ", "\[IndentingNewLine]", \(conicM\ \[Equal] \ tM\^\(-1\) . A . tM\), " ", "\[IndentingNewLine]", "is", " ", "one", " ", "of", " ", "the", " ", "following", " ", "forms", " ", "\[IndentingNewLine]", "with", " ", "\[Alpha]", " ", "real", " ", "and", " ", "\[Beta]", " ", "positive", " ", "\[IndentingNewLine]", "\[IndentingNewLine]", \(scalar\ --\), " ", RowBox[{"(", GridBox[{ {"\[Alpha]", "0"}, {"0", "\[Alpha]"} }], ")"}], " ", "\[IndentingNewLine]", \(parabolic\ --\), " ", RowBox[{"(", GridBox[{ {"\[Alpha]", "0"}, {"1", "\[Alpha]"} }], ")"}], "\[IndentingNewLine]", \(hyperbolic\ --\), " ", RowBox[{"(", GridBox[{ {"\[Alpha]", "\[Beta]"}, {"\[Beta]", "\[Alpha]"} }], ")"}], "\[IndentingNewLine]", \(elliptic\ --\), " ", RowBox[{"(", GridBox[{ {"\[Alpha]", \(-\[Beta]\)}, {"\[Beta]", "\[Alpha]"} }], ")"}]}]}], FontColor->RGBColor[0, 0, 1]], "\[IndentingNewLine]", " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{\({\[IndentingNewLine]discrim, \ x, \ commonFactor\ = \ 1, \ \[IndentingNewLine]A, \ conicM, \ tM, \ eigenM, \ \[IndentingNewLine]hypM\ = \ {{1, \ 1}, \ {\(-1\), \ 1}}, \ \[IndentingNewLine]ellipM\ = \ {{1, \ I}, \ {I, \ 1}}\[IndentingNewLine]}\), ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{\(A\ = \ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[{{a, \ b}, \ {c, \ d}}]]\), ";", "\[IndentingNewLine]", \(discrim\ = \ Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\((a\ - \ d)\)^2\ + \ \((4\ b\ c)\)]]\), ";", "\[IndentingNewLine]", \(eigenM\ = \ \(spectrumM2R[ A]\)\ [\([1]\)]\), ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"tM", " ", "=", " ", RowBox[{"Assuming", "[", RowBox[{\({a, \ b, \ c, \ d} \[Element] Reals\), ",", " ", RowBox[{"Simplify", "[", "\[IndentingNewLine]", RowBox[{"Which", "[", " ", "\[IndentingNewLine]", RowBox[{\(\((b\ \[Equal] \ 0)\)\ \[And] \ \((c\ \[Equal] \ 0)\)\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(A\ is\ diagonal\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"Which", "[", " ", RowBox[{\(a\ \[Equal] \ d\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(scalar\ case\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \(IdentityMatrix[2]\), ",", "\[IndentingNewLine]", \(a\ > \ d\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(hyperbolic\ case, \ a\ > \ d\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", "hypM", ",", "\[IndentingNewLine]", \(a\ < \ d\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(hyperbolic\ case, \ a\ < \ d\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \(Transpose[hypM]\), ",", "\[IndentingNewLine]", "True", ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(A\ is\ an\ indeterminate\ diagonal\ \ matrix\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", "Null"}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(A\ is\ non - diagonal\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \(discrim\ > \ 0\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(hyperbolic\ case, \ \[Lambda]\ = \ \ \[Alpha]\ \[PlusMinus] \ \[Beta]\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \(eigenM . hypM\), ",", "\[IndentingNewLine]", \(discrim\ < \ 0\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(elliptic\ case, \ \[Lambda]\ = \ \ \[Alpha]\ \[PlusMinus] \ \[ImaginaryI]\ \[Beta]\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \(eigenM . ellipM\), ",", "\[IndentingNewLine]", \(discrim\ \[Equal] \ 0\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(parabolic\ case, \ \[Lambda]\ = \ \ \[Alpha]\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"Which", "[", " ", "\[IndentingNewLine]", RowBox[{\(\((b\ \[NotEqual] \ 0)\)\ \[And] \ \((c\ \[NotEqual] \ 0)\)\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(parabolic\ case, \ a\ \[NotEqual] \ d\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \({{\((a - d)\)/\((2\ b)\), \ b\ - c}, \ {1, \ 2\ c\ \((b\ - \ c)\)/\((a - d)\)}}\), ",", "\[IndentingNewLine]", \(\((b\ \[NotEqual] \ 0)\)\ \[And] \ \((c\ \[Equal] \ 0)\)\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(parabolic\ case, \ a\ \[Equal] \ d, \ c\ \[Equal] \ 0\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \({{0, \ b}, \ {1, \ 0}}\), ",", "\[IndentingNewLine]", \(\((b\ \[Equal] \ 0)\)\ \[And] \ \((c\ \[NotEqual] \ 0)\)\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(parabolic\ case, \ a\ \[Equal] \ d, \ b\ \[Equal] \ 0\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", \({{1, \ 0}, \ {0, \ c}}\)}], "\[IndentingNewLine]", "]"}], ",", "\[IndentingNewLine]", "True", ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox["undetermined", FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", "Null"}], "\[IndentingNewLine]", "]"}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox[\(simplify\ tM\), FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"commonFactor", " ", "=", " ", RowBox[{"If", "[", " ", RowBox[{\(MatrixQ[tM]\), ",", "\[IndentingNewLine]", \(Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\ \[IndentingNewLine]\(FactorTermsList[\ Flatten[tM] . Table[\ x^j, \ {j, \ 0, \ 3}\ ]\ ]\)\ [\([1]\)]\[IndentingNewLine]]]\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox["else", FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", "1"}], "]"}]}], ";", "\[IndentingNewLine]", \(tM\ = \ If[\ MatrixQ[tM], tM/commonFactor\ ]\), ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"conicM", " ", "=", " ", RowBox[{"If", "[", " ", RowBox[{\(MatrixQ[tM]\), ",", "\[IndentingNewLine]", \(Assuming[{a, \ b, \ c, \ d} \[Element] Reals, \ Simplify[\ Inverse[tM] . A . tM\ ]]\), ",", "\[IndentingNewLine]", RowBox[{"(*", " ", StyleBox["else", FontColor->RGBColor[0, 0, 1]], " ", "*)"}], "\[IndentingNewLine]", "Null"}], "\[IndentingNewLine]", "]"}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", \({conicM, \ tM}\)}]}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{\(General::"spell1"\), \(\(:\)\(\ \)\), "\<\"Possible spelling \ error: new symbol name \\\"\\!\\(hypM\\)\\\" is similar to existing symbol \\\ \"\\!\\(hypA\\)\\\". \\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", \ ButtonStyle->\\\"RefGuideLinkText\\\", ButtonFrame->None, \ ButtonData:>\\\"General::spell1\\\"]\\)\"\>"}]], "Message"], Cell[BoxData[ RowBox[{\(General::"spell1"\), \(\(:\)\(\ \)\), "\<\"Possible spelling \ error: new symbol name \\\"\\!\\(ellipM\\)\\\" is similar to existing symbol \ \\\"\\!\\(ellipA\\)\\\". \\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", \ ButtonStyle->\\\"RefGuideLinkText\\\", ButtonFrame->None, \ ButtonData:>\\\"General::spell1\\\"]\\)\"\>"}]], "Message"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["examine symbolic case", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM, \ A]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\((A\ = \ {{s, \ t}, \ {u, \ v}})\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"s", "t"}, {"u", "v"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ A\ ]\)], "Input"], Cell[BoxData[ \({Null, Null}\)], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Test ellipA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ ellipA\ ]\)], "Input"], Cell[BoxData[ \({{{3, \(-4\)}, {4, 3}}, {{1, \(-1\)}, {1, 1}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", \(-4\)}, {"4", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(tM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", \(-1\)}, {"1", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Test hypA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ hypA\ ]\)], "Input"], Cell[BoxData[ \({{{5, 4}, {4, 5}}, {{1, 0}, {0, 1}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"5", "4"}, {"4", "5"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(tM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0"}, {"0", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Test parabA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ parabA\ ]\)], "Input"], Cell[BoxData[ \({{{3, 0}, {1, 3}}, {{1, 0}, {0, 4}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", "0"}, {"1", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(tM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0"}, {"0", "4"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((newParabA\ = \ {{3, \ \(-1\)}, \ {1, \ 5}})\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", \(-1\)}, {"1", "5"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ newParabA\ ]\)], "Input"], Cell[BoxData[ \({{{4, 0}, {1, 4}}, {{1, \(-2\)}, {1, 2}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"4", "0"}, {"1", "4"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(tM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", \(-2\)}, {"1", "2"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Test scalarA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ scalarA\ ]\)], "Input"], Cell[BoxData[ \({{{3, 0}, {0, 3}}, {{1, 0}, {0, 1}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", "0"}, {"0", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(tM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0"}, {"0", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Re-test ellipA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\(unSquishM . ellipA . squishM // Simplify\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(-\(133\/9\)\), \(-\(164\/9\)\)}, {\(164\/9\), \(187\/9\)} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ unSquishM . ellipA . squishM\ ]\)], "Input"], Cell[BoxData[ \({{{3, \(-4\)}, {4, 3}}, {{\(-31\), \(-49\)}, {41, 41}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", \(-4\)}, {"4", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(tM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(-31\), \(-49\)}, {"41", "41"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Re-test hypA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\(unRotateM . hypA . rotateM // Simplify\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"9", "0"}, {"0", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ unRotateM . hypA . rotateM\ ]\)], "Input"], Cell[BoxData[ RowBox[{\(N::"meprec"\), \(\(:\)\(\ \)\), "\<\"Internal precision limit \ $MaxExtraPrecision = \\!\\(49.99999999999999`\\) reached while evaluating \\!\ \\(\\(5\\/\\@2 - \\(\\(2\\\\ \\@2\\)\\)\\)\\/\\@2 + \ \\(\\(\\(-\\(\\(5\\/\\@2\\)\\)\\)\\) + \\(\\(2\\\\ \\@2\\)\\)\\)\\/\\@2\\). \ \\!\\(\\*ButtonBox[\\\"More\[Ellipsis]\\\", ButtonStyle->\\\"RefGuideLinkText\ \\\", ButtonFrame->None, ButtonData:>\\\"General::meprec\\\"]\\)\"\>"}]], \ "Message"], Cell[BoxData[ \({{{5, 4}, {4, 5}}, {{1, 1}, {\(-1\), 1}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"5", "4"}, {"4", "5"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(tM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "1"}, {\(-1\), "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Re-test parabA", "Subsubsection"], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\(unRotateM . parabA . rotateM // Simplify\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"5", \(-2\)}, {"2", "1"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ unRotateM . parabA . rotateM\ ]\)], "Input"], Cell[BoxData[ \({{{3, 0}, {1, 3}}, {{1, 4}, {\(-1\), 4}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", "0"}, {"1", "3"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(tM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "4"}, {\(-1\), "4"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\((newParabA\ = \ {{3, \ \(-1\)}, \ {1, \ 5}})\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"3", \(-1\)}, {"1", "5"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ newParabA\ ]\)], "Input"], Cell[BoxData[ \({{{4, 0}, {1, 4}}, {{1, \(-2\)}, {1, 2}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"4", "0"}, {"1", "4"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(tM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", \(-2\)}, {"1", "2"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\(unRotateM . newParabA . rotateM // Simplify\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"4", "0"}, {"2", "4"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\(unSquishM . newParabA . squishM // Simplify\) // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(-5\), \(-9\)}, {"9", "13"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[BoxData[ \(\(\(\ \)\(Clear[cM, \ tM]\)\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \({cM, \ tM}\ = \ conicReduceM2R[\ unSquishM . newParabA . squishM\ ]\)], "Input"], Cell[BoxData[ \({{{4, 0}, {1, 4}}, {{1, \(-18\)}, {1, 18}}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"4", "0"}, {"1", "4"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(tM // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", \(-18\)}, {"1", "18"} }, RowSpacings->1, ColumnSpacings->1, ColumnAlignments->{Left}], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Open ]] }, Closed]] }, Open ]] }, Open ]] }, Open ]] }, FrontEndVersion->"5.1 for Microsoft Windows", ScreenRectangle->{{0, 1024}, {0, 723}}, WindowSize->{1016, 696}, WindowMargins->{{0, Automatic}, {Automatic, 0}}, PrintingCopies->1, PrintingPageRange->{Automatic, Automatic} ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1776, 53, 64, 0, 95, "Title"], Cell[1843, 55, 73, 0, 33, "Text"], Cell[1919, 57, 640, 11, 71, "Text"], Cell[2562, 70, 204, 6, 33, "Text"], Cell[2769, 78, 89, 2, 33, "Text"], Cell[CellGroupData[{ Cell[2883, 84, 26, 0, 73, "Section"], Cell[CellGroupData[{ Cell[2934, 88, 72, 2, 38, "Subsection"], Cell[CellGroupData[{ Cell[3031, 94, 39, 0, 40, "Subsubsection"], Cell[3073, 96, 126, 2, 42, "Input"], Cell[3202, 100, 125, 2, 42, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[3364, 107, 43, 0, 29, "Subsubsection"], Cell[3410, 109, 249, 4, 94, "Input"], Cell[3662, 115, 271, 5, 94, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[3970, 125, 41, 0, 29, "Subsubsection"], Cell[CellGroupData[{ Cell[4036, 129, 72, 1, 42, "Input"], Cell[4111, 132, 58, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[4206, 138, 73, 1, 35, "Input"], Cell[4282, 141, 64, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[4383, 147, 87, 1, 35, "Input"], Cell[4473, 150, 44, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[4554, 156, 138, 3, 35, "Input"], Cell[4695, 161, 70, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[4802, 167, 123, 2, 35, "Input"], Cell[4928, 171, 52, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[5017, 177, 114, 2, 35, "Input"], Cell[5134, 181, 51, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[5222, 187, 118, 2, 42, "Input"], Cell[5343, 191, 57, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[5437, 197, 68, 1, 42, "Input"], Cell[5508, 200, 35, 1, 70, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[5592, 207, 37, 0, 40, "Subsubsection"], Cell[CellGroupData[{ Cell[5654, 211, 68, 1, 42, "Input"], Cell[5725, 214, 58, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[5820, 220, 69, 1, 42, "Input"], Cell[5892, 223, 64, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[5993, 229, 83, 1, 42, "Input"], Cell[6079, 232, 50, 1, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[6166, 238, 134, 3, 42, "Input"], Cell[6303, 243, 60, 1, 70, "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[6424, 251, 55, 0, 30, "Subsection"], Cell[CellGroupData[{ Cell[6504, 255, 122, 4, 41, "Subsubsection"], Cell[CellGroupData[{ Cell[6651, 263, 91, 1, 42, "Input"], Cell[6745, 266, 159, 2, 57, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[6941, 273, 64, 1, 35, "Input"], Cell[7008, 276, 246, 5, 66, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[7291, 286, 154, 4, 35, "Input"], Cell[7448, 292, 368, 6, 32, "Message"], Cell[7819, 300, 162, 3, 48, "Output"] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[8030, 309, 68, 0, 40, "Subsubsection"], Cell[8101, 311, 74, 1, 42, "Input"], Cell[8178, 314, 375, 7, 94, "Input"], Cell[CellGroupData[{ Cell[8578, 325, 88, 1, 42, "Input"], Cell[8669, 328, 490, 13, 109, "Output"] }, Closed]], Cell[9174, 344, 375, 7, 87, "Input"], Cell[CellGroupData[{ Cell[9574, 355, 88, 1, 42, "Input"], Cell[9665, 358, 490, 13, 109, "Output"] }, Closed]], Cell[10170, 374, 80, 1, 35, "Input"], Cell[10253, 377, 84, 1, 42, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[10374, 383, 31, 0, 29, "Subsubsection"], Cell[10408, 385, 923, 17, 198, "Input"], Cell[CellGroupData[{ Cell[11356, 406, 81, 1, 42, "Input"], Cell[11440, 409, 463, 12, 93, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[11940, 426, 495, 9, 146, "Input"], Cell[12438, 437, 318, 10, 77, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[12793, 452, 72, 1, 42, "Input"], Cell[12868, 455, 79, 1, 46, "Output"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[12996, 462, 31, 0, 29, "Subsubsection"], Cell[13030, 464, 923, 17, 198, "Input"], Cell[CellGroupData[{ Cell[13978, 485, 81, 1, 42, "Input"], Cell[14062, 488, 496, 13, 109, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[14595, 506, 495, 9, 146, "Input"], Cell[15093, 517, 318, 10, 77, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[15448, 532, 72, 1, 42, "Input"], Cell[15523, 535, 180, 3, 62, "Output"] }, Closed]], Cell[15718, 541, 377, 7, 94, "Input"], Cell[CellGroupData[{ Cell[16120, 552, 68, 1, 42, "Input"], Cell[16191, 555, 123, 2, 57, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[16351, 562, 140, 3, 42, "Input"], Cell[16494, 567, 35, 1, 41, "Output"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[16578, 574, 31, 0, 29, "Subsubsection"], Cell[16612, 576, 923, 17, 198, "Input"], Cell[CellGroupData[{ Cell[17560, 597, 81, 1, 42, "Input"], Cell[17644, 600, 494, 13, 109, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[18175, 618, 495, 9, 146, "Input"], Cell[18673, 629, 318, 10, 77, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[19028, 644, 72, 1, 42, "Input"], Cell[19103, 647, 180, 3, 62, "Output"] }, Closed]], Cell[19298, 653, 367, 7, 94, "Input"], Cell[CellGroupData[{ Cell[19690, 664, 68, 1, 42, "Input"], Cell[19761, 667, 118, 2, 57, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[19916, 674, 140, 3, 42, "Input"], Cell[20059, 679, 35, 1, 41, "Output"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[20143, 686, 31, 0, 29, "Subsubsection"], Cell[20177, 688, 923, 17, 198, "Input"], Cell[CellGroupData[{ Cell[21125, 709, 81, 1, 42, "Input"], Cell[21209, 712, 457, 12, 93, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[21703, 729, 495, 9, 146, "Input"], Cell[22201, 740, 318, 10, 77, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[22556, 755, 72, 1, 42, "Input"], Cell[22631, 758, 74, 1, 46, "Output"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[22754, 765, 110, 4, 30, "Subsubsection"], Cell[CellGroupData[{ Cell[22889, 773, 83, 1, 42, "Input"], Cell[22975, 776, 355, 6, 35, "Message"], Cell[23333, 784, 70, 1, 41, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[23440, 790, 51, 1, 35, "Input"], Cell[23494, 793, 2044, 32, 508, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[25575, 830, 125, 2, 35, "Input"], Cell[25703, 834, 1963, 33, 403, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[27703, 872, 111, 2, 35, "Input"], Cell[27817, 876, 2044, 32, 494, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[29898, 913, 125, 2, 35, "Input"], Cell[30026, 917, 341, 5, 110, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[30404, 927, 183, 3, 35, "Input"], Cell[30590, 932, 454, 9, 104, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[31081, 946, 183, 3, 35, "Input"], Cell[31267, 951, 316, 7, 83, "Output"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[31632, 964, 43, 0, 29, "Subsubsection"], Cell[CellGroupData[{ Cell[31700, 968, 113, 2, 42, "Input"], Cell[31816, 972, 338, 10, 77, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[32191, 987, 108, 2, 35, "Input"], Cell[32302, 991, 332, 10, 77, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[32671, 1006, 59, 1, 35, "Input"], Cell[32733, 1009, 342, 10, 105, "Output"] }, Closed]], Cell[CellGroupData[{ Cell[33112, 1024, 108, 2, 35, "Input"], Cell[33223, 1028, 364, 10, 89, "Output"] }, Closed]] }, Closed]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[33660, 1046, 36, 0, 73, "Section"], Cell[CellGroupData[{ Cell[33721, 1050, 30, 0, 38, "Subsection"], Cell[CellGroupData[{ Cell[33776, 1054, 40, 0, 40, "Subsubsection"], Cell[33819, 1056, 62, 1, 42, "Input"], Cell[33884, 1059, 191, 4, 42, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[34112, 1068, 38, 0, 29, "Subsubsection"], Cell[34153, 1070, 63, 1, 42, "Input"], Cell[CellGroupData[{ Cell[34241, 1075, 105, 2, 42, "Input"], Cell[34349, 1079, 321, 10, 70, "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[34731, 1096, 28, 0, 30, "Subsection"], Cell[CellGroupData[{ Cell[34784, 1100, 38, 0, 40, "Subsubsection"], Cell[34825, 1102, 60, 1, 42, "Input"], Cell[34888, 1105, 186, 4, 42, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[35111, 1114, 36, 0, 29, "Subsubsection"], Cell[35150, 1116, 61, 1, 42, "Input"], Cell[CellGroupData[{ Cell[35236, 1121, 92, 1, 42, "Input"], Cell[35331, 1124, 318, 10, 70, "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[35710, 1141, 30, 0, 30, "Subsection"], Cell[CellGroupData[{ Cell[35765, 1145, 40, 0, 40, "Subsubsection"], Cell[35808, 1147, 62, 1, 42, "Input"], Cell[35873, 1150, 172, 4, 42, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[36082, 1159, 38, 0, 40, "Subsubsection"], Cell[36123, 1161, 63, 1, 42, "Input"], Cell[CellGroupData[{ Cell[36211, 1166, 105, 2, 42, "Input"], Cell[36319, 1170, 318, 10, 70, "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[36698, 1187, 31, 0, 30, "Subsection"], Cell[CellGroupData[{ Cell[36754, 1191, 41, 0, 40, "Subsubsection"], Cell[36798, 1193, 63, 1, 42, "Input"], Cell[36864, 1196, 105, 2, 42, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[37006, 1203, 39, 0, 40, "Subsubsection"], Cell[37048, 1205, 64, 1, 42, "Input"], Cell[CellGroupData[{ Cell[37137, 1210, 82, 1, 42, "Input"], Cell[37222, 1213, 318, 10, 70, "Output"] }, Open ]] }, Closed]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[37613, 1231, 29, 0, 73, "Section"], Cell[CellGroupData[{ Cell[37667, 1235, 54, 0, 29, "Subsubsection"], Cell[CellGroupData[{ Cell[37746, 1239, 89, 1, 42, "Input"], Cell[37838, 1242, 361, 5, 32, "Message"] }, Open ]], Cell[CellGroupData[{ Cell[38236, 1252, 165, 5, 59, "Input"], Cell[38404, 1259, 55, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[38496, 1265, 160, 5, 59, "Input"], Cell[38659, 1272, 50, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[38746, 1278, 162, 5, 59, "Input"], Cell[38911, 1285, 50, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[38998, 1291, 163, 5, 59, "Input"], Cell[39164, 1298, 50, 1, 41, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[39263, 1305, 60, 0, 23, "Subsubsection"], Cell[39326, 1307, 105, 2, 42, "Input"], Cell[CellGroupData[{ Cell[39456, 1313, 86, 1, 42, "Input"], Cell[39545, 1316, 351, 10, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[39933, 1331, 89, 1, 42, "Input"], Cell[40025, 1334, 351, 10, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[40413, 1349, 92, 1, 42, "Input"], Cell[40508, 1352, 338, 10, 70, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[40883, 1367, 89, 1, 42, "Input"], Cell[40975, 1370, 348, 10, 70, "Output"] }, Open ]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[41384, 1387, 30, 0, 73, "Section"], Cell[CellGroupData[{ Cell[41439, 1391, 33, 0, 38, "Subsection"], Cell[CellGroupData[{ Cell[41497, 1395, 43, 0, 29, "Subsubsection"], Cell[41543, 1397, 51, 1, 42, "Input"], Cell[41597, 1400, 8098, 138, 1862, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[49732, 1543, 46, 0, 23, "Subsubsection"], Cell[49781, 1545, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[49882, 1550, 83, 1, 42, "Input"], Cell[49968, 1553, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[50323, 1568, 68, 1, 42, "Input"], Cell[50394, 1571, 155, 2, 57, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[50598, 1579, 36, 0, 23, "Subsubsection"], Cell[50637, 1581, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[50738, 1586, 67, 1, 42, "Input"], Cell[50808, 1589, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[51166, 1604, 68, 1, 42, "Input"], Cell[51237, 1607, 136, 2, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[51410, 1614, 49, 1, 42, "Input"], Cell[51462, 1617, 345, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[51844, 1632, 118, 2, 42, "Input"], Cell[51965, 1636, 318, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[52332, 1652, 34, 0, 23, "Subsubsection"], Cell[52369, 1654, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[52470, 1659, 65, 1, 42, "Input"], Cell[52538, 1662, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[52893, 1677, 68, 1, 42, "Input"], Cell[52964, 1680, 65, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[53066, 1686, 49, 1, 42, "Input"], Cell[53118, 1689, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[53476, 1704, 118, 2, 42, "Input"], Cell[53597, 1708, 318, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[53964, 1724, 36, 0, 23, "Subsubsection"], Cell[54003, 1726, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[54104, 1731, 67, 1, 42, "Input"], Cell[54174, 1734, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[54529, 1749, 68, 1, 42, "Input"], Cell[54600, 1752, 60, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[54697, 1758, 49, 1, 42, "Input"], Cell[54749, 1761, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[55104, 1776, 118, 2, 42, "Input"], Cell[55225, 1780, 318, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[55592, 1796, 37, 0, 23, "Subsubsection"], Cell[55632, 1798, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[55733, 1803, 68, 1, 42, "Input"], Cell[55804, 1806, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[56159, 1821, 68, 1, 42, "Input"], Cell[56230, 1824, 60, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[56327, 1830, 49, 1, 42, "Input"], Cell[56379, 1833, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[56734, 1848, 118, 2, 42, "Input"], Cell[56855, 1852, 318, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[57222, 1868, 39, 0, 23, "Subsubsection"], Cell[57264, 1870, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[57365, 1875, 106, 2, 42, "Input"], Cell[57474, 1879, 356, 10, 103, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[57867, 1894, 68, 1, 42, "Input"], Cell[57938, 1897, 161, 2, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[58136, 1904, 49, 1, 42, "Input"], Cell[58188, 1907, 374, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[58599, 1922, 118, 2, 42, "Input"], Cell[58720, 1926, 318, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[59087, 1942, 37, 0, 23, "Subsubsection"], Cell[59127, 1944, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[59228, 1949, 104, 2, 42, "Input"], Cell[59335, 1953, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[59690, 1968, 68, 1, 42, "Input"], Cell[59761, 1971, 60, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[59858, 1977, 49, 1, 42, "Input"], Cell[59910, 1980, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[60265, 1995, 118, 2, 42, "Input"], Cell[60386, 1999, 318, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[60753, 2015, 39, 0, 23, "Subsubsection"], Cell[60795, 2017, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[60896, 2022, 106, 2, 42, "Input"], Cell[61005, 2026, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[61363, 2041, 68, 1, 42, "Input"], Cell[61434, 2044, 60, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[61531, 2050, 49, 1, 42, "Input"], Cell[61583, 2053, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[61938, 2068, 118, 2, 42, "Input"], Cell[62059, 2072, 318, 10, 77, "Output"] }, Open ]], Cell[62392, 2085, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[62493, 2090, 103, 2, 42, "Input"], Cell[62599, 2094, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[62957, 2109, 50, 1, 42, "Input"], Cell[63010, 2112, 55, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[63102, 2118, 68, 1, 42, "Input"], Cell[63173, 2121, 65, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[63275, 2127, 49, 1, 42, "Input"], Cell[63327, 2130, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[63685, 2145, 118, 2, 42, "Input"], Cell[63806, 2149, 318, 10, 77, "Output"] }, Open ]], Cell[64139, 2162, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[64240, 2167, 109, 2, 42, "Input"], Cell[64352, 2171, 325, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[64714, 2186, 68, 1, 42, "Input"], Cell[64785, 2189, 65, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[64887, 2195, 49, 1, 42, "Input"], Cell[64939, 2198, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[65297, 2213, 118, 2, 42, "Input"], Cell[65418, 2217, 318, 10, 77, "Output"] }, Open ]], Cell[65751, 2230, 76, 1, 42, "Input"], Cell[CellGroupData[{ Cell[65852, 2235, 288, 8, 59, "Input"], Cell[66143, 2245, 50, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[66230, 2251, 54, 1, 42, "Input"], Cell[66287, 2254, 50, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[66374, 2260, 68, 1, 42, "Input"], Cell[66445, 2263, 60, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[66542, 2269, 49, 1, 42, "Input"], Cell[66594, 2272, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[66949, 2287, 118, 2, 42, "Input"], Cell[67070, 2291, 318, 10, 77, "Output"] }, Open ]] }, Closed]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[67461, 2309, 33, 0, 73, "Section"], Cell[CellGroupData[{ Cell[67519, 2313, 36, 0, 38, "Subsection"], Cell[CellGroupData[{ Cell[67580, 2317, 46, 0, 29, "Subsubsection"], Cell[67629, 2319, 54, 1, 42, "Input"], Cell[CellGroupData[{ Cell[67708, 2324, 11128, 200, 2261, "Input"], Cell[78839, 2526, 356, 5, 70, "Message"], Cell[79198, 2533, 360, 5, 70, "Message"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[79607, 2544, 46, 0, 23, "Subsubsection"], Cell[79656, 2546, 67, 1, 42, "Input"], Cell[CellGroupData[{ Cell[79748, 2551, 83, 1, 42, "Input"], Cell[79834, 2554, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[80189, 2569, 71, 1, 42, "Input"], Cell[80263, 2572, 46, 1, 41, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[80358, 2579, 36, 0, 23, "Subsubsection"], Cell[80397, 2581, 62, 1, 42, "Input"], Cell[CellGroupData[{ Cell[80484, 2586, 76, 1, 42, "Input"], Cell[80563, 2589, 80, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[80680, 2595, 49, 1, 42, "Input"], Cell[80732, 2598, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[81090, 2613, 49, 1, 42, "Input"], Cell[81142, 2616, 321, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[81512, 2632, 34, 0, 23, "Subsubsection"], Cell[81549, 2634, 62, 1, 42, "Input"], Cell[CellGroupData[{ Cell[81636, 2639, 74, 1, 42, "Input"], Cell[81713, 2642, 70, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[81820, 2648, 49, 1, 42, "Input"], Cell[81872, 2651, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[82227, 2666, 49, 1, 42, "Input"], Cell[82279, 2669, 318, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[82646, 2685, 36, 0, 23, "Subsubsection"], Cell[82685, 2687, 62, 1, 42, "Input"], Cell[CellGroupData[{ Cell[82772, 2692, 76, 1, 42, "Input"], Cell[82851, 2695, 70, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[82958, 2701, 49, 1, 42, "Input"], Cell[83010, 2704, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[83365, 2719, 49, 1, 42, "Input"], Cell[83417, 2722, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[83772, 2737, 103, 2, 42, "Input"], Cell[83878, 2741, 321, 10, 77, "Output"] }, Open ]], Cell[84214, 2754, 62, 1, 42, "Input"], Cell[CellGroupData[{ Cell[84301, 2759, 79, 1, 42, "Input"], Cell[84383, 2762, 75, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[84495, 2768, 49, 1, 42, "Input"], Cell[84547, 2771, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[84902, 2786, 49, 1, 42, "Input"], Cell[84954, 2789, 321, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[85324, 2805, 37, 0, 23, "Subsubsection"], Cell[85364, 2807, 62, 1, 42, "Input"], Cell[CellGroupData[{ Cell[85451, 2812, 77, 1, 42, "Input"], Cell[85531, 2815, 70, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[85638, 2821, 49, 1, 42, "Input"], Cell[85690, 2824, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[86045, 2839, 49, 1, 42, "Input"], Cell[86097, 2842, 318, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[86464, 2858, 39, 0, 23, "Subsubsection"], Cell[86506, 2860, 62, 1, 42, "Input"], Cell[CellGroupData[{ Cell[86593, 2865, 91, 1, 42, "Input"], Cell[86687, 2868, 356, 10, 103, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[87080, 2883, 105, 2, 42, "Input"], Cell[87188, 2887, 89, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[87314, 2893, 49, 1, 42, "Input"], Cell[87366, 2896, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[87724, 2911, 49, 1, 42, "Input"], Cell[87776, 2914, 328, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[88153, 2930, 37, 0, 23, "Subsubsection"], Cell[88193, 2932, 62, 1, 42, "Input"], Cell[CellGroupData[{ Cell[88280, 2937, 89, 1, 42, "Input"], Cell[88372, 2940, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[88727, 2955, 103, 2, 42, "Input"], Cell[88833, 2959, 468, 7, 95, "Message"], Cell[89304, 2968, 75, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[89416, 2974, 49, 1, 42, "Input"], Cell[89468, 2977, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[89823, 2992, 49, 1, 42, "Input"], Cell[89875, 2995, 321, 10, 77, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[90245, 3011, 39, 0, 23, "Subsubsection"], Cell[90287, 3013, 62, 1, 42, "Input"], Cell[CellGroupData[{ Cell[90374, 3018, 91, 1, 42, "Input"], Cell[90468, 3021, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[90826, 3036, 105, 2, 42, "Input"], Cell[90934, 3040, 75, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[91046, 3046, 49, 1, 42, "Input"], Cell[91098, 3049, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[91453, 3064, 49, 1, 42, "Input"], Cell[91505, 3067, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[91863, 3082, 103, 2, 42, "Input"], Cell[91969, 3086, 321, 10, 77, "Output"] }, Open ]], Cell[92305, 3099, 62, 1, 42, "Input"], Cell[CellGroupData[{ Cell[92392, 3104, 79, 1, 42, "Input"], Cell[92474, 3107, 75, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[92586, 3113, 49, 1, 42, "Input"], Cell[92638, 3116, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[92993, 3131, 49, 1, 42, "Input"], Cell[93045, 3134, 321, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[93403, 3149, 101, 2, 42, "Input"], Cell[93507, 3153, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[93862, 3168, 101, 2, 42, "Input"], Cell[93966, 3172, 325, 10, 77, "Output"] }, Open ]], Cell[94306, 3185, 62, 1, 42, "Input"], Cell[CellGroupData[{ Cell[94393, 3190, 108, 2, 42, "Input"], Cell[94504, 3194, 77, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[94618, 3200, 49, 1, 42, "Input"], Cell[94670, 3203, 318, 10, 77, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[95025, 3218, 49, 1, 42, "Input"], Cell[95077, 3221, 323, 10, 77, "Output"] }, Open ]] }, Closed]] }, Open ]] }, Open ]] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)