(*********************************************************************** Mathematica-Compatible Notebook This notebook can be used on any computer system with Mathematica 3.0, MathReader 3.0, or any compatible application. The data for the notebook starts with the line of 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[ 19257, 594]*) (*NotebookOutlinePosition[ 20201, 625]*) (* CellTagsIndexPosition[ 20157, 621]*) (*WindowFrame->Normal*) Notebook[{ Cell[BoxData[ StyleBox[\(Off[General::spell]\), Background->RGBColor[1, 1, 0]]], "Input", Background->RGBColor[1, 1, 0]], Cell[TextData[{ StyleBox["Math 2443: Calculus & Analytic Geometry IV", FontSize->12, FontColor->GrayLevel[0]], "\nA Surface and Construction of a Contour Diagram\n", StyleBox[ "by TJ Murphy with adaptations of work by Brad Kline at USAFA and Paul \ Goodey at OU", FontSize->12, FontColor->GrayLevel[0]] }], "Text", CellFrame->{{0, 0}, {0, 3}}, FontSize->24, FontColor->RGBColor[1, 0, 1]], Cell["\<\ Shows traces and then animates the contruction of a contour diagram \ from the horizontal traces of a surface.\ \>", "Text", CellFrame->{{0, 0}, {0, 3}}], Cell[CellGroupData[{ Cell["Graphing a Surface", "Text", CellFrame->{{0, 0}, {0, 3}}, FontSize->18, Background->RGBColor[1, 0, 1]], Cell[CellGroupData[{ Cell["The following command defines the function and names it.", "Text"], Cell[BoxData[ \(f[x_, y_] = x^2\ + \ y^2\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ The following command graphs f(x,y) for x values from -5 to 5 and y \ values from -5 to 5.\ \>", "Text"], Cell[BoxData[ \(\(Plot3D[f[x, y], {x, \(-5\), 5}, {y, \(-5\), 5}]; \)\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ The following command names the graph \"paraboloid\" and constrains \ z values to the range from 0 to 25) and .\ \>", "Text"], Cell[BoxData[ \(\(surface = Plot3D[f[x, y], {x, \(-5\), 5}, {y, \(-5\), 5}, PlotRange -> {0, 25}]; \)\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ The following command will allow us to change the viewpoint of the \ graphics objects and only type the change in one spot.\ \>", "Text"], Cell[BoxData[ \(\(viewpoint = \n\t\ \ \ ViewPoint -> {2.990, \ 1.136, \ 1.104}; \)\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ This set of commands draws nice axes and places them in the \ standard position.\ \>", "Text"], Cell[BoxData[ \(range = 5; \n axes = Graphics3D[{Line[{{0, 0, 0}, {range, 0, 0}}], Line[{{0, 0, 0}, {0, range, 0}}], Line[{{0, 0, 0}, {0, 0, 5*range}}]}]; \n labels = Graphics3D[{Text["\", {1.1*range, 0, 0}], Text["\", {0, 1.1*range, 0}], Text["\", {0, 0, 5.1*range}]}]; \n axes3D = Show[axes, labels, viewpoint, Boxed -> False]; \)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ "The following command puts the paraboloid and the nice axes together on \ the same graph, eliminating the default axes and box that ", StyleBox["Mathematica", FontSlant->"Italic"], " automatically draws unless we tell it not to." }], "Text"], Cell[BoxData[ \(\(Show[surface, axes3D, BoxRatios -> {1, 1, 1}, Axes -> False, \ Boxed -> False, viewpoint]; \)\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Plotting Points in 3-Space and Looking at Vertical Traces", "Text", CellFrame->{{0, 0}, {0, 3}}, FontSize->18, Background->RGBColor[1, 0, 1]], Cell[CellGroupData[{ Cell["\<\ First we evaluate f at the points where x = 2 and y ranges from -2 \ to 2 (integers only).\ \>", "Text"], Cell[BoxData[ \(f[2, \(-2\)]\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(f[2, \(-1\)]\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(f[2, 0]\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(f[2, 1]\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(f[2, 2]\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ Then we make axes that are appropriate for what we want here.\ \>", "Text"], Cell[BoxData[ \(Clear[range, axes, labels, axes3D]; \nrange = 5; \n axes = Graphics3D[{Line[{{0, 0, 0}, {range, 0, 0}}], Line[{{0, 0, 0}, {0, range, 0}}], Line[{{0, 0, 0}, {0, 0, 2*range}}]}]; \n labels = Graphics3D[{Text["\", {1.1*range, 0, 0}], Text["\", {0, 1.1*range, 0}], Text["\", {0, 0, 2.1*range}]}]; \n axes3D = Show[axes, labels, viewpoint, Boxed -> False]; \)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["Then we plot these five points.", "Text"], Cell[BoxData[ \(\(xpoints = Show[\n\tGraphics3D[{PointSize[ .025], Point[{2, \(-2\), 8}]}], \n\t Graphics3D[{PointSize[ .025], Point[{2, \(-1\), 5}]}], \n\ \ Graphics3D[{PointSize[ .025], Point[{2, 0, 4}]}], \n\ \ Graphics3D[{PointSize[ .025], Point[{2, 1, 5}]}], \n\ \ Graphics3D[{PointSize[ .025], Point[{2, 2, 8}]}], \n\taxes3D, BoxRatios -> {1, 1, 1}, Axes -> False, Boxed -> False, viewpoint]; \)\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ Note that they lie on the vertical trace obtained by intersecting \ our surface with the plane x = 2.\ \>", "Text"], Cell[BoxData[ \(Show[ Plot3D[f[x, y], {x, \(-1\), 3}, {y, \(-3\), 3}, PlotRange -> {0, 10}], ParametricPlot3D[{2, v, w}, {v, \(-5\), 5}, {w, 0, 10}], axes3D, BoxRatios -> {1, 1, 1}, Axes -> False, Boxed -> False, viewpoint]; \n Show[ParametricPlot3D[{2, v, 4 + v^2}, {v, \(-3\), 3}], xpoints, axes3D, BoxRatios -> {1, 1, 1}, Axes -> False, Boxed -> False, viewpoint]; \)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["Now we hold y constant at 1 and let x vary from -2 to 2.", "Text"], Cell[BoxData[ \(f[\(-2\), 1]\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(f[\(-1\), 1]\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(f[0, 1]\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(f[1, 1]\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(f[2, 1]\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["Then we plot these five points.", "Text"], Cell[BoxData[ \(\(ypoints = Show[\n\tGraphics3D[{PointSize[ .025], Point[{\(-2\), 1, 5}]}], \n\t Graphics3D[{PointSize[ .025], Point[{\(-1\), 1, 2}]}], \n\ \ Graphics3D[{PointSize[ .025], Point[{0, 1, 1}]}], \n\ \ Graphics3D[{PointSize[ .025], Point[{1, 1, 2}]}], \n\ \ Graphics3D[{PointSize[ .025], Point[{2, 1, 5}]}], \n\taxes3D, BoxRatios -> {1, 1, 1}, Axes -> False, Boxed -> False, ViewPoint -> {0.912, \ 3.109, \ 0.975}]; \)\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ And finally we note that they lie on the vertical trace obtained \ by intersecting our surface with the plane x = 2.\ \>", "Text"], Cell[BoxData[ \(Show[ Plot3D[f[x, y], {x, \(-3\), 3}, {y, \(-3\), 3}, PlotRange -> {0, 10}], ParametricPlot3D[{u, 1, w}, {u, \(-5\), 5}, {w, 0, 10}], axes3D, BoxRatios -> {1, 1, 1}, Axes -> False, Boxed -> False, ViewPoint -> {0.912, \ 3.109, \ 0.975}]; \n Show[ParametricPlot3D[{u, 1, u^2 + 1}, {u, \(-3\), 3}], ypoints, axes3D, BoxRatios -> {1, 1, 1}, Axes -> False, Boxed -> False, ViewPoint -> {0.912, \ 3.109, \ 0.975}]; \)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[TextData[{ "Construction of Contour Diagram\n", StyleBox["(adapted from an animation by Brad Kline at USAFA)", FontSize->12] }], "Text", CellFrame->{{0, 0}, {0, 3}}, FontSize->18, Background->RGBColor[1, 0, 1]], Cell[CellGroupData[{ Cell["We'll get the axes we want here:", "Text"], Cell[BoxData[ \(Clear[range, axes, labels, axes3D]; \nrange = 5; \n axes = Graphics3D[{Line[{{0, 0, 0}, {range, 0, 0}}], Line[{{0, 0, 0}, {0, range, 0}}], Line[{{0, 0, 0}, {0, 0, 2*range}}]}]; \n labels = Graphics3D[{Text["\", {1.1*range, 0, 0}], Text["\", {0, 1.1*range, 0}], Text["\", {0, 0, 2.1*range}]}]; \n axes3D = Show[axes, labels, viewpoint, Boxed -> False]; \)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ Now we intersect our surface with a horizontal plane to get a \ horizontal trace.\ \>", "Text"], Cell[BoxData[ \(\(Show[\n\t Plot3D[f[x, y], {x, \(-3\), 3}, {y, \(-3\), 3}, PlotRange -> {0, 9}], \n \tPlot3D[7, {x, \(-4\), 4}, {y, \(-3\), 3}], axes3D, BoxRatios -> {1, 1, 1}, Axes -> False, Boxed -> False, viewpoint]; \)\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell["This shows the horizontal trace.", "Text"], Cell[BoxData[ \(\(Show[ ParametricPlot3D[{Sqrt[7] Cos[t], Sqrt[7] Sin[t], 7}, {t, 0, 2 Pi}], axes3D, BoxRatios -> {1, 1, 1}, Axes -> False, \ Boxed -> False, viewpoint]; \)\)], "Input", Background->RGBColor[1, 1, 0]], Cell[CellGroupData[{ Cell["\<\ Moving the horizontal traces to the xy-plane (they are now called \ level curves) gives a two-dimensional representation of the function, called \ a contour diagram. The following animation shows the construction of a \ contour diagram of our surface by following the migration of the horizontal \ traces to the xy-plane.The commands inside this cell are used to create the \ animation. \ \>", "Text"], Cell[BoxData[ \(Clear[range, axes, labels, axes3D]; \nrange = 25; \n axes = Graphics3D[{Line[{{0, 0, 0}, { .5*range, 0, 0}}], Line[{{0, 0, 0}, {0, .5*range, 0}}], Line[{{0, 0, 0}, {0, 0, range}}]}]; \n labels = Graphics3D[{Text["\", { .6*range, 0, 0}], Text["\", {0, .6*range, 0}], Text["\", {0, 0, 1.1*range}]}]; \n axes3D = Show[axes, labels, viewpoint, Boxed -> False]; \)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(\(functions = Table[{Sqrt[r]\ Cos[t], Sqrt[r]\ Sin[t], r}, {r, 1, 25}]; \)\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(\(circles = ParametricPlot3D[Evaluate[functions], {t, 0, 2 Pi}]; \)\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(\(Needs["\"]; \)\)], "Input", Background->RGBColor[1, 1, 0]], Cell[BoxData[ \(Animate[ functions = Table[{Sqrt[r]\ Cos[t], Sqrt[r]\ \ Sin[t], h\ r}, {r, 1, 25}]; \n\t circles = ParametricPlot3D[Evaluate[functions], {t, 0, 2 Pi}]; \n\t Show[axes3D, circles, surface, PlotRange -> {0, 25}], {h, 1, 0, \(- .1\)}]; \n Animate[Show[axes3D, circles, PlotRange -> {0, 25}, \n\t\t ViewPoint -> {\((1 - t)\) 2.99, \((1 - t)\) 1.136 - 3 t, \((1 - t)\) 1.104 + 3.103 t}], {t, 0, 1, .1}]; \)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ StyleBox["Mathematica'", FontSlant->"Italic"], "s version of a contour diagram shows the height from which the curve came \ by using darker shading to represent values farther down the z-axis." }], "Text"], Cell[BoxData[ \(ContourPlot[\n\tf[x, y], {x, \(-5\), 5}, {y, \(-5\), 5}, ContourShading -> False]; \n ContourPlot[f[x, y], {x, \(-5\), 5}, {y, \(-5\), 5}, ContourShading -> True]; \)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[TextData[{ "Construction of Contour Diagram: Another View\n", StyleBox["(adapted from an animation by Paul Goodey at OU)", FontSize->12] }], "Text", CellFrame->{{0, 0}, {0, 3}}, FontSize->18, Background->RGBColor[1, 0, 1]], Cell[CellGroupData[{ Cell[TextData[{ "First we're going to need some ", StyleBox["Mathematica", FontSlant->"Italic"], " packages:" }], "Text"], Cell[BoxData[ \(<< Graphics`ImplicitPlot`\)], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ Then we're going to change the options on the graph of our surface \ (for later convenience):\ \>", "Text"], Cell[BoxData[{ \(Clear[range, axes, labels, axes3D]\), \(range = 5; \n axes = Graphics3D[{Line[{{0, 0, 0}, {range, 0, 0}}], Line[{{0, 0, 0}, {0, range, 0}}], Line[{{0, 0, 0}, {0, 0, 1.8*range}}]}]; \n labels = Graphics3D[{Text["\", {1.1*range, 0, 0}], Text["\", {0, 1.1*range, 0}], Text["\", {0, 0, 1.9*range}]}]; \n axes3D = Show[axes, labels, viewpoint, Boxed -> False]\), \(\(surface = Show[Plot3D[f[x, y], {x, \(-2\), 2}, {y, \(-2\), 2}, PlotRange -> {0, 8}, Mesh -> False]\ , \ axes3D, viewpoint, Boxed -> False, \ Axes -> False]; \)\)}], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["The next set of commands get us our level curves:", "Text"], Cell[BoxData[{ \(s6 = Plot3D[6, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls6 = ImplicitPlot[x^2 + y^2 == 6, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s55 = Plot3D[5.5, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls55 = ImplicitPlot[x^2 + y^2 == 5.5, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s5 = Plot3D[5, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls5 = ImplicitPlot[x^2 + y^2 == 5, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s45 = Plot3D[4.5, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls45 = ImplicitPlot[x^2 + y^2 == 4.5, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s4 = Plot3D[4, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls4 = ImplicitPlot[x^2 + y^2 == 4, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s35 = Plot3D[3.5, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls35 = ImplicitPlot[x^2 + y^2 == 3.5, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s3 = Plot3D[3, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls3 = ImplicitPlot[x^2 + y^2 == 3, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s25 = Plot3D[2.5, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls25 = ImplicitPlot[x^2 + y^2 == 2.5, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s2 = Plot3D[2, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls2 = ImplicitPlot[x^2 + y^2 == 2, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s15 = Plot3D[1.5, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls15 = ImplicitPlot[x^2 + y^2 == 1.5, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s1 = Plot3D[1, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls1 = ImplicitPlot[x^2 + y^2 == 1, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s05 = Plot3D[0.5, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls05 = ImplicitPlot[x^2 + y^2 == 0.5, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\), \(s0 = Plot3D[0, {x, \(-2\), 2}, {y, \(-2\), 2}, PlotPoints -> 2]\), \(ls0 = ImplicitPlot[x^2 + y^2 == .001, {x, \(-2\), 2}, {y, \(-2\), 2}, AxesLabel -> {"\", "\"}]\)}], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ This set of commands graphs the surface and the planes together, \ sequentially.\ \>", "Text"], Cell[BoxData[{ \(surface6 = Show[surface, s6, PlotRange -> {0, 8}]\), \(surface55 = Show[surface, s55, PlotRange -> {0, 8}]\), \(surface5 = Show[surface, s5, PlotRange -> {0, 8}]\), \(surface45 = Show[surface, s45, PlotRange -> {0, 8}]\), \(surface4 = Show[surface, s4, PlotRange -> {0, 8}]\), \(surface35 = Show[surface, s35, PlotRange -> {0, 8}]\), \(surface3 = Show[surface, s3, PlotRange -> {0, 8}]\), \(surface25 = Show[surface, s25, PlotRange -> {0, 8}]\), \(surface2 = Show[surface, s2, PlotRange -> {0, 8}]\), \(surface15 = Show[surface, s15, PlotRange -> {0, 8}]\), \(surface1 = Show[surface, s1, PlotRange -> {0, 8}]\), \(surface05 = Show[surface, s05, PlotRange -> {0, 8}]\), \(surface0 = Show[surface, s0, PlotRange -> {0, 8}]\)}], "Input", Background->RGBColor[1, 1, 0]] }, Open ]], Cell[CellGroupData[{ Cell["And finally we are ready to animate", "Text"], Cell[BoxData[ \(ShowAnimation[{GraphicsArray[{surface6, ls6}], GraphicsArray[{surface55, ls55}], GraphicsArray[{surface55, ls5}], GraphicsArray[{surface45, ls45}], GraphicsArray[{surface4, ls4}], GraphicsArray[{surface35, ls35}], GraphicsArray[{surface3, ls3}], GraphicsArray[{surface25, ls25}], GraphicsArray[{surface2, ls2}], GraphicsArray[{surface15, ls15}], GraphicsArray[{surface1, ls1}], GraphicsArray[{surface05, ls05}], GraphicsArray[{surface0, ls0}]}] \)], "Input", AnimationDisplayTime->0.627485, Background->RGBColor[1, 1, 0]] }, Open ]] }, Closed]], Cell[TextData[{ "This work is part of the Multivariable Calculus with ", StyleBox["Mathematica", FontSlant->"Italic"], " Project at the University of Oklahoma " }], "Text", CellFrame->{{0, 0}, {0, 3}}, FontSize->10] }, FrontEndVersion->"Macintosh 3.0", ScreenRectangle->{{0, 832}, {0, 604}}, WindowToolbars->"RulerBar", CellGrouping->Manual, WindowSize->{598, 543}, WindowMargins->{{Automatic, 101}, {Automatic, 6}}, PrintingCopies->1, PrintingPageRange->{1, Automatic}, MacintoshSystemPageSetup->"\<\ 00l0005X0FP000003^P;H?oCokH?B`^Z;085:0?l0@00005X0FP000003^P;H006 1@00I00100000@0200000BL?004000]cJI0000000000030001000000000@0?oC okH?B`^Z0200000000400000000001T1\>" ] (*********************************************************************** 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[1709, 49, 132, 3, 43, "Input"], Cell[1844, 54, 417, 13, 85, "Text"], Cell[2264, 69, 165, 4, 41, "Text"], Cell[CellGroupData[{ Cell[2454, 77, 114, 3, 55, "Text"], Cell[CellGroupData[{ Cell[2593, 84, 72, 0, 30, "Text"], Cell[2668, 86, 91, 2, 43, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[2796, 93, 114, 3, 30, "Text"], Cell[2913, 98, 119, 2, 43, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[3069, 105, 135, 3, 30, "Text"], Cell[3207, 110, 163, 4, 59, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[3407, 119, 147, 3, 46, "Text"], Cell[3557, 124, 135, 3, 59, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[3729, 132, 104, 3, 30, "Text"], Cell[3836, 137, 448, 9, 139, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[4321, 151, 268, 6, 48, "Text"], Cell[4592, 159, 168, 3, 59, "Input"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[4809, 168, 153, 3, 52, "Text"], Cell[CellGroupData[{ Cell[4987, 175, 114, 3, 30, "Text"], Cell[5104, 180, 78, 2, 43, "Input"], Cell[5185, 184, 78, 2, 43, "Input"], Cell[5266, 188, 73, 2, 43, "Input"], Cell[5342, 192, 73, 2, 43, "Input"], Cell[5418, 196, 73, 2, 43, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[5528, 203, 88, 3, 30, "Text"], Cell[5619, 208, 486, 9, 155, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[6142, 222, 47, 0, 30, "Text"], Cell[6192, 224, 507, 9, 155, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[6736, 238, 126, 3, 30, "Text"], Cell[6865, 243, 452, 8, 123, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[7354, 256, 72, 0, 30, "Text"], Cell[7429, 258, 78, 2, 43, "Input"], Cell[7510, 262, 78, 2, 43, "Input"], Cell[7591, 266, 73, 2, 43, "Input"], Cell[7667, 270, 73, 2, 43, "Input"], Cell[7743, 274, 73, 2, 43, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[7853, 281, 47, 0, 30, "Text"], Cell[7903, 283, 540, 9, 155, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[8480, 297, 141, 3, 30, "Text"], Cell[8624, 302, 521, 9, 139, "Input"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[9194, 317, 229, 7, 68, "Text"], Cell[CellGroupData[{ Cell[9448, 328, 48, 0, 30, "Text"], Cell[9499, 330, 486, 9, 155, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[10022, 344, 105, 3, 30, "Text"], Cell[10130, 349, 297, 6, 91, "Input"] }, Open ]], Cell[10442, 358, 48, 0, 30, "Text"], Cell[10493, 360, 243, 5, 75, "Input"], Cell[CellGroupData[{ Cell[10761, 369, 411, 7, 78, "Text"], Cell[11175, 378, 493, 9, 155, "Input"], Cell[11671, 389, 145, 3, 43, "Input"], Cell[11819, 394, 139, 3, 43, "Input"], Cell[11961, 399, 104, 2, 43, "Input"], Cell[12068, 403, 530, 10, 171, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[12635, 418, 229, 5, 48, "Text"], Cell[12867, 425, 248, 5, 91, "Input"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[13164, 436, 241, 7, 68, "Text"], Cell[CellGroupData[{ Cell[13430, 447, 131, 5, 32, "Text"], Cell[13564, 454, 91, 2, 43, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[13692, 461, 117, 3, 30, "Text"], Cell[13812, 466, 694, 14, 203, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[14543, 485, 65, 0, 30, "Text"], Cell[14611, 487, 2697, 53, 651, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[17345, 545, 104, 3, 30, "Text"], Cell[17452, 550, 849, 14, 235, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[18338, 569, 51, 0, 30, "Text"], Cell[18392, 571, 605, 10, 219, "Input"] }, Open ]] }, Closed]], Cell[19024, 585, 229, 7, 37, "Text"] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)