(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 5.0' 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[ 23106, 591]*) (*NotebookOutlinePosition[ 23824, 616]*) (* CellTagsIndexPosition[ 23780, 612]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell["Riemann Sums for Double Integrals over Rectangles", "Title", CellFrame->True, TextAlignment->Center, Background->RGBColor[0, 1, 1]], Cell["\<\ This notebook is by Steven Amgott. Please send any questions or \ comments to samgott1@swarthmore.edu. Feel free to use and distribute this \ notebook, but keep this author information in any copy you use or distribute.\ \ \>", "SmallText"], Cell[TextData[{ "In this notebook, we will compute some of the Riemann sums for a function \ of two variables over a rectangle. The cell below defines the function and \ the rectangle, and draws a graph of the function. The following sections \ compute Riemann sums where the sample points are at various corners of the \ sub-rectangles, as well as at the center of the sub-rectangles. To use for \ other functions and rectangles, you will need to change the entries in ", StyleBox["magenta", FontColor->RGBColor[1, 0, 1]], "." }], "Text"], Cell[BoxData[{\(Clear[f, x, y, a, b, c, d]\), "\n", RowBox[{\(f[x_, y_]\), ":=", StyleBox[\(\(x\^2\) y\), FontColor->RGBColor[1, 0, 1]]}], "\n", RowBox[{ RowBox[{"a", "=", StyleBox["0", FontColor->RGBColor[1, 0, 1]]}], ";", "\n", RowBox[{"b", "=", StyleBox["2", FontColor->RGBColor[1, 0, 1]]}], ";", "\n", RowBox[{"c", "=", StyleBox["0", FontColor->RGBColor[1, 0, 1]]}], ";", "\n", RowBox[{"d", "=", StyleBox["3", FontColor->RGBColor[1, 0, 1]]}], ";", "\n", \(Plot3D[f[x, y], {x, a, b}, {y, c, d}]\), ";"}]}], "Input", InitializationCell->True], Cell["\<\ If we can calculate an exact answer for the integral, the next cell \ will do so.\ \>", "Text"], Cell[BoxData[{ \(Clear[exactAnswer]\), "\n", \(exactAnswer = \[Integral]\_a\%b\(\[Integral]\_c\%d f[x, y] \[DifferentialD]y \[DifferentialD]x\)\)}], "Input", InitializationCell->True], Cell[CellGroupData[{ Cell["\"Left-left\" sums", "Section"], Cell["\<\ The next cell uses the lower left corner of each sub-rectangle as \ the sample point to find the \"Left-Left\" Riemann Sum for the function f \ over the rectangle defined at the beginning of this notebook. It shows the \ grid of points where we will evaluate the function, the table of function \ values at these points, and the Riemann sum we get by adding these function \ values multiplied by the areas of the subrectangles. It then also produces a \ graph of the function, followed by a graph representing the Riemann Sum as a \ collection of rectangular solids. In the last graph, you can increase the \ value of PlotPoints to improve the rectangular solids, but at the cost of \ additional computer time.\ \>", "Text"], Cell[BoxData[{\(Clear[m, n, leftValues, fnLeftValues]\), "\n", RowBox[{ RowBox[{"m", "=", StyleBox["4", FontColor->RGBColor[1, 0, 1]]}], ";"}], "\n", RowBox[{ RowBox[{"n", "=", StyleBox["4", FontColor->RGBColor[1, 0, 1]]}], ";"}], "\n", \(leftValues = Flatten[Table[{a + \(\(b - a\)\/m\) k, c + \(\(d - c\)\/n\) l}, {k, 0, m - 1}, {l, 0, n - 1}], 1];\), "\n", \(ListPlot[leftValues, PlotRange \[Rule] {{a, b}, {c, d}}, GridLines \[Rule] {Table[a + \(\(b - a\)\/m\) k, {k, 0, m}], Table[c + \(\(d - c\)\/n\) l, {l, 0, n}]}, PlotStyle \[Rule] PointSize[ .03], PlotLabel -> "\"];\), "\n", \(TableForm[ fnLeftValues = Table[N[f[a + \(\(b - a\)\/m\) k, c + \(\(d - c\)\/n\) l]], {l, n - 1, 0, \(-1\)}, {k, 0, m - 1}], TableHeadings \[Rule] {Table[ c + \(\(d - c\)\/n\) l, {l, n - 1, 0, \(-1\)}], Table[a + \(\(b - a\)\/m\) k, {k, 0, m - 1}]}]\), "\n", \(Plus @@ Flatten[fnLeftValues\ \(\(b - a\)\/m\) \(d - c\)\/n]\), "\[IndentingNewLine]", \(Plot3D[ f[x, y], {x, a, b}, {y, c, d}];\), "\[IndentingNewLine]", RowBox[{ RowBox[{"Plot3D", "[", RowBox[{\(\[Sum]\+\(i = 1\)\%m\(\[Sum]\+\(j = 1\)\%n If[\((a + \((i - 1)\) \((b - a)\)\/m < x < a + i\ \((b - a)\)\/m)\) \[And] \((c + \((j - 1)\) \((d - c)\)\/n < y < c + j\ \((d - c)\)\/n)\), f[a + \((i - 1)\) \((b - a)\)\/m, c + \((j - 1)\) \((d - c)\)\/n], 0]\)\), ",", \({x, a, b}\), ",", \({y, c, d}\), ",", RowBox[{"PlotPoints", "\[Rule]", StyleBox["30", FontColor->RGBColor[0.501961, 0, 0.501961]]}], ",", \(Mesh \[Rule] False\)}], "]"}], ";"}]}], "Input"], Cell[TextData[{ "If we are going to do this for larger values of m and n, we probably do \ not want to wait for ", StyleBox["Mathematica", FontSlant->"Italic"], " to produce the table of values on the screen. The next cell defines a \ function of m and n which produces the \"Left-Left\" Riemann Sum with m \ subdivisions in the x direction and n subdivisions in the right direction." }], "Text"], Cell[BoxData[{ \(Clear[m, n, llRiemannSum]\), "\n", \(llRiemannSum[m_, n_] := Plus @@ Flatten[ Table[N[f[a + \(\(b - a\)\/m\) k, c + \(\(d - c\)\/n\) l], 10], {k, 0, m - 1}, {l, 0, n - 1}]\ \(\(b - a\)\/m\) \(d - c\)\/n]\)}], "Input", InitializationCell->True], Cell[BoxData[ RowBox[{"llRiemannSum", "[", RowBox[{ StyleBox["20", FontColor->RGBColor[1, 0, 1]], ",", StyleBox["30", FontColor->RGBColor[1, 0, 1]]}], "]"}]], "Input"], Cell[TextData[{ "The next cell evaluates the ", StyleBox["llRiemannSum", FontColor->RGBColor[1, 0, 0]], " function for several different choices of m = n, and makes a table of \ values consisting of the number of subdivisions in each direction, the value \ of the Riemann Sum, and the difference between the Riemann Sum and the exact \ answer (if available)." }], "Text"], Cell[BoxData[{ \(Clear[approx]\), "\[IndentingNewLine]", \(TableForm[ Table[{m, approx = llRiemannSum[m, m], approx - exactAnswer}, {m, 10, 40, 10}], TableHeadings \[Rule] {{}, {"\", "\", "\"}}]\)}], \ "Input"], Cell["\<\ Finally, it is interesting to note what happens to the error if we \ increase m by powers of 10. (Keep in mind that increasing m by a factor of \ 10 increases the computations being done by about a factor of 100, so this \ can take a while to evaluate.)\ \>", "Text"], Cell[BoxData[{ \(Clear[approx]\), "\[IndentingNewLine]", \(TableForm[ Table[{10\^k, approx = llRiemannSum[10\^k, 10\^k], approx - exactAnswer}, {k, 1, 3, 1}], TableHeadings \[Rule] {{}, {"\", "\", "\"}}]\)}], \ "Input"], Cell["\<\ By what factor does the error decrease when we increase m by a \ factor of 10?\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["\"Right-right\" sums", "Section"], Cell["\<\ The next cell uses the upper right corner of each sub-rectangle as \ the sample point to find the \"Right-Right\" Riemann Sum for the function f \ over the rectangle defined at the beginning of this notebook. It shows the \ grid of points where we will evaluate the function, the table of function \ values at these points, and the Riemann sum we get by adding these function \ values multiplied by the areas of the subrectangles. It then also produces a \ graph of the function, followed by a graph representing the Riemann Sum as a \ collection of rectangular solids. In the last graph, you can increase the \ value of PlotPoints to improve the rectangular solids, but at the cost of \ additional computer time.\ \>", "Text"], Cell[BoxData[{\(Clear[m, n, rightValues, fnRightValues]\), "\n", RowBox[{ RowBox[{"m", "=", StyleBox["4", FontColor->RGBColor[1, 0, 1]]}], ";"}], "\n", RowBox[{ RowBox[{"n", "=", StyleBox["4", FontColor->RGBColor[1, 0, 1]]}], ";"}], "\n", \(rightValues = Flatten[Table[{a + \(\(b - a\)\/m\) k, c + \(\(d - c\)\/n\) l}, {k, 1, m}, {l, 1, n}], 1];\), "\n", \(ListPlot[rightValues, PlotRange \[Rule] {{a, b}, {c, d}}, GridLines \[Rule] {Table[a + \(\(b - a\)\/m\) k, {k, 0, m}], Table[c + \(\(d - c\)\/n\) l, {l, 0, n}]}, PlotStyle \[Rule] PointSize[ .03], PlotLabel -> "\"];\), "\[IndentingNewLine]", \ \(TableForm[ fnRightValues = Table[N[f[a + \(\(b - a\)\/m\) k, c + \(\(d - c\)\/n\) l]], {l, n, 1, \(-1\)}, {k, 1, m}], TableHeadings \[Rule] {Table[ c + \(\(d - c\)\/n\) l, {l, n, 1, \(-1\)}], Table[a + \(\(b - a\)\/m\) k, {k, 1, m}]}]\), "\n", \(Plus @@ Flatten[fnRightValues\ \(\(b - a\)\/m\) \(d - c\)\/n]\), "\[IndentingNewLine]", \(Plot3D[ f[x, y], {x, a, b}, {y, c, d}];\), "\[IndentingNewLine]", RowBox[{ RowBox[{"Plot3D", "[", RowBox[{\(\[Sum]\+\(i = 1\)\%m\(\[Sum]\+\(j = 1\)\%n If[\((a + \((i - 1)\) \((b - a)\)\/m < x < a + i\ \((b - a)\)\/m)\) \[And] \((c + \((j - 1)\) \((d - c)\)\/n < y < c + j\ \((d - c)\)\/n)\), f[a + i\ \((b - a)\)\/m, c + j\ \((d - c)\)\/n], 0]\)\), ",", \({x, a, b}\), ",", \({y, c, d}\), ",", RowBox[{"PlotPoints", "\[Rule]", StyleBox["30", FontColor->RGBColor[0.501961, 0, 0.501961]]}], ",", \(Mesh \[Rule] False\)}], "]"}], ";"}]}], "Input"], Cell[TextData[{ "If we are going to do this for larger values of m and n, we probably do \ not want to wait for ", StyleBox["Mathematica", FontSlant->"Italic"], " to produce the tables or the graphs on the screen. The next cell defines \ a function of m and n which produces the \"Right-Right\" Riemann Sum with m \ subdivisions in the x direction and n subdivisions in the right direction." }], "Text"], Cell[BoxData[{ \(Clear[m, n, rrRiemannSum]\), "\n", \(rrRiemannSum[m_, n_] := Plus @@ Flatten[ Table[N[f[a + \(\(b - a\)\/m\) k, c + \(\(d - c\)\/n\) l], 10], {k, 1, m}, {l, 1, n}]\ \(\(b - a\)\/m\) \(d - c\)\/n]\)}], "Input",\ InitializationCell->True], Cell[BoxData[ RowBox[{"rrRiemannSum", "[", RowBox[{ StyleBox["20", FontColor->RGBColor[1, 0, 1]], ",", StyleBox["30", FontColor->RGBColor[1, 0, 1]]}], "]"}]], "Input"], Cell[TextData[{ "The next cell evaluates the ", StyleBox["rrRiemannSum", FontColor->RGBColor[1, 0, 0]], " function for several different choices of m = n, and makes a table of \ values consisting of the number of subdivisions in each direction, the value \ of the Riemann Sum, and the difference between the Riemann Sum and the exact \ answer (if available)." }], "Text"], Cell[BoxData[{ \(Clear[approx]\), "\[IndentingNewLine]", \(TableForm[ Table[{m, approx = rrRiemannSum[m, m], approx - exactAnswer}, {m, 10, 40, 10}], TableHeadings \[Rule] {{}, {"\", "\", "\"}}]\)}], \ "Input"], Cell["\<\ Finally, it is interesting to note what happens to the error if we \ increase m by powers of 10. (Keep in mind that increasing m by a factor of \ 10 increases the computations being done by about a factor of 100, so this \ can take a while to evaluate.)\ \>", "Text"], Cell[BoxData[{ \(Clear[approx]\), "\[IndentingNewLine]", \(TableForm[ Table[{10\^k, approx = rrRiemannSum[10\^k, 10\^k], approx - exactAnswer}, {k, 1, 3, 1}], TableHeadings \[Rule] {{}, {"\", "\", "\"}}]\)}], \ "Input"], Cell["\<\ By what factor does the error decrease when we increase m by a \ factor of 10? How does this compare to the left-left sums?\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Averaging the \"left-left\" and \"right-right\" sums", "Section"], Cell["\<\ You may recall from a one-variable Calculus class that averaging \ the left and right Riemann sums gives a new sum that was perhaps more useful. \ In one-variable Calculus, this new sum is often called the Trapezoidal Rule, \ as geometrically it could be represented by trapezoids rather than \ rectangles. We can create such a sum here by averaging the sums from the two \ sections above.\ \>", "Text"], Cell[BoxData[{ \(Clear[m, n, avgRiemannSum]\), "\[IndentingNewLine]", \(avgRiemannSum[m_, n_] := \(llRiemannSum[m, n] + rrRiemannSum[m, n]\)\/2\)}], "Input", InitializationCell->True], Cell[TextData[{ "The next cell evaluates the ", StyleBox["llRiemannSum", FontColor->RGBColor[1, 0, 0]], " function for several different choices of m = n, and makes a table of \ values consisting of the number of subdivisions in each direction, the value \ of the Riemann Sum, and the difference between the Riemann Sum and the exact \ answer (if available)." }], "Text"], Cell[BoxData[{ \(Clear[approx]\), "\[IndentingNewLine]", \(TableForm[ Table[{m, approx = avgRiemannSum[m, m], approx - exactAnswer}, {m, 10, 40, 10}], TableHeadings \[Rule] {{}, {"\", "\", "\"}}]\)}], \ "Input"], Cell["\<\ Finally, it is interesting to note what happens to the error if we \ increase m by powers of 10. (Keep in mind that increasing m by a factor of \ 10 increases the computations being done by about a factor of 100, so this \ can take a while to evaluate.)\ \>", "Text"], Cell[BoxData[{ \(Clear[approx]\), "\[IndentingNewLine]", \(TableForm[ Table[{10\^k, approx = avgRiemannSum[10\^k, 10\^k], approx - exactAnswer}, {k, 1, 3, 1}], TableHeadings \[Rule] {{}, {"\", "\", "\"}}]\)}], \ "Input"], Cell["\<\ By what factor does the error decrease when we increase m by a \ factor of 10? How does this compare to the left-left and right-right sums?\ \ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Midpoint sums", "Section"], Cell["\<\ The next cell uses the center of each sub-rectangle as the sample \ point to find the \"Mid\" Riemann Sum for the function f over the rectangle \ defined at the beginning of this notebook. It shows the grid of points where \ we will evaluate the function, the table of function values at these points, \ and the Riemann sum we get by adding these function values multiplied by the \ areas of the subrectangles. It then also produces a graph of the function, \ followed by a graph representing the Riemann Sum as a collection of \ rectangular solids. In the last graph, you can increase the value of \ PlotPoints to improve the rectangular solids, but at the cost of additional \ computer time.\ \>", "Text"], Cell[BoxData[{\(Clear[m, n, midValues, fnMidValues]\), "\n", RowBox[{ RowBox[{"m", "=", StyleBox["4", FontColor->RGBColor[1, 0, 1]]}], ";"}], "\n", RowBox[{ RowBox[{"n", "=", StyleBox["4", FontColor->RGBColor[1, 0, 1]]}], ";"}], "\n", \(midValues = Flatten[Table[{a + \(b - a\)\/\(2\ m\) + \(\(b - a\)\/m\) k, c + \(d - c\)\/\(2\ n\) + \(\(d - c\)\/n\) l}, {k, 0, m - 1}, {l, 0, n - 1}], 1];\), "\n", \(ListPlot[midValues, PlotRange \[Rule] {{a, b}, {c, d}}, GridLines \[Rule] {Table[a + \(\(b - a\)\/m\) k, {k, 0, m}], Table[c + \(\(d - c\)\/n\) l, {l, 0, n}]}, PlotStyle \[Rule] PointSize[ .03], PlotLabel -> "\"];\), "\n", \(TableForm[ fnMidValues = Table[N[f[a + \(b - a\)\/\(2\ m\) + \(\(b - a\)\/m\) k, c + \(d - c\)\/\(2\ n\) + \(\(d - c\)\/n\) l]], {l, n - 1, 0, \(-1\)}, {k, 0, m - 1}], TableHeadings \[Rule] {Table[ c + \(d - c\)\/\(2\ n\) + \(\(d - c\)\/n\) l, {l, n - 1, 0, \(-1\)}], Table[a + \(b - a\)\/\(2\ m\) + \(\(b - a\)\/m\) k, {k, 0, m - 1}]}]\), "\n", \(Plus @@ Flatten[fnMidValues\ \(\(b - a\)\/m\) \(d - c\)\/n]\), "\[IndentingNewLine]", \(Plot3D[ f[x, y], {x, a, b}, {y, c, d}];\), "\[IndentingNewLine]", RowBox[{ RowBox[{"Plot3D", "[", RowBox[{\(\[Sum]\+\(i = 1\)\%m\(\[Sum]\+\(j = 1\)\%n If[\((a + \((i - 1)\) \((b - a)\)\/m < x < a + i\ \((b - a)\)\/m)\) \[And] \((c + \((j - 1)\) \((d - c)\)\/n < y < c + j\ \((d - c)\)\/n)\), f[a + \(b - a\)\/\(2\ m\) + \(\(b - a\)\/m\) i, c + \(d - c\)\/\(2\ n\) + \(\(d - c\)\/n\) j], 0]\)\), ",", \({x, a, b}\), ",", \({y, c, d}\), ",", RowBox[{"PlotPoints", "\[Rule]", StyleBox["30", FontColor->RGBColor[0.501961, 0, 0.501961]]}], ",", \(Mesh \[Rule] False\)}], "]"}], ";"}]}], "Input"], Cell[TextData[{ "If we are going to do this for larger values of m and n, we probably do \ not want to wait for ", StyleBox["Mathematica", FontSlant->"Italic"], " to produce the table of values on the screen. The next cell defines a \ function of m and n which produces the \"Mid\" Riemann Sum with m \ subdivisions in the x direction and n subdivisions in the right direction." }], "Text"], Cell[BoxData[{ \(Clear[m, n, midRiemannSum]\), "\n", \(midRiemannSum[m_, n_] := Plus @@ Flatten[ Table[N[f[a + \(b - a\)\/\(2\ m\) + \(\(b - a\)\/m\) k, c + \(d - c\)\/\(2\ n\) + \(\(d - c\)\/n\) l], 10], {k, 0, m - 1}, {l, 0, n - 1}]\ \(\(b - a\)\/m\) \(d - c\)\/n]\)}], "Input", InitializationCell->True], Cell[BoxData[ RowBox[{"midRiemannSum", "[", RowBox[{ StyleBox["20", FontColor->RGBColor[1, 0, 1]], ",", StyleBox["30", FontColor->RGBColor[1, 0, 1]]}], "]"}]], "Input"], Cell[TextData[{ "The next cell evaluates the ", StyleBox["midRiemannSum", FontColor->RGBColor[1, 0, 0]], " function for several different choices of m = n, and makes a table of \ values consisting of the number of subdivisions in each direction, the value \ of the Riemann Sum, and the difference between the Riemann Sum and the exact \ answer (if available)." }], "Text"], Cell[BoxData[{ \(Clear[approx]\), "\[IndentingNewLine]", \(TableForm[ Table[{m, approx = midRiemannSum[m, m], approx - exactAnswer}, {m, 10, 40, 10}], TableHeadings \[Rule] {{}, {"\", "\", "\"}}]\)}], \ "Input"], Cell["\<\ Finally, it is interesting to note what happens to the error if we \ increase m by powers of 10. (Keep in mind that increasing m by a factor of \ 10 increases the computations being done by about a factor of 100, so this \ can take a while to evaluate.)\ \>", "Text"], Cell[BoxData[{ \(Clear[approx]\), "\[IndentingNewLine]", \(TableForm[ Table[{10\^k, approx = midRiemannSum[10\^k, 10\^k], approx - exactAnswer}, {k, 1, 3, 1}], TableHeadings \[Rule] {{}, {"\", "\", "\"}}]\)}], \ "Input"], Cell["\<\ By what factor does the error decrease when we increase m by a \ factor of 10? How does this compare to the left-left, right-right sums, and \ avg sums?\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Comparing all four sums.", "Section"], Cell["We can compare all the sums at once.", "Text"], Cell[BoxData[{ \(Clear[llApprox, rrApprox, avgApprox, midApprox]\), "\[IndentingNewLine]", \(TableForm[ Table[{m, llApprox = llRiemannSum[m, m], llApprox - exactAnswer, rrApprox = rrRiemannSum[m, m], rrApprox - exactAnswer, avgApprox = \(llApprox + rrApprox\)\/2, avgApprox - exactAnswer, midApprox = midRiemannSum[m, m], midApprox - exactAnswer}, {m, 10, 40, 10}], TableHeadings \[Rule] {{}, {"\", "\", "\", "\", "\", "\", "\", "\", \ "\"}}]\)}], "Input"], Cell["\<\ Finally, we can summarize what happens we increase m by powers of \ 10. (Keep in mind that increasing m by a factor of 10 increases the \ computations being done by about a factor of 100, so this can take a while to \ evaluate.)\ \>", "Text"], Cell[BoxData[{ \(Clear[llApprox, rrApprox, avgApprox, midApprox]\), "\[IndentingNewLine]", \(TableForm[ Table[{10\^k, llApprox = llRiemannSum[10\^k, 10\^k], llApprox - exactAnswer, rrApprox = rrRiemannSum[10\^k, 10\^k], rrApprox - exactAnswer, avgApprox = \(llApprox + rrApprox\)\/2, avgApprox - exactAnswer, midApprox = midRiemannSum[10\^k, 10\^k], midApprox - exactAnswer}, {k, 1, 3, 1}], TableHeadings \[Rule] {{}, {"\", "\", "\", "\", "\", "\", "\", "\", \ "\"}}]\)}], "Input"], Cell["\<\ If you needed to approximate a double integral using these sums, \ which would you be more likely to want to use?\ \>", "Text"] }, Closed]] }, Open ]] }, FrontEndVersion->"5.0 for Microsoft Windows", ScreenRectangle->{{0, 1280}, {0, 971}}, AutoGeneratedPackage->None, WindowToolbars->"EditBar", WindowSize->{1132, 889}, WindowMargins->{{4, Automatic}, {Automatic, 5}}, CellDingbat->None ] (******************************************************************* 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, 143, 3, 111, "Title"], Cell[1922, 58, 252, 5, 28, "SmallText"], Cell[2177, 65, 552, 10, 71, "Text"], Cell[2732, 77, 681, 18, 150, "Input", InitializationCell->True], Cell[3416, 97, 105, 3, 33, "Text"], Cell[3524, 102, 209, 4, 63, "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[3758, 110, 37, 0, 73, "Section"], Cell[3798, 112, 737, 11, 90, "Text"], Cell[4538, 125, 1964, 39, 368, "Input"], Cell[6505, 166, 407, 8, 52, "Text"], Cell[6915, 176, 322, 7, 63, "Input", InitializationCell->True], Cell[7240, 185, 215, 6, 30, "Input"], Cell[7458, 193, 381, 8, 52, "Text"], Cell[7842, 203, 264, 6, 70, "Input"], Cell[8109, 211, 278, 5, 52, "Text"], Cell[8390, 218, 273, 6, 72, "Input"], Cell[8666, 226, 102, 3, 33, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[8805, 234, 39, 0, 43, "Section"], Cell[8847, 236, 740, 11, 90, "Text"], Cell[9590, 249, 1928, 39, 347, "Input"], Cell[11521, 290, 414, 8, 52, "Text"], Cell[11938, 300, 299, 7, 63, "Input", InitializationCell->True], Cell[12240, 309, 215, 6, 30, "Input"], Cell[12458, 317, 381, 8, 52, "Text"], Cell[12842, 327, 264, 6, 70, "Input"], Cell[13109, 335, 278, 5, 52, "Text"], Cell[13390, 342, 273, 6, 72, "Input"], Cell[13666, 350, 148, 3, 33, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[13851, 358, 71, 0, 43, "Section"], Cell[13925, 360, 415, 7, 71, "Text"], Cell[14343, 369, 203, 4, 63, "Input", InitializationCell->True], Cell[14549, 375, 381, 8, 52, "Text"], Cell[14933, 385, 266, 6, 70, "Input"], Cell[15202, 393, 278, 5, 52, "Text"], Cell[15483, 400, 275, 6, 72, "Input"], Cell[15761, 408, 166, 4, 33, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[15964, 417, 32, 0, 43, "Section"], Cell[15999, 419, 720, 11, 90, "Text"], Cell[16722, 432, 2178, 43, 371, "Input"], Cell[18903, 477, 401, 8, 52, "Text"], Cell[19307, 487, 387, 8, 64, "Input", InitializationCell->True], Cell[19697, 497, 216, 6, 30, "Input"], Cell[19916, 505, 382, 8, 52, "Text"], Cell[20301, 515, 266, 6, 70, "Input"], Cell[20570, 523, 278, 5, 52, "Text"], Cell[20851, 530, 275, 6, 72, "Input"], Cell[21129, 538, 177, 4, 33, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[21343, 547, 43, 0, 43, "Section"], Cell[21389, 549, 52, 0, 33, "Text"], Cell[21444, 551, 605, 11, 106, "Input"], Cell[22052, 564, 253, 5, 52, "Text"], Cell[22308, 571, 630, 11, 106, "Input"], Cell[22941, 584, 137, 3, 33, "Text"] }, Closed]] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)