(*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 0] NotebookDataLength[ 21921, 718] NotebookOptionsPosition[ 18869, 615] NotebookOutlinePosition[ 19249, 632] CellTagsIndexPosition[ 19206, 629] WindowFrame->Normal ContainsDynamic->False*) (* Beginning of Notebook Content *) Notebook[{ Cell[BoxData[ RowBox[{"Clear", "[", "\"\\"", "]"}]], "Input", CellChangeTimes->{{3.461095191027028*^9, 3.461095199611408*^9}, 3.461095287965748*^9}], Cell[CellGroupData[{ Cell["Lesson 8 Functions", "Section", CellChangeTimes->{3.461093745181218*^9}], Cell["\<\ In this lesson you will learn how to define your own functions.\ \>", "Text"], Cell[CellGroupData[{ Cell["A Simple Function", "Subsection"], Cell[TextData[{ "We have already met many built-in ", StyleBox["Mathematica", FontSlant->"Italic"], " functions, ", StyleBox["Sin", "Input"], ", ", StyleBox["Sqrt", "Input"], ", ", StyleBox["Length", "Input"], ", ", StyleBox["Table", "Input"], ", for example, and are familiar with their syntax. Now we are ready to \ define new functions. Here is the definition of a simple function, called ", StyleBox["f", "Input"], ", that squares its input." }], "Text", CellChangeTimes->{{3.46109396975692*^9, 3.461094024942089*^9}, { 3.461094062100039*^9, 3.461094104605362*^9}, {3.461094148051476*^9, 3.461094148691085*^9}, {3.4610941858204403`*^9, 3.461094239809243*^9}, { 3.461095527280224*^9, 3.461095527662404*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"f", "[", "x_", "]"}], ":=", RowBox[{"x", "^", "2"}]}]], "Input", CellChangeTimes->{{3.461094245310775*^9, 3.461094252136434*^9}, { 3.461094295809847*^9, 3.461094297714747*^9}}], Cell["Now let' s see this new function in action :", "Text", CellChangeTimes->{{3.461094346315662*^9, 3.4610943588724957`*^9}}], Cell[BoxData[ RowBox[{"f", "[", "2", "]"}]], "Input", CellChangeTimes->{{3.461094301006695*^9, 3.461094302670508*^9}}], Cell[BoxData[ RowBox[{"f", "[", "a", "]"}]], "Input", CellChangeTimes->{{3.461094305920319*^9, 3.4610943107372093`*^9}}], Cell[BoxData[ RowBox[{"f", "[", RowBox[{ RowBox[{"(", RowBox[{"a", "+", "1"}], ")"}], "^", "2"}], "]"}]], "Input", CellChangeTimes->{{3.461094314056072*^9, 3.461094331150918*^9}}], Cell[BoxData[ RowBox[{"f", "[", RowBox[{"f", "[", "s", "]"}], "]"}]], "Input", CellChangeTimes->{{3.461094334392674*^9, 3.461094338596949*^9}}], Cell[TextData[{ "The definition of ", StyleBox["f", "Input"], " can be checked using ", StyleBox["?", "Input"], "." }], "Text", CellChangeTimes->{{3.461094699985302*^9, 3.461094751770854*^9}}], Cell[BoxData[ RowBox[{"?", "f"}]], "Input", CellChangeTimes->{{3.461094439601594*^9, 3.461094440006361*^9}}], Cell[TextData[{ "There are many things to notice in the definition of ", StyleBox["f", "Input"], ".\n1) On the left of the ", StyleBox[":=", "Input"], " sign, the function name ", StyleBox["f", "Input"], " and the variable ", StyleBox["x", "Input"], " occur in more-or-less the syntax that will be used when the function is \ evaluated, except that ", StyleBox["x", "Input"], " is followed by an underscore character. \n2) Instead of an equal sign we \ use the ", StyleBox[":=", "Input"], " (delayed assignment). We will have more to say about this later. \n3) On \ the right of the ", StyleBox[":=", "Input"], " sign is the expression to be calculated when the function is used. On this \ side ", StyleBox["x", "Input"], " has no underscore. \n4) The function definition itself does not produce \ any output. " }], "Text", CellChangeTimes->{{3.4610942747297287`*^9, 3.461094285512515*^9}, { 3.461094383463604*^9, 3.46109459491241*^9}, {3.461094765189711*^9, 3.461094776451272*^9}, {3.461094854467649*^9, 3.46109504781645*^9}, { 3.461095122594805*^9, 3.461095150446134*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Practice", "Subsection", CellChangeTimes->{{3.461095567400241*^9, 3.461095571606058*^9}}], Cell[TextData[{ "1) With ", StyleBox["f", "Input"], " as defined above, predict the output of the following cells." }], "Text", CellChangeTimes->{{3.461095579394808*^9, 3.461095615848583*^9}}], Cell[BoxData[ RowBox[{"a", "//", "f"}]], "Input", CellChangeTimes->{{3.461095665520707*^9, 3.4610956664103117`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"a", "//", "f"}], "//", "f"}]], "Input", CellChangeTimes->{{3.461095839310275*^9, 3.461095841515109*^9}, 3.46109590542292*^9}], Cell[BoxData[ RowBox[{"f", "^", RowBox[{"2", "[", "x", "]"}]}]], "Input", CellChangeTimes->{{3.4610957991343803`*^9, 3.461095804067265*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"f", "[", "x", "]"}], "^", "2"}]], "Input", CellChangeTimes->{{3.461095818458894*^9, 3.46109582206107*^9}}], Cell[BoxData[ RowBox[{"f", "[", RowBox[{"{", RowBox[{"a", ",", "b", ",", "c"}], "}"}], "]"}]], "Input", CellChangeTimes->{{3.4610956439389687`*^9, 3.4610956504871063`*^9}, { 3.4610957273964233`*^9, 3.461095728708482*^9}, 3.461096208306699*^9}], Cell[BoxData[ RowBox[{"f", "[", RowBox[{"a", ",", "b", ",", "c"}], "]"}]], "Input", CellChangeTimes->{{3.46109595894333*^9, 3.461095962244817*^9}}], Cell[TextData[{ " The the difference between the outputs of the expressions ", StyleBox["f[{a,b,c}]", "Input"], " and ", StyleBox["f[a,b,c]", "Input"], " is worthwhile understanding. When ", StyleBox["Mathematica", FontSlant->"Italic"], " tries to evaluate ", StyleBox["f[...]", "Input"], " it expects to find a single object (number, list, function) inside the \ brackets to take the place of ", StyleBox["x", "Input"], " in the definition. In evaluating ", StyleBox["f[2]", "Input"], ", ", StyleBox["x", "Input"], " is replaced by ", StyleBox["2", "Input"], " and so ", StyleBox["f[2]", "Input"], " has the value ", StyleBox["2^2", "Input"], ". In evaluating ", StyleBox["f[{a,b,c}]", "Input"], ", ", StyleBox["x", "Input"], " is replaced by the list ", StyleBox["{a,b,c}", "Input"], " and so ", StyleBox["f[{a,b,c}]", "Input"], " has the value ", StyleBox["{a,b,c}^2={a^2,b^2,c^2}", "Input"], ". \n\n", StyleBox["Mathematica", FontSlant->"Italic"], " does not know what to do with ", StyleBox["f[a,b,c]", "Input"], "--the arguments ", StyleBox["a,b,c", "Input"], " do not fit the pattern for the usage of ", StyleBox["f", "Input"], " in the defintion, namely, ", StyleBox["f[x_]", "Input"], "--so ", StyleBox["Mathematica", FontSlant->"Italic"], " does what it always does for undefined functions, leaves then unaltered.\n\ " }], "Text", CellChangeTimes->{{3.4610962116435013`*^9, 3.461096266593061*^9}, { 3.461096299964275*^9, 3.4610963952335567`*^9}, {3.4610964404107237`*^9, 3.4610966057063932`*^9}, {3.46109663933845*^9, 3.4610967441632566`*^9}, { 3.4610967843398123`*^9, 3.461096787400516*^9}, {3.461096884434392*^9, 3.46109710540632*^9}}], Cell[TextData[{ "It is perfectly possible to extend our definition of ", StyleBox["f", "Input"], " to cover other possible inputs. " }], "Text", CellChangeTimes->{{3.461097155135585*^9, 3.4610972730006323`*^9}, { 3.4610973112897263`*^9, 3.461097318597827*^9}, {3.461178782620332*^9, 3.461178804318921*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"f", "[", RowBox[{"x_", ",", "y_", ",", "z_"}], "]"}], ":=", RowBox[{"x", "+", "y", "+", "z"}]}]], "Input", CellChangeTimes->{{3.4610972510256433`*^9, 3.4610972703874817`*^9}}], Cell[BoxData[ RowBox[{"f", "[", RowBox[{"a", ",", "b", ",", "c"}], "]"}]], "Input", CellChangeTimes->{{3.461097327645276*^9, 3.4610973305373707`*^9}}], Cell[BoxData[ RowBox[{"f", "[", RowBox[{"1", ",", "2", ",", "3"}], "]"}]], "Input", CellChangeTimes->{{3.461097334469013*^9, 3.461097338026792*^9}}], Cell[TextData[{ "Notice that the original definition of ", StyleBox["f", "Input"], " is still valid and is used whenever ", StyleBox["f", "Input"], " is evauated with one argument." }], "Text", CellChangeTimes->{{3.461097343186036*^9, 3.4610974182769623`*^9}, { 3.461097449331935*^9, 3.461097450117856*^9}, {3.461178834280876*^9, 3.4611788361581*^9}}], Cell[BoxData[ RowBox[{"?", "f"}]], "Input", CellChangeTimes->{{3.461097428736916*^9, 3.461097428968811*^9}}], Cell[BoxData[ RowBox[{"f", "[", "4", "]"}]], "Input", CellChangeTimes->{{3.461097421175828*^9, 3.4610974225697203`*^9}}], Cell[TextData[{ "The output of the function could be a list. Let's redefine ", StyleBox["f[x_]", "Input"], " so that it produces the list of numbers ", StyleBox["{x,x-1,...,-x}", "Input"], "." }], "Text", CellChangeTimes->{{3.461178905701559*^9, 3.461178979368886*^9}, { 3.46117908989435*^9, 3.4611791361821203`*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"f", "[", "x_", "]"}], ":=", RowBox[{"Range", "[", RowBox[{"x", ",", RowBox[{"-", "x"}], ",", RowBox[{"-", "1"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.4611789924392233`*^9, 3.461179025126957*^9}, { 3.461179064960112*^9, 3.461179070499061*^9}}], Cell[BoxData[ RowBox[{"f", "[", "5", "]"}]], "Input", CellChangeTimes->{{3.461179040281578*^9, 3.461179078306555*^9}, { 3.46117917529498*^9, 3.4611791825241137`*^9}}], Cell[TextData[{ "Check out the definition of ", StyleBox["f ", "Input"], "now." }], "Text", CellChangeTimes->{{3.461179217095745*^9, 3.4611792302475348`*^9}}], Cell[BoxData[ RowBox[{"?", "f"}]], "Input", CellChangeTimes->{{3.461179192775111*^9, 3.4611791932762403`*^9}}], Cell["Here are some more examples:", "Text", CellChangeTimes->{{3.4611795296984377`*^9, 3.461179536866948*^9}}], Cell["\<\ A function that, given a list, returns the sum of the first and last entries:\ \ \>", "Text", CellChangeTimes->{{3.461179679061054*^9, 3.461179735257081*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"sumfl", "[", "L_", "]"}], ":=", RowBox[{ RowBox[{"L", "[", RowBox[{"[", "1", "]"}], "]"}], "+", RowBox[{"L", "[", RowBox[{"[", RowBox[{"Length", "[", "L", "]"}], "]"}], "]"}]}]}]], "Input", CellChangeTimes->{{3.461179743505163*^9, 3.461179769092128*^9}}], Cell[BoxData[ RowBox[{"sumfl", "[", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "6"}], "}"}], "]"}]], "Input", CellChangeTimes->{{3.461179776256732*^9, 3.4611797849706*^9}}], Cell["\<\ A function that rotates a vector by 90 degrees by multiplying it by a matrix:\ \ \>", "Text", CellChangeTimes->{{3.461179544722149*^9, 3.461179562707572*^9}, { 3.46117960910026*^9, 3.461179622996127*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"rot", "[", "v_", "]"}], ":=", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", RowBox[{"-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0"}], "}"}]}], "}"}], ".", "v"}]}]], "Input", CellChangeTimes->{{3.461179566585289*^9, 3.4611796337214823`*^9}}], Cell[BoxData[ RowBox[{"rot", "[", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], "]"}]], "Input", CellChangeTimes->{{3.4611796381529217`*^9, 3.461179643156217*^9}}], Cell[BoxData[ RowBox[{"rot", "[", RowBox[{"{", RowBox[{"a", ",", "b"}], "}"}], "]"}]], "Input", CellChangeTimes->{{3.46117966173847*^9, 3.4611796685046787`*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Practice", "Subsection", CellChangeTimes->{{3.461179270800914*^9, 3.461179273841921*^9}}], Cell[TextData[{ "1) Define a function ", StyleBox["sumsquare[L_]", "Input"], " that calculates the sum of the squares of the entries in a list ", StyleBox["L", "Input"], "." }], "Text", CellChangeTimes->{{3.461179279300901*^9, 3.46117929511401*^9}, { 3.4611798020443172`*^9, 3.461179838613305*^9}, 3.46118012390488*^9}], Cell[TextData[{ "2) Define a function ", StyleBox["dist[u_,v_]", "Input"], " that calculates the distance between two points ", StyleBox["u", "Input"], " and ", StyleBox["v", "Input"], " in ", Cell[BoxData[ FormBox[ SuperscriptBox["R", "2"], TraditionalForm]]], " ." }], "Text", CellChangeTimes->{{3.4611798618307867`*^9, 3.461179954757895*^9}, { 3.461180098154244*^9, 3.461180100302595*^9}}], Cell[TextData[{ "3) Define a function ", StyleBox["mean[L_]", "Input"], " that takes a list of numbers ", StyleBox["L", "Input"], " and calculates the average. (There is a built-in function that does the \ same.) " }], "Text", CellChangeTimes->{{3.451577882443542*^9, 3.451577914418923*^9}, { 3.451577966132283*^9, 3.451578033965023*^9}, {3.451578190232792*^9, 3.451578220427218*^9}, {3.461179997847932*^9, 3.461180016050694*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Undefined Functions", "Subsection", CellChangeTimes->{{3.461181549935424*^9, 3.4611815566869698`*^9}}], Cell["\<\ Functions that are not defined have their uses too. Let's experiment a bit:\ \>", "Text", CellChangeTimes->{{3.461180175145143*^9, 3.461180227491315*^9}, { 3.461181563677476*^9, 3.46118156803642*^9}}], Cell[BoxData[ RowBox[{"Clear", "[", "f", "]"}]], "Input", CellChangeTimes->{{3.461180233780849*^9, 3.46118025190521*^9}, { 3.461180376451388*^9, 3.461180376988473*^9}}], Cell[BoxData[ RowBox[{"D", "[", RowBox[{ RowBox[{ SuperscriptBox["x", "2"], " ", RowBox[{"f", "[", "x", "]"}]}], ",", "x"}], "]"}]], "Input", CellChangeTimes->{{3.4611802985912952`*^9, 3.4611803204277077`*^9}}], Cell[BoxData[ RowBox[{"S", "=", RowBox[{"Sum", "[", RowBox[{ RowBox[{"f", "[", "i", "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "10"}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.4611802576550922`*^9, 3.4611802770206833`*^9}, { 3.461180343919438*^9, 3.4611803453721743`*^9}}], Cell[BoxData[{ RowBox[{"f", "=", "Sin"}], "\[IndentingNewLine]", "S"}], "Input", CellChangeTimes->{{3.461180388441606*^9, 3.4611803960360537`*^9}}], Cell[BoxData[{ RowBox[{"f", "=", "g"}], "\[IndentingNewLine]", "S"}], "Input", CellChangeTimes->{{3.46118040642136*^9, 3.461180412790834*^9}}], Cell[BoxData[ RowBox[{"?", "S"}]], "Input", CellChangeTimes->{{3.4611814972503757`*^9, 3.46118149758969*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Practice", "Subsection", CellChangeTimes->{{3.461180434816846*^9, 3.461180439093507*^9}}], Cell[TextData[{ "1) Define a function ", StyleBox["diffquot[f_,a_,b_]", "Input"], " that calculates the difference quotient ", Cell[BoxData[ FormBox[ RowBox[{ FractionBox[ RowBox[{ RowBox[{"f", "(", "a", ")"}], "-", RowBox[{"f", "(", "b", ")"}]}], RowBox[{"a", "-", "b"}]], "."}], TraditionalForm]]] }], "Text", CellChangeTimes->{{3.461180445242601*^9, 3.461180535877839*^9}}], Cell[TextData[{ "2) Define a function ", StyleBox["easy", "Input"], StyleBox["plot[f_]", "Input"], " that takes as input a function name, such as ", StyleBox["Sin", "Input"], " or ", StyleBox["Cos", "Input"], ", and creates a graph of the function from ", StyleBox["x=-1", "Input"], " to ", StyleBox["x=1", "Input"], "." }], "Text", CellChangeTimes->{{3.451577603872785*^9, 3.451577616082582*^9}, { 3.45157766850965*^9, 3.451577761316972*^9}, 3.451577863601741*^9, { 3.46118072263999*^9, 3.461180731957534*^9}}] }, Open ]], Cell[CellGroupData[{ Cell["Homework", "Subsection", CellChangeTimes->{{3.461180910910524*^9, 3.4611809141345263`*^9}}], Cell[TextData[{ "1) Define a function ", StyleBox["map[f_,L_]", "Input"], " that takes a list ", StyleBox["L", "Input"], " and makes a new list by applying the function ", StyleBox["f", "Input"], " to each entry in ", StyleBox["L", "Input"], ". For example, ", StyleBox["map[Sin,{a,b,c}]", "Input"], " should produce ", StyleBox["{Sin[a],Sin[b],Sin[c]}", "Input"], ". (There is a built-in function ", StyleBox["Map", "Input"], " that does this.)" }], "Text", CellChangeTimes->{{3.461180917728215*^9, 3.461180927417214*^9}, { 3.461181008295596*^9, 3.46118119603622*^9}}], Cell[TextData[{ "2) Define a function ", StyleBox["dot[u_,v_]", "Input"], " that takes two vectors ", StyleBox["u", "Input"], " and ", StyleBox["v", "Input"], " in ", Cell[BoxData[ FormBox[ SuperscriptBox["R", "n"], TraditionalForm]]], "(where ", StyleBox["n", FontSlant->"Italic"], " is unknown in advance) and calculates their dot product. For example, ", StyleBox["dot[{a,b},{3,4}]", "Input"], " produces ", StyleBox["3a+4b", "Input"], "; and ", StyleBox["dot[{1,2,3},{3,2,1}]", "Input"], " produces ", StyleBox["10", "Input"], ". " }], "Text", CellChangeTimes->{{3.461182697639451*^9, 3.461182699911315*^9}, { 3.461182855310939*^9, 3.461183020286942*^9}, {3.4611832503545847`*^9, 3.461183289932178*^9}, {3.461185199896802*^9, 3.461185214594425*^9}}], Cell[TextData[{ "3) Define a function ", StyleBox["onesmatrix[n_]", "Input"], " that produces a ", StyleBox["n\[Cross]n", "Input"], " matrix whose entries are all ", StyleBox["1", "Input"], "." }], "Text", CellChangeTimes->{{3.461185638012127*^9, 3.461185735359503*^9}, 3.461185819672477*^9}], Cell[TextData[{ "4) Define a function ", StyleBox["trace[M_]", "Input"], " that calculates the trace of the square matrix ", StyleBox["M", "Input"], ". (The trace is the sum of the diagonal entries of a matrix. There is a \ built-in function that calculates the trace of matrices.)" }], "Text", CellChangeTimes->{{3.461255492201222*^9, 3.4612554935720243`*^9}, { 3.4612555687975807`*^9, 3.46125558991936*^9}, {3.4612558097909517`*^9, 3.461255867391037*^9}, {3.4612560072218933`*^9, 3.461256043214151*^9}}], Cell[TextData[{ "5) Define a function ", StyleBox["extrema[f_]", "Input"], " that makes a list of the coordinates of the local extrema (maximum or \ minimum) of a polynomial ", StyleBox["f", "Input"], ". Decimal approximations suffice. Note that ", StyleBox["NSolve[f]", "Input"], " gives a list of replacement rules for the x-coordinates of these points, \ but ", StyleBox["extrema[f_]", "Input"], " should produce a list of the x- and y-coordinates of these points. Here's \ an example:" }], "Text", CellChangeTimes->{{3.4620323713294687`*^9, 3.462032571981763*^9}, { 3.462032689875082*^9, 3.46203272198337*^9}, 3.462032835647131*^9}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"extrema", "[", RowBox[{ RowBox[{"x", "^", "3"}], "-", "x"}], "]"}]], "Input", CellChangeTimes->{{3.462032620134547*^9, 3.462032628496875*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "0.5773502691896257`"}], ",", "0.3849001794597505`"}], "}"}], ",", RowBox[{"{", RowBox[{"0.5773502691896257`", ",", RowBox[{"-", "0.3849001794597505`"}]}], "}"}]}], "}"}]], "Output", CellChangeTimes->{3.462032629517004*^9}] }, Open ]] }, Open ]] }, Open ]] }, WindowSize->{819, 716}, WindowMargins->{{130, Automatic}, {-205, Automatic}}, ShowSelection->True, Magnification->1., FrontEndVersion->"6.0 for Mac OS X x86 (32-bit) (April 20, 2007)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[568, 14, 165, 3, 27, "Input"], Cell[CellGroupData[{ Cell[758, 21, 80, 1, 67, "Section"], Cell[841, 24, 87, 2, 26, "Text"], Cell[CellGroupData[{ Cell[953, 30, 39, 0, 34, "Subsection"], Cell[995, 32, 734, 20, 41, "Text"], Cell[1732, 54, 217, 5, 27, "Input"], Cell[1952, 61, 128, 1, 26, "Text"], Cell[2083, 64, 120, 2, 27, "Input"], Cell[2206, 68, 122, 2, 27, "Input"], Cell[2331, 72, 192, 5, 27, "Input"], Cell[2526, 79, 148, 3, 27, "Input"], Cell[2677, 84, 198, 7, 26, "Text"], Cell[2878, 93, 110, 2, 27, "Input"], Cell[2991, 97, 1100, 27, 101, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[4128, 129, 96, 1, 34, "Subsection"], Cell[4227, 132, 196, 5, 26, "Text"], Cell[4426, 139, 118, 2, 27, "Input"], Cell[4547, 143, 165, 4, 27, "Input"], Cell[4715, 149, 145, 3, 27, "Input"], Cell[4863, 154, 142, 3, 27, "Input"], Cell[5008, 159, 255, 5, 27, "Input"], Cell[5266, 166, 152, 3, 27, "Input"], Cell[5421, 171, 1707, 54, 131, "Text"], Cell[7131, 227, 315, 7, 26, "Text"], Cell[7449, 236, 218, 5, 27, "Input"], Cell[7670, 243, 155, 3, 27, "Input"], Cell[7828, 248, 153, 3, 27, "Input"], Cell[7984, 253, 362, 9, 26, "Text"], Cell[8349, 264, 110, 2, 27, "Input"], Cell[8462, 268, 122, 2, 27, "Input"], Cell[8587, 272, 325, 8, 26, "Text"], Cell[8915, 282, 302, 8, 27, "Input"], Cell[9220, 292, 170, 3, 27, "Input"], Cell[9393, 297, 162, 5, 26, "Text"], Cell[9558, 304, 112, 2, 27, "Input"], Cell[9673, 308, 112, 1, 26, "Text"], Cell[9788, 311, 169, 4, 26, "Text"], Cell[9960, 317, 316, 9, 27, "Input"], Cell[10279, 328, 212, 5, 27, "Input"], Cell[10494, 335, 217, 5, 26, "Text"], Cell[10714, 342, 350, 11, 27, "Input"], Cell[11067, 355, 171, 4, 27, "Input"], Cell[11241, 361, 170, 4, 27, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[11448, 370, 96, 1, 34, "Subsection"], Cell[11547, 373, 328, 8, 26, "Text"], Cell[11878, 383, 409, 14, 29, "Text"], Cell[12290, 399, 441, 10, 26, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[12768, 414, 109, 1, 34, "Subsection"], Cell[12880, 417, 213, 4, 26, "Text"], Cell[13096, 423, 172, 3, 27, "Input"], Cell[13271, 428, 227, 6, 33, "Input"], Cell[13501, 436, 306, 8, 27, "Input"], Cell[13810, 446, 149, 2, 43, "Input"], Cell[13962, 450, 144, 2, 43, "Input"], Cell[14109, 454, 111, 2, 27, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[14257, 461, 96, 1, 34, "Subsection"], Cell[14356, 464, 414, 13, 38, "Text"], Cell[14773, 479, 530, 16, 41, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[15340, 500, 98, 1, 34, "Subsection"], Cell[15441, 503, 587, 18, 41, "Text"], Cell[16031, 523, 785, 26, 41, "Text"], Cell[16819, 551, 305, 10, 26, "Text"], Cell[17127, 563, 516, 10, 41, "Text"], Cell[17646, 575, 650, 15, 56, "Text"], Cell[CellGroupData[{ Cell[18321, 594, 173, 4, 27, "Input"], Cell[18497, 600, 332, 10, 27, "Output"] }, Open ]] }, Open ]] }, Open ]] } ] *)