(*********************************************************************** Mathematica-Compatible Notebook This notebook can be used on any computer system with Mathematica 4.0, MathReader 4.0, or any compatible application. 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[ 17110, 704]*) (*NotebookOutlinePosition[ 17762, 727]*) (* CellTagsIndexPosition[ 17718, 723]*) (*WindowFrame->Normal*) Notebook[{ Cell[BoxData[ \(\(\(\[IndentingNewLine]\)\( (*Examples\ of\ matrix\ conditioning*) \)\)\ \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(A = {{1, 3, \(-2\), a}, {2, b, \(-1\), 1}, {0, 4, 0, \(-2\)}, \[IndentingNewLine]{1, 1, \(-2\), 4}}\)], "Input"], Cell[BoxData[ \({{1, 3, \(-2\), a}, {2, b, \(-1\), 1}, {0, 4, 0, \(-2\)}, {1, 1, \(-2\), 4}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(MatrixForm[A]\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "3", \(-2\), "a"}, {"2", "b", \(-1\), "1"}, {"0", "4", "0", \(-2\)}, {"1", "1", \(-2\), "4"} }], "\[NoBreak]", ")"}], (MatrixForm[ #]&)]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Det[A]\)], "Input"], Cell[BoxData[ \(\(-36\) + 12\ a\)], "Output"] }, Open ]], Cell[BoxData[ \( (*\ A\ is\ invertible\ except\ when\ a\ = \ 3*) \)], "Input"], Cell[BoxData[ \(\(b = 0;\)\)], "Input"], Cell[BoxData[ \(\(a = 0;\)\)], "Input"], Cell[BoxData[ \(\(J = Inverse[A];\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(MatrixForm[J]\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(-\(5\/18\)\), \(2\/3\), \(2\/9\), \(-\(1\/18\)\)}, {\(-\(1\/6\)\), "0", \(1\/3\), \(1\/6\)}, {\(-\(8\/9\)\), \(1\/3\), \(11\/18\), \(2\/9\)}, {\(-\(1\/3\)\), "0", \(1\/6\), \(1\/3\)} }], "\[NoBreak]", ")"}], (MatrixForm[ #]&)]], "Output"] }, Open ]], Cell[BoxData[ \( (*Estimate\ the\ Euclidean\ norm\ of\ A*) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(N[Eigenvalues[A . Transpose[A]]]\)], "Input"], Cell[BoxData[ \({\(\(0.5266308506696022`\)\(\[InvisibleSpace]\)\) - 1.291842019303239`*^-16\ \[ImaginaryI], \(\(2.878387571605759`\)\(\ \[InvisibleSpace]\)\) + 1.5332387431600197`*^-16\ \[ImaginaryI], \(\(27.460154144721724`\)\(\ \[InvisibleSpace]\)\) - 1.0294558352105146`*^-16\ \[ImaginaryI], \(\(31.134827433002915`\)\(\ \[InvisibleSpace]\)\) + 7.880591113537341`*^-17\ \[ImaginaryI]}\)], "Output"] }, Open ]], Cell[BoxData[ \( (*The\ norm\ of\ A\ is\ approximately\ Sqrt[31.13]*) \)], "Input"], Cell[BoxData[ \( (*Estimate\ the\ norm\ of\ Inverse[A]*) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(N[Eigenvalues[J . Transpose[J]]]\)], "Input"], Cell[BoxData[ \({\(\(0.03211837297482952`\)\(\[InvisibleSpace]\)\) - 3.080857193391437`*^-17\ \[ImaginaryI], \(\(0.036416401551485435`\)\(\ \[InvisibleSpace]\)\) + 3.1306427302735956`*^-17\ \[ImaginaryI], \(\(0.34741673076434676`\)\(\ \[InvisibleSpace]\)\) - 5.123045037985106`*^-19\ \[ImaginaryI], \(\(1.8988633095241534`\)\(\ \[InvisibleSpace]\)\) + 1.4449134976920402`*^-20\ \[ImaginaryI]}\)], "Output"] }, Open ]], Cell[BoxData[ \( (*The\ norm\ of\ Inverse[A]\ is\ approximately\ Sqrt[ 1.89886]*) \)], "Input"], Cell[BoxData[ \( (*Estimate\ the\ condition\ number\ of\ A*) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(K = Sqrt[31.2]\ Sqrt[1.9]\)], "Input"], Cell[BoxData[ \(7.699350621968063`\)], "Output"] }, Open ]], Cell[BoxData[ \( (*We\ see\ that\ A\ is\ fairly\ well\ conditioned*) \)], "Input"], Cell[BoxData[ \( (*Solve\ a\ sample\ problem\ A . xx\ = \ bb\ *) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(bb\ = \ {1.1, \(-2.2\), 2.9, 5.1}\)], "Input"], Cell[BoxData[ \({1.1`, \(-2.2`\), 2.9`, 5.1`}\)], "Output"] }, Open ]], Cell[BoxData[ \( (*Suppose\ bb\ is\ only\ known\ approximately, \ as\ follows*) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(bbnew\ = \ {1, \(-2\), 3, 5}\)], "Input"], Cell[BoxData[ \({1, \(-2\), 3, 5}\)], "Output"] }, Open ]], Cell[BoxData[ \( (*Suppose\ Inverse[ A]\ is\ only\ known\ to\ within\ 6\ decimal\ places*) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(JJ\ = \ N[J]\)], "Input"], Cell[BoxData[ \({{\(-0.2777777777777778`\), 0.6666666666666666`, 0.2222222222222222`, \(-0.05555555555555555`\)}, \ {\(-0.16666666666666666`\), 0.`, 0.3333333333333333`, 0.16666666666666666`}, {\(-0.8888888888888888`\), 0.3333333333333333`, 0.6111111111111112`, 0.2222222222222222`}, {\(-0.3333333333333333`\), 0.`, 0.16666666666666666`, 0.3333333333333333`}}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Det[JJ]\)], "Input"], Cell[BoxData[ \(\(-0.027777777777777773`\)\)], "Output"] }, Open ]], Cell[BoxData[ \( (*The\ exact\ solution\ to\ A . xx\ = \ bb, \ to\ within\ machine\ \(\(precision\)\(:\)\)*) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(xx\ = \ J . bb\)], "Input"], Cell[BoxData[ \({\(-1.4111111111111112`\), 1.633333333333333`, 1.1944444444444442`, 1.8166666666666664`}\)], "Output"] }, Open ]], Cell[BoxData[ \( (*The\ approximate\ \(\(solution\)\(:\)\)\ *) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(xxnew\ = \ JJ . bbnew\)], "Input"], Cell[BoxData[ \({\(-1.2222222222222223`\), 1.6666666666666665`, 1.3888888888888893`, 1.8333333333333333`}\)], "Output"] }, Open ]], Cell[BoxData[ \( (*\(Estimate\ the\ maximum\ relative\ error\ in\ xx\[IndentingNewLine] \ using\ Condition \((A)\)*rel_error \((bb)\)\)\(:\)\ *) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(delB\ = \ bb\ - \ bbnew\)], "Input"], Cell[BoxData[ \({0.10000000000000009`, \(-0.20000000000000018`\), \ \(-0.10000000000000009`\), 0.09999999999999964`}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(relB\ = \ Sqrt[delB . delB]/Sqrt[bb . bb]\)], "Input"], Cell[BoxData[ \(General::"spell1" \(\(:\)\(\ \)\) "Possible spelling error: new symbol name \"\!\(relB\)\" is similar to \ existing symbol \"\!\(delB\)\"."\)], "Message"], Cell[BoxData[ \(0.04158937729077756`\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(maxRelError\ = K\ relB\)], "Input"], Cell[BoxData[ \(0.3202111979110126`\)], "Output"] }, Open ]], Cell[BoxData[ \( (*Compute\ the\ actual\ relative\ error\ in\ xx*) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(delX = \ xx - xxnew\)], "Input"], Cell[BoxData[ \(General::"spell1" \(\(:\)\(\ \)\) "Possible spelling error: new symbol name \"\!\(delX\)\" is similar to \ existing symbol \"\!\(delB\)\"."\)], "Message"], Cell[BoxData[ \({\(-0.18888888888888888`\), \(-0.03333333333333344`\), \ \(-0.19444444444444509`\), \(-0.01666666666666683`\)}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(relX\ = \ Sqrt[delX . delX]/Sqrt[xx . xx]\)], "Input"], Cell[BoxData[ \(General::"spell" \(\(:\)\(\ \)\) "Possible spelling error: new symbol name \"\!\(relX\)\" is similar to \ existing symbols \!\({delX, relB}\)."\)], "Message"], Cell[BoxData[ \(0.08931674835126602`\)], "Output"] }, Open ]], Cell[BoxData[ \( (*We\ see\ that\ relX\ is\ smaller\ than\ maxRelError, \ \[IndentingNewLine]\ \ \ as\ the\ theory\ predicts*) \)], "Input"], Cell[BoxData[ \( (*Another\ example, \ same\ procedure*) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(bb = {1015.7, 342.9, \(-44.8\), \(-661.5\)}\)], "Input"], Cell[BoxData[ \({1015.7`, 342.9`, \(-44.8`\), \(-661.5`\)}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(bbnew = {1000, 340, \ \(-45\), \(-660\)}\)], "Input"], Cell[BoxData[ \({1000, 340, \(-45\), \(-660\)}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(xx = J . bb\)], "Input"], Cell[BoxData[ \({\(-26.744444444444504`\), \(-294.4666666666667`\), \ \(-962.9222222222222`\), \(-566.5333333333333`\)}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(xxnew = JJ . bbnew\)], "Input"], Cell[BoxData[ \({\(-24.44444444444445`\), \(-291.66666666666663`\), \ \(-949.7222222222221`\), \(-560.8333333333333`\)}\)], "Output"] }, Open ]], Cell[BoxData[ \( (*large\ absolute\ error\ in\ \(\(bb\)\(:\)\)\ *) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(delB\ = \ bb\ - \ bbnew\)], "Input"], Cell[BoxData[ \({15.700000000000045`, 2.8999999999999773`, 0.20000000000000284`, \(-1.5`\)}\)], "Output"] }, Open ]], Cell[BoxData[ \( (*small\ relative\ \(\(error\)\(:\)\)\ *) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(relB\ = \ Sqrt[delB . delB]/Sqrt[bb . bb]\)], "Input"], Cell[BoxData[ \(0.012723020030472317`\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(K\)], "Input"], Cell[BoxData[ \(7.699350621968063`\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(maxRelError\ = \ K\ relB\)], "Input"], Cell[BoxData[ \(0.09795899218492915`\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(delX = \ xx\ - \ xxnew\)], "Input"], Cell[BoxData[ \({\(-2.300000000000054`\), \(-2.800000000000068`\), \ \(-13.20000000000016`\), \(-5.7000000000000455`\)}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(relX\ = Sqrt[delX . delX]/Sqrt[xx . xx]\)], "Input"], Cell[BoxData[ \(0.012830219203260851`\)], "Output"] }, Open ]], Cell[BoxData[ \( (*The\ relative\ error\ is\ well\ within\ the\ prediction*) \)], \ "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(\(\( (*\ Example\ 3; \ same\ method, \ this\ time\ with\ a\ large\[IndentingNewLine]\ \ \ \ relative\ error\ \ in\ bb*) \)\(\[IndentingNewLine]\)\(\[IndentingNewLine]\)\(bb = \ {0.123456, \ \ 2.41415, \ \(-4.44444\), \ 3.14159}\)\)\)], "Input"], Cell[BoxData[ \({0.123456`, 2.41415`, \(-4.44444`\), 3.14159`}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(bbnew = {0, 2, \(-4\), 3}\)], "Input"], Cell[BoxData[ \({0, 2, \(-4\), 3}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(delB\ = \ bb - bbnew\)], "Input"], Cell[BoxData[ \({0.123456`, 0.4141499999999998`, \(-0.44444000000000017`\), 0.14158999999999988`}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(relB\ = \ Sqrt[delB . delB]/Sqrt[bb . bb]\)], "Input"], Cell[BoxData[ \(0.10677393702837486`\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(maxRelError\ = \ K\ relB\)], "Input"], Cell[BoxData[ \(0.8220899784693967`\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(delX = \ xx - xxnew\)], "Input"], Cell[BoxData[ \({\(-2.300000000000054`\), \(-2.800000000000068`\), \ \(-13.20000000000016`\), \(-5.7000000000000455`\)}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(relX\ = \ Sqrt[delX . delX]/Sqrt[xx . xx]\)], "Input"], Cell[BoxData[ \(0.012830219203260851`\)], "Output"] }, Open ]], Cell[BoxData[ \(\(\( (*Due\ the\ 10 %\ relative\ error\ in\ bb, \ the\ \[IndentingNewLine]maximum\ possible\ relative\ error\ in\ xx\ was\ \ 80 %, \[IndentingNewLine]\ \ but\ the\ actual\ relative\ error\ is\ only\ \ 1 %*) \)\(\[IndentingNewLine]\)\(\ \)\)\)], "Input"], Cell[BoxData[ \( (*Another\ example\ with\ a\ large\ relative\ error\ in\ bb*) \)], \ "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(MatrixForm[JJ]\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {\(-0.2777777777777778`\), "0.6666666666666666`", "0.2222222222222222`", \(-0.05555555555555555`\)}, {\(-0.16666666666666666`\), "0.`", "0.3333333333333333`", "0.16666666666666666`"}, {\(-0.8888888888888888`\), "0.3333333333333333`", "0.6111111111111112`", "0.2222222222222222`"}, {\(-0.3333333333333333`\), "0.`", "0.16666666666666666`", "0.3333333333333333`"} }], "\[NoBreak]", ")"}], (MatrixForm[ #]&)]], "Output"] }, Open ]], Cell[BoxData[ \(r =. \)], "Input"], Cell[BoxData[ \(s =. \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(bb = {r, 0, 0, 0}\)], "Input"], Cell[BoxData[ \({r, 0, 0, 0}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(bbnew = {s, 0, 0, 0}\)], "Input"], Cell[BoxData[ \({s, 0, 0, 0}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(delB = bb - bbnew\)], "Input"], Cell[BoxData[ \({r - s, 0, 0, 0}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(relB\ = \ Abs[r - s]/Abs[r]\)], "Input"], Cell[BoxData[ \(Abs[r - s]\/Abs[r]\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(maxRelErr = \ K\ relB\)], "Input"], Cell[BoxData[ \(\(7.699350621968063`\ Abs[r - s]\)\/Abs[r]\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(xx = \ J . bb\)], "Input"], Cell[BoxData[ \({\(-\(\(5\ r\)\/18\)\), \(-\(r\/6\)\), \(-\(\(8\ r\)\/9\)\), \ \(-\(r\/3\)\)}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(xxnew = JJ . bbnew\)], "Input"], Cell[BoxData[ \({\(-0.2777777777777778`\)\ s, \(-0.16666666666666666`\)\ s, \ \(-0.8888888888888888`\)\ s, \(-0.3333333333333333`\)\ s}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(delX = xx - xxnew\)], "Input"], Cell[BoxData[ \({\(-\(\(5\ r\)\/18\)\) + 0.2777777777777778`\ s, \(-\(r\/6\)\) + 0.16666666666666666`\ s, \(-\(\(8\ r\)\/9\)\) + 0.8888888888888888`\ s, \(-\(r\/3\)\) + 0.3333333333333333`\ s}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(relX = \ Sqrt[delX . delX]/Sqrt[xx . xx]\)], "Input"], Cell[BoxData[ \(\(9\ \@\(2\/163\)\ \@\(\((\(-\(r\/6\)\) + 0.16666666666666666`\ s)\)\^2 \ + \((\(-\(\(5\ r\)\/18\)\) + 0.2777777777777778`\ s)\)\^2 + \((\(-\(r\/3\)\) \ + 0.3333333333333333`\ s)\)\^2 + \((\(-\(\(8\ r\)\/9\)\) + \ 0.8888888888888888`\ s)\)\^2\)\)\/\@r\^2\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(r = \(-20\)\)], "Input"], Cell[BoxData[ \(\(-20\)\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(s = 10\)], "Input"], Cell[BoxData[ \(10\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(maxRelError = \ K\ relB\)], "Input"], Cell[BoxData[ \(11.549025932952095`\)], "Output"] }, Open ]], Cell[BoxData[""], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(relX\)], "Input"], Cell[BoxData[ \(1.5`\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(N[xx]\)], "Input"], Cell[BoxData[ \({5.555555555555555`, 3.3333333333333335`, 17.77777777777778`, 6.666666666666667`}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(xxnew\)], "Input"], Cell[BoxData[ \({\(-2.7777777777777777`\), \(-1.6666666666666665`\), \ \(-8.88888888888889`\), \(-3.333333333333333`\)}\)], "Output"] }, Open ]], Cell[BoxData[ \( (*In\ this\ case, \ the\ relative\ error\ in\ xx\ is\ well\ within\ the\ predicted\ value, \ \[IndentingNewLine]but\ it\ is\ very\ large\ \((150 %)\), \ and\ coincides\ with\ the\ 150 %\ relative\[IndentingNewLine]\ error\ in\ bb\ *) \)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(relB\)], "Input"], Cell[BoxData[ \(3\/2\)], "Output"] }, Open ]], Cell[BoxData[""], "Input"] }, FrontEndVersion->"4.0 for Microsoft Windows", ScreenRectangle->{{0, 800}, {0, 527}}, WindowSize->{705, 461}, WindowMargins->{{0, Automatic}, {Automatic, 0}} ] (*********************************************************************** 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[1717, 49, 106, 2, 50, "Input"], Cell[CellGroupData[{ Cell[1848, 55, 143, 2, 50, "Input"], Cell[1994, 59, 119, 2, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[2150, 66, 46, 1, 30, "Input"], Cell[2199, 69, 289, 8, 73, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[2525, 82, 39, 1, 30, "Input"], Cell[2567, 85, 49, 1, 29, "Output"] }, Open ]], Cell[2631, 89, 83, 1, 30, "Input"], Cell[2717, 92, 43, 1, 30, "Input"], Cell[2763, 95, 43, 1, 30, "Input"], Cell[2809, 98, 52, 1, 30, "Input"], Cell[CellGroupData[{ Cell[2886, 103, 46, 1, 30, "Input"], Cell[2935, 106, 376, 8, 109, "Output"] }, Open ]], Cell[3326, 117, 76, 1, 30, "Input"], Cell[CellGroupData[{ Cell[3427, 122, 65, 1, 30, "Input"], Cell[3495, 125, 432, 7, 48, "Output"] }, Open ]], Cell[3942, 135, 87, 1, 30, "Input"], Cell[4032, 138, 74, 1, 30, "Input"], Cell[CellGroupData[{ Cell[4131, 143, 65, 1, 30, "Input"], Cell[4199, 146, 437, 7, 48, "Output"] }, Open ]], Cell[4651, 156, 109, 2, 30, "Input"], Cell[4763, 160, 78, 1, 30, "Input"], Cell[CellGroupData[{ Cell[4866, 165, 58, 1, 30, "Input"], Cell[4927, 168, 52, 1, 29, "Output"] }, Open ]], Cell[4994, 172, 86, 1, 30, "Input"], Cell[5083, 175, 83, 1, 30, "Input"], Cell[CellGroupData[{ Cell[5191, 180, 67, 1, 30, "Input"], Cell[5261, 183, 63, 1, 29, "Output"] }, Open ]], Cell[5339, 187, 104, 2, 30, "Input"], Cell[CellGroupData[{ Cell[5468, 193, 62, 1, 30, "Input"], Cell[5533, 196, 51, 1, 29, "Output"] }, Open ]], Cell[5599, 200, 118, 2, 30, "Input"], Cell[CellGroupData[{ Cell[5742, 206, 46, 1, 30, "Input"], Cell[5791, 209, 422, 7, 48, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[6250, 221, 40, 1, 30, "Input"], Cell[6293, 224, 60, 1, 29, "Output"] }, Open ]], Cell[6368, 228, 134, 2, 30, "Input"], Cell[CellGroupData[{ Cell[6527, 234, 48, 1, 30, "Input"], Cell[6578, 237, 129, 2, 29, "Output"] }, Open ]], Cell[6722, 242, 80, 1, 30, "Input"], Cell[CellGroupData[{ Cell[6827, 247, 55, 1, 30, "Input"], Cell[6885, 250, 130, 2, 29, "Output"] }, Open ]], Cell[7030, 255, 170, 2, 50, "Input"], Cell[CellGroupData[{ Cell[7225, 261, 58, 1, 30, "Input"], Cell[7286, 264, 134, 2, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[7457, 271, 75, 1, 30, "Input"], Cell[7535, 274, 181, 3, 42, "Message"], Cell[7719, 279, 54, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[7810, 285, 56, 1, 30, "Input"], Cell[7869, 288, 53, 1, 29, "Output"] }, Open ]], Cell[7937, 292, 84, 1, 30, "Input"], Cell[CellGroupData[{ Cell[8046, 297, 52, 1, 30, "Input"], Cell[8101, 300, 181, 3, 42, "Message"], Cell[8285, 305, 144, 2, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[8466, 312, 75, 1, 30, "Input"], Cell[8544, 315, 185, 3, 42, "Message"], Cell[8732, 320, 54, 1, 29, "Output"] }, Open ]], Cell[8801, 324, 144, 2, 50, "Input"], Cell[8948, 328, 74, 1, 30, "Input"], Cell[CellGroupData[{ Cell[9047, 333, 76, 1, 30, "Input"], Cell[9126, 336, 76, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[9239, 342, 73, 1, 30, "Input"], Cell[9315, 345, 64, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[9416, 351, 44, 1, 30, "Input"], Cell[9463, 354, 137, 2, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[9637, 361, 51, 1, 30, "Input"], Cell[9691, 364, 137, 2, 29, "Output"] }, Open ]], Cell[9843, 369, 84, 1, 30, "Input"], Cell[CellGroupData[{ Cell[9952, 374, 58, 1, 30, "Input"], Cell[10013, 377, 116, 2, 29, "Output"] }, Open ]], Cell[10144, 382, 76, 1, 30, "Input"], Cell[CellGroupData[{ Cell[10245, 387, 75, 1, 30, "Input"], Cell[10323, 390, 55, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[10415, 396, 34, 1, 30, "Input"], Cell[10452, 399, 52, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[10541, 405, 58, 1, 30, "Input"], Cell[10602, 408, 54, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[10693, 414, 56, 1, 30, "Input"], Cell[10752, 417, 137, 2, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[10926, 424, 73, 1, 30, "Input"], Cell[11002, 427, 55, 1, 29, "Output"] }, Open ]], Cell[11072, 431, 96, 2, 30, "Input"], Cell[CellGroupData[{ Cell[11193, 437, 271, 4, 90, "Input"], Cell[11467, 443, 80, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[11584, 449, 58, 1, 30, "Input"], Cell[11645, 452, 51, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[11733, 458, 54, 1, 30, "Input"], Cell[11790, 461, 122, 2, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[11949, 468, 75, 1, 30, "Input"], Cell[12027, 471, 54, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[12118, 477, 58, 1, 30, "Input"], Cell[12179, 480, 53, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[12269, 486, 52, 1, 30, "Input"], Cell[12324, 489, 137, 2, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[12498, 496, 75, 1, 30, "Input"], Cell[12576, 499, 55, 1, 29, "Output"] }, Open ]], Cell[12646, 503, 283, 4, 90, "Input"], Cell[12932, 509, 98, 2, 30, "Input"], Cell[CellGroupData[{ Cell[13055, 515, 47, 1, 30, "Input"], Cell[13105, 518, 612, 12, 87, "Output"] }, Open ]], Cell[13732, 533, 38, 1, 30, "Input"], Cell[13773, 536, 38, 1, 30, "Input"], Cell[CellGroupData[{ Cell[13836, 541, 50, 1, 30, "Input"], Cell[13889, 544, 46, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[13972, 550, 53, 1, 30, "Input"], Cell[14028, 553, 46, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[14111, 559, 50, 1, 30, "Input"], Cell[14164, 562, 50, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[14251, 568, 61, 1, 30, "Input"], Cell[14315, 571, 52, 1, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[14404, 577, 54, 1, 30, "Input"], Cell[14461, 580, 76, 1, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[14574, 586, 46, 1, 30, "Input"], Cell[14623, 589, 111, 2, 42, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[14771, 596, 51, 1, 30, "Input"], Cell[14825, 599, 153, 2, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[15015, 606, 50, 1, 30, "Input"], Cell[15068, 609, 237, 4, 42, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[15342, 618, 73, 1, 30, "Input"], Cell[15418, 621, 288, 4, 72, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[15743, 630, 44, 1, 30, "Input"], Cell[15790, 633, 41, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[15868, 639, 39, 1, 30, "Input"], Cell[15910, 642, 36, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[15983, 648, 56, 1, 30, "Input"], Cell[16042, 651, 53, 1, 29, "Output"] }, Open ]], Cell[16110, 655, 26, 0, 30, "Input"], Cell[CellGroupData[{ Cell[16161, 659, 37, 1, 30, "Input"], Cell[16201, 662, 38, 1, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[16276, 668, 38, 1, 30, "Input"], Cell[16317, 671, 122, 2, 29, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[16476, 678, 38, 1, 30, "Input"], Cell[16517, 681, 137, 2, 29, "Output"] }, Open ]], Cell[16669, 686, 293, 5, 70, "Input"], Cell[CellGroupData[{ Cell[16987, 695, 37, 1, 30, "Input"], Cell[17027, 698, 38, 1, 42, "Output"] }, Open ]], Cell[17080, 702, 26, 0, 30, "Input"] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)