(************** 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[ 59751, 1547]*) (*NotebookOutlinePosition[ 83850, 2421]*) (* CellTagsIndexPosition[ 83806, 2417]*) (*WindowFrame->Normal*) Notebook[{ Cell["The Sandpile Model", "Title"], Cell["R.G. Palmer, 9/20/99, 10/22/02, 3/28/05", "Subsubtitle"], Cell[CellGroupData[{ Cell["Background and Copyright", "Subsection"], Cell[TextData[{ "This ", StyleBox["Mathematica", FontSlant->"Italic"], " Notebook was written by Richard G. Palmer (Physics Department, Duke \ University) for use in a course he taught. As of 1999, it has been made \ available for general non-profit use under the following copyright \ provision." }], "Text"], Cell[TextData[{ StyleBox["This Mathematica Notebook is Copyright Richard G. Palmer, 1997", FontWeight->"Bold"], ". It may be freely used by individuals, and by classes at academic \ institutions, provided:\n1. Credit is given to Richard Palmer as the original \ author; and\n2. It is not bought or sold or exchanged for profit, or \ incorporated into material that is bought or sold or exchanged for profit.\n\ Any other use requires the written permission of Richard Palmer, Dept. of \ Physics, Box 90305, Duke University, Durham, NC 27708, USA.", "See ", StyleBox["http://www.phy.duke.edu/~palmer", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " for the email address." }], "Text"], Cell[TextData[{ "See ", StyleBox["http://www.phy.duke.edu/~palmer/notebooks/", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " for other ", StyleBox["Mathematica", FontSlant->"Italic"], " notebooks by Richard Palmer." }], "Text"], Cell[TextData[{ "10/2002: Check OK for ", StyleBox["Mathematica", FontSlant->"Italic"], " 4.1.\n3/2005: Check OK for ", StyleBox["Mathematica", FontSlant->"Italic"], " 5.0, 5.1." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Introduction", "Section"], Cell[TextData[{ "This notebook is an implementation of the sandpile model described by Per \ Bak on pages 52-55 of his book \"How Nature Works\". You need to read that ", StyleBox["before", FontSlant->"Italic"], " doing this notebook. We'll set it up, see some pictures and animations, \ and take some data to construct a plot like Bak's figure 11 (page 47). \ Actually it would take too long in ", StyleBox["Mathematica", FontSlant->"Italic"], " to collect enough data for an accurate plot like his, but we'll do enough \ to get the idea, and also analyze some data that I generated earlier." }], "Text"], Cell[TextData[{ "For technical reasons, to get reasonable efficiency out of ", StyleBox["Mathematica", FontSlant->"Italic"], ", we're going to modify the definition of the problem slightly, as \ follows:" }], "Text"], Cell[TextData[{ "1. We need to increase the height of all sites by 1, by making the \ critical value Z", Cell[BoxData[ \(TraditionalForm\`\_cr\)]], " 4 instead of 3. The toppling rule is now:" }], "Text"], Cell["\<\ When Z(x,y) reaches 5 (or more): Z(x,y) -> Z(x,y) - 4 Z(x\[PlusMinus]1,y) -> Z(x\[PlusMinus]1, y) +1 Z(x,y\[PlusMinus]1) -> Z(x,y\[PlusMinus]1) + 1\ \>", "Text", CellFrame->True, TextAlignment->Center, Background->GrayLevel[0.849989]], Cell["\<\ The Z values will all start at 1, and can never subsequently get \ less than 1.\ \>", "Text"], Cell["\<\ 2. We need to surround the L x L array of sites by a border of \ sites that all have Z = 0. This is a special dummy value that doesn't occur \ except on the border. So in fact x and y will run from 1 up to L+2, with the \ active array corresponding to values from 2 to L+1. That'll be clear in a \ moment.\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Initializing the sandpile", "Section"], Cell[TextData[{ "The following expression sets a value for L, the size of the sandpile, and \ then initializes the Z values to 1 except for the border of 0's. We'll start \ off with a 5 x 5 sandpile, the same size as Bak's example on page 53, but you \ can increase it later by coming back to here and changing the first line \ below (and re-evaluating of course). The ", StyleBox["Z = Table[..., {x,1,L+2},{y,1,L+2}]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " sets Z to a list of lists, which is the way ", StyleBox["Mathematica", FontSlant->"Italic"], " represents an array or matrix. In this case it'll be 7 x 7; a list of 7 \ lists each of length 7. The actual values are defined by the ", StyleBox["If[", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], StyleBox["condition", FontWeight->"Bold", FontSlant->"Italic"], StyleBox[", 0, 1]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " expression, which gives 0 if the ", StyleBox["condition", FontWeight->"Bold", FontSlant->"Italic"], " is true, and 1 otherwise. The actual condition is made up of four \ subconditions (one to check for each of the four boundaries) joined by the \ logical OR operator ", StyleBox["||", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". Evaluate it." }], "Text"], Cell[BoxData[ \(L\ = \ 5; \n Z = Table[\n\t If[x == 1\ || \ y == 1\ || \ x == L + 2\ || \ y == L + 2, \ 0, \ 1], \n\t{x, 1, L + 2}, \n\t{y, 1, L + 2}\n]; \)], "Input"], Cell["\<\ You don't actually see any result because I put a semicolon at the \ end of the last expression. This generally suppresses output. If you made L \ larger, as you will later, you would definitely not want to see all of Z, so \ I protected us from the start. But we can look at Z now, just by naming it \ (and evaluating of course -- I won't prompt you again):\ \>", "Text"], Cell[BoxData[ \(Z\)], "Input"], Cell["\<\ Do you see the 7 lists each of length 7? It's probably a bit of a \ mess, but the following should look nicer, showing it as a \"matrix\". You \ don't need to know anything about matrices to appreciate this:\ \>", "Text"], Cell[BoxData[ \(MatrixForm[Z]\)], "Input"], Cell["\<\ In any case, observe the boundary of 0's, which are just going to \ stay that way.\ \>", "Text"], Cell["\<\ You can access the Z value at any particular site, say the middle \ one, with an expression like\ \>", "Text"], Cell[BoxData[ \(Z[\([4, 4]\)]\)], "Input"], Cell[TextData[{ "This is the ", StyleBox["Mathematica", FontSlant->"Italic"], " equivalent of Bak's Z(x,y). Note the double brackets. Make sure you \ understand why the center site has x = y = 4 for L = 5." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Adding sand manually", "Section"], Cell["We can add sand to a particular square by an expresion like", "Text"], Cell[BoxData[ \(\(++Z[\([4, 4]\)]\)\)], "Input"], Cell["\<\ The ++ operator adds 1 to the thing it's in front of, and returns \ the new value. Try evaluating it again. Then try adding a grain somewhere \ else too (but not in the border -- no 1's or 7's!). Now look at the sandpile \ again:\ \>", "Text"], Cell[BoxData[ \(MatrixForm[Z]\)], "Input"], Cell["\<\ Get it? You should see a 3 in the center, a 2 somewhere else, 0's \ on the boundary, and 1's elsewhere.\ \>", "Text"], Cell["\<\ What we'll usually want to do is to add sand grains at random until \ a toppling is needed (because one of the Z's reaches 5). First we'll need to \ pick a random site, with x and y chosen randomly between 2 and L+1. The \ following expression generates a random number like that:\ \>", "Text"], Cell[BoxData[ \(Random[Integer, {2, L + 1}]\)], "Input"], Cell[TextData[{ "Evaluate this several times (or put it in a ", StyleBox["Table[..., {10}]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " construction to see a list of 10 such numbers)." }], "Text"], Cell["Using two such numbers we can add sand to a random site:", "Text"], Cell[BoxData[ \(x = Random[Integer, {2, L + 1}]; \ny = Random[Integer, {2, L + 1}]; \n \(++Z[\([x, y]\)]\); \)], "Input"], Cell["\<\ This doesn't produce any output because of the final semicolon \ (which you can remove if you like). Evaluate it several times and then look \ at the sandpile again:\ \>", "Text"], Cell[BoxData[ \(MatrixForm[Z]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Display functions", "Section"], Cell["\<\ Before we go on, let's define some more sophisticated ways of \ looking at the sandpile. I'm not going to explain how this all works; you \ just need to know how to use it. We'll define three different functions for \ display:\ \>", "Text"], Cell[TextData[{ "1. ", StyleBox["ShowMatrix[Z]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " will show Z as a matrix, as we've already been doing with ", StyleBox["MatrixForm[Z]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". It's the same thing except that we do not see the empty border of \ sites." }], "Text"], Cell[TextData[{ "2. ", StyleBox["ShowColumns[Z]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " will show Z as a bunch of columns in 3D. That's pretty, but slow, as \ we'll see." }], "Text"], Cell[TextData[{ "3. ", StyleBox["ShowColors[Z]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " will show Z as an array of colored cells, with a different color for each \ height." }], "Text"], Cell[TextData[{ "OK, are we ready to define these things? Not quite. First we need to \ read in an auxiliary ", StyleBox["Mathematica", FontSlant->"Italic"], " package of special graphics commands. Just evaluate this:" }], "Text"], Cell[BoxData[ \(\(Needs["\"];\)\)], "Input"], Cell[TextData[StyleBox[ "It's crucial that you evaluated that first, before the next stuff. Remember \ that if you come back to this notebook later and try to take some shortcuts.", FontSlant->"Italic"]], "Text"], Cell[TextData[{ "Now we are ready. The following horendous cell defines the ", StyleBox["ShowMatrix[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", ", StyleBox["ShowColumns[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", and ", StyleBox["ShowColors[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " functions. These definitions are very technical and there's no need to \ understand how they work. Just evaluate." }], "Text"], Cell[BoxData[{ \(\(Off[General::spell1];\)\), "\n", \(ShowMatrix[mat_]\ := \ MatrixForm[Map[Take[#, {2, L + 1}] &, Take[mat, {2, L + 1}]]]\ /; \ MatrixQ[mat]\), "\n", \(ShowMatrix[ list_]\ := \ \((\(\(Print[ MatrixForm[#]] &\)\ /@ \((Map[\((Take[#, {2, L + 1}])\) &, list, 2])\);\))\)\), "\n", \(ShowColumns[ mat_] := \((\(BarChart3D[ Transpose[ Reverse[ Map[Take[#, {2, L + 1}] &, Take[mat, {2, L + 1}]] - 1]], Axes \[Rule] False, Boxed \[Rule] False, PlotRange \[Rule] {0, 7}];\))\) /; MatrixQ[mat]\), "\n", \(ShowColumns[ list_] := \((\(\((BarChart3D[Transpose[Reverse[#]], Axes \[Rule] False, Boxed \[Rule] False, PlotRange \[Rule] {0, 7}] &)\) /@ \((Map[\((Take[#, {2, L + 1}])\) &, list, 2] - 1)\);\))\)\), "\n", \(ShowColors[ mat_] := \((\(ListDensityPlot[ Reverse[Map[Take[#, {2, L + 1}] &, Take[mat, {2, L + 1}]] + 1], \ ColorFunction -> Hue, \ PlotRange -> {0, 6}, Mesh -> \((L <= 50)\)];\))\) /; \ MatrixQ[mat]\), "\n", \(ShowColors[ list_] := \((\(\((ListDensityPlot[Reverse[#], \ ColorFunction -> Hue, \ PlotRange -> {0, 6}, Mesh -> \((L <= 50)\)] &\ )\) /@ \ \((Map[\((Take[#, {2, L + 1}])\) &, list, 2] + 1)\);\))\)\), "\n", \(\(On[General::spell1];\)\)}], "Input", AspectRatioFixed->True], Cell["Try them out: ", "Text"], Cell[BoxData[ \(ShowMatrix[Z]\)], "Input"], Cell[BoxData[ \(ShowColumns[Z]\)], "Input"], Cell[BoxData[ \(ShowColors[Z]\)], "Input"], Cell["OK? You can use whichever one you like in the future.", "Text"], Cell[TextData[{ "The following expression makes a color key for ", StyleBox["ShowColors[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". Evaluate it and you'll see what I mean." }], "Text"], Cell[BoxData[ \(\(Show[ Graphics[Table[{Hue[\((n + 1)\)/6], Rectangle[{n - 0.5, 0}, {n + 0.5, 1}]}, {n, 1, 6}], AspectRatio -> Automatic], Axes -> {True, False}, Ticks -> {Range[1, 6], None}]; \)\)], "Input"], Cell[TextData[{ "One more thing. I set up all three functions so they'd produce multiple \ pictures if you give them a list of several sandpiles. For example, this \ should produce two identical pictures (note the ", StyleBox["{}", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " brackets to make a list):" }], "Text"], Cell[BoxData[ \(ShowColors[{Z, Z}]\)], "Input"], Cell["\<\ That's less stupid if the pictures are different -- that's how \ we'll make a movie. Here, for example, I add one to the center square \ between the first and second picture:\ \>", "Text"], Cell[BoxData[ \(ShowColors[{Z, \ \((\(++Z[\([4, 4]\)]\); \ Z)\)}]\)], "Input"], Cell[TextData[{ "Look carefully to understand the above expression. It contains ", StyleBox["(", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], StyleBox["stuff", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], StyleBox["; Z)", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", which first evaluates ", StyleBox["stuff", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], " (adding one to the center square) and then returns the value of Z. It's \ a general rule in ", StyleBox["Mathematica", FontSlant->"Italic"], " that you can always use" }], "Text"], Cell[BoxData[ StyleBox[\((subexpression; \ subexpression; \ ...; \ subexpression)\), FontWeight->"Plain"]], "Input", Evaluatable->False], Cell["\<\ whereever an expresion is expected -- it'll evaluate the \ subexpressions in order and return the value of the last one. You don't \ always need the surrounding parentheses -- that depends on the context.\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Adding sand automatically", "Section"], Cell["\<\ It's now very easy to define a function to add sand at random sites \ until one of them is ready to topple (i.e., has height 5 or more):\ \>", "Text"], Cell[BoxData[ \(addsand[] := While[\n\t\t\t\tx = Random[Integer, {2, L + 1}]; \n\t\t\t\ty = Random[Integer, {2, L + 1}]; \n\t\t\t\ \ \(++Z[\([x, y]\)]\) < \ 5\n\t\t]\)], "Input", AspectRatioFixed->True], Cell[TextData[{ "This doesn't produce any output when you evaluate it, because it just \ defines the function ", StyleBox["addsand[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". The contents of the function should look pretty familiar -- it's \ basically just a ", StyleBox["While[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " loop wrapped around what we did before to add a random sand grain. But \ note the \"", StyleBox["< 5", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "\" in the last line -- that's the actual test that the ", StyleBox["While[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " loop is using to know how long to continue looping. It's actually an \ example of using ", StyleBox["While[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " with only one argument: ", StyleBox["While[", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], StyleBox["condition", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], StyleBox["]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " instead of the ", StyleBox["While[", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], StyleBox["condition", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], StyleBox[", ", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], StyleBox["expression", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], StyleBox["]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " form that we've used before. It keeps on evaluating ", StyleBox["condition", FontFamily->"Courier", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], " until it's not true." }], "Text"], Cell["\<\ Do you get this? If you didn't understand the previous paragraph, \ try to figure it out again. If necessary, look back to the end of the \ previous section where I talked about subexpressions separated by semicolons.\ \ \>", "Text"], Cell["Let's try it:", "Text"], Cell[BoxData[ \(addsand[]\)], "Input"], Cell[TextData[{ "Look at the result using one of the display functions. It'll probably \ look quite different than before, because ", StyleBox["addsand[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " probably added quite a few sand grains all over the place until one of \ the columns got to 5. If not, try it again." }], "Text"], Cell[BoxData[ \(ShowColors[Z]\)], "Input"], Cell["Here are two successive additions:", "Text"], Cell[BoxData[ \(ShowColors[{Z, \ \((addsand[]; \ Z)\), \ \((addsand[]; \ Z)\)}]\)], "Input"], Cell[TextData[{ "Of course we should be doing the toppling between each ", StyleBox["addsand[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". That's the next job." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Toppling", "Section"], Cell[TextData[{ "Now things are going to get complicated. In order to make a reasonably \ efficient toppling function, I'm going to have to use some more sophisticated \ ", StyleBox["Mathematica", FontSlant->"Italic"], " programming, which is too complicated to explain in detail. So just \ evaluate the following and then we'll see what it does." }], "Text"], Cell[BoxData[{ \(\(Clear[topple];\)\), "\n", \(\(tcount\ = \ 0;\)\), "\n", \(\(topple = \ Compile[{{r, _Integer, 2}}, MapThread[\((If[#1 > 0, If[#1 < 5, #1 + #2, \((\(++tcount\); #1 + #2 - 4)\)], 0])\) &, {r, Plus @@ \(\((RotateRight[Floor[r\/5.0], #1] &)\) /@ {{\(-1\), 0}, {0, \(-1\)}, {0, 1}, {1, 0}}\)}, 2], {{tcount, _Integer}}];\)\)}], "Input"], Cell[TextData[{ "The function ", StyleBox["topple[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " does one toppling; all sites with height 5 of more are simultaneously \ toppled according to the basic rule given in the introduction. Of course \ this may produce some new sites with height 5 or more, but ", StyleBox["topple[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " doesn't care -- it just does one step. It also keeps a count (in ", StyleBox["tcount", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ") of how many individual topplings it has done." }], "Text"], Cell[TextData[{ "Let's try it. I defined ", StyleBox["topple[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " so that you have to give it the sandpile Z as an argument, and it returns \ the new value (but doesn't change the old). Look at the result of this \ carefully:" }], "Text"], Cell[BoxData[ \(ShowColors[{Z, \ topple[Z], \ Z}]\)], "Input"], Cell["\<\ The first and last pictures should be the same, since topple \ doesn't actually change Z. The middle picture is the result of toppling the \ first.\ \>", "Text"], Cell[TextData[{ "Now for the clever function ", StyleBox["FixedPointList[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". Look at its definition:" }], "Text"], Cell[BoxData[ \(\(?FixedPointList\)\)], "Input"], Cell[TextData[{ "We'll use that to apply ", StyleBox["topple[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " repeatedly to Z until the results no longer change. It'll give us a list \ of all the stages as a result, ready to plug right into ", StyleBox["ShowColors[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " (or ", StyleBox["ShowMatrix[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " or ", StyleBox["ShowColumns[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " if you prefer)." }], "Text"], Cell[BoxData[ \(ShowColors[FixedPointList[topple, \ Z]]\)], "Input"], Cell[TextData[{ "This may have produced quite a few pictures. The last two should be \ identical -- that's how ", StyleBox["FixedPointList[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " knew to stop -- and shouldn't have any Z values above 4. The first \ picture shows the value of Z itself (which still han't been changed). The \ intermediate pictures (if any) show the results of applying ", StyleBox["topple[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " repeatedly, toppling some columns but thereby often raising others above \ the threshold." }], "Text"], Cell[TextData[{ "Depending on how sceptical or curious you are, you may want to check in \ detail that the ", StyleBox["topple[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " function is doing what I've claimed. It may be easier with ", StyleBox["ShowMatrix[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "." }], "Text"], Cell[TextData[{ "Here's the example from Bak's figure 12. First I'll define his 2nd Z \ matrix by hand (adding one to all his values), and then use the above \ procedure with ", StyleBox["ShowMatrix[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ":" }], "Text"], Cell[BoxData[ \(\(Z\ = \ {{0, 0, 0, 0, 0, 0, 0}, {0, 2, 3, 1, 3, 4, 0}, {0, 3, 4, 3, 4, 1, 0}, {0, 2, 3, 5, 4, 3, 0}, {0, 4, 2, 4, 3, 2, 0}, {0, 1, 3, 3, 2, 3, 0}, {0, 0, 0, 0, 0, 0, 0}};\)\)], "Input"], Cell[BoxData[ \(ShowMatrix[FixedPointList[topple, \ Z]]\)], "Input"], Cell["\<\ You can check that this exactly reproduces Bak's sequence, except \ that our numbers are always 1 larger.\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Movie", "Section"], Cell[TextData[{ "If we repeat the above calculation with ", StyleBox["ShowColumns", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " or ", StyleBox["ShowColors", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", we get a sequence of graphics that we can animate. Evaluate one of the \ following expressions and then double-click to the right of one of the \ pictures. You'll probably need to slow it down with the tape-recorder \ controls at the bottom of the window." }], "Text"], Cell[BoxData[ \(ShowColors[FixedPointList[topple, \ Z]]\)], "Input", AnimationDisplayTime->1.70603, AnimationCycleOffset->1, AnimationCycleRepetitions->Infinity], Cell[BoxData[ \(ShowColumns[FixedPointList[topple, \ Z]]\)], "Input", AnimationDisplayTime->0.776525, AnimationCycleOffset->1, AnimationCycleRepetitions->Infinity], Cell["When you've tried one, try the other...", "Text"], Cell[TextData[{ "Optional: You might at this point want to try some larger cases. If so, \ go back to the section on \"Initializing the sandpile\", change L, and \ reevaluate. I don't recommend trying anything larger than L=40 unless you're \ very patient. Then do some ", StyleBox["addsand[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "'s. Then make a movie as above. If you do this though, it's best to go \ back to L=5 before doing the next section." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Multiple avalanches", "Section"], Cell["\<\ So far we've just been looking at one avalanche at a time. To get \ things really going we need to:\ \>", "Text"], Cell[TextData[{ "1. Add sand randomly until a column is ready to topple. That's exactly \ what ", StyleBox["addsand[", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "] does." }], "Text"], Cell[TextData[{ "2. Apply ", StyleBox["topple[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " repeatedly until nothing changes further. That's what we did with ", StyleBox["FixedPointList[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "." }], "Text"], Cell["3. Go back to (1) and repeat.", "Text"], Cell["\<\ Actually we should repeat for some fixed number of times, or the \ program will never stop. We should also collect some data along the way, or \ we won't achieve anything useful. Here's a program that achieves all that. \ Run it now.\ \>", "Text"], Cell[BoxData[ \(Table[\n\taddsand[]; \n\t tcount\ = \ 0; \n\t\ Z = FixedPoint[topple, Z]; \n\t tcount, \n\t\ {10}\n]\)], "Input"], Cell[TextData[{ "The numbers it returns are the numbers of topplings in each of 10 \ successive avalanches, as counted by the ", StyleBox["tcount", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " variable that's built into ", StyleBox["topple[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". If you run it again you'll get different numbers in general. And you \ can get more at a time by changing the 10 in the program." }], "Text"], Cell[TextData[{ "One significant change I made was to use ", StyleBox["FixedPoint[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " instead of ", StyleBox["FixedPointList[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". The difference is that it doesn't save all the intermediate states -- \ it just returns the final state when the avalanche is over. I also reset Z \ to the new value." }], "Text"], Cell[BoxData[ \(\(?FixedPoint\)\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Collecting data", "Section"], Cell["\<\ Here's a version of the above program defined as a function to \ collect m data points:\ \>", "Text"], Cell[BoxData[ \(avalanches[m_]\ := \ Table[\n\taddsand[]; \n\t tcount\ = \ 0; \n\t\ Z = FixedPoint[topple, Z]; \n\t tcount, \n\t\ {m}\n]\)], "Input"], Cell["For example:", "Text"], Cell[BoxData[ \(data\ = avalanches[50]\)], "Input"], Cell["which we can plot directly", "Text"], Cell[BoxData[ \(ListPlot[data]\)], "Input"], Cell[TextData[{ "Try collecting more data points, as many as you have patience for, by \ increasing the 50 above (e.g. to 200, 1000, 5000). ", StyleBox["You may want to put a semicolon at the end to avoid seeing all \ the numbers.", FontSlant->"Italic"], " Then plot them as above." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Distribution plots", "Section"], Cell["\<\ I wrote a function to make plots like Bak's figure 11, given a data \ list such as you produced above. First we need to read in another couple of \ packages:\ \>", "Text"], Cell[BoxData[ \(Needs["\"]; \n Needs["\"]; \)], "Input", AspectRatioFixed->True], Cell[TextData[StyleBox[ "Again, it's crucial that you evaluated that first, before the next stuff. \ Remember that if you come back to this notebook later and try to take some \ shortcuts.", FontSlant->"Italic"]], "Text"], Cell[TextData[{ "Now define the function ", StyleBox["BakPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". You needn't try to understand it." }], "Text"], Cell[BoxData[ \(BakPlot[ data_List /; VectorQ[data, NumberQ]] := \((rf = Reverse /@ Frequencies[data]; \n\t\tzero\ = \ Log[rf[\([1, 2]\)]] // N; \n\t\tlrf\ = \ N[\({Log[#[\([1]\)]], Log[#[\([2]\)]] - zero} &\) /@ Select[rf, \ \((#[\([2]\)] >= 10)\) &]]; If[Length[lrf] < 3, Print["\"], \n\t\tlogfit[ls_] = zero\ + \ Fit[lrf, {ls}, ls]; slope = Coefficient[logfit[ls], ls]; \n\t\tdataplot = LogLogListPlot[rf, PlotRange \[Rule] All, DisplayFunction \[Rule] Identity]; \n\t\tsmax = Max[data]; \n\t\tfitplot = LogLogPlot[Exp[logfit[Log[s]]], {s, 1, smax}, DisplayFunction \[Rule] Identity]; \n\t\tShow[dataplot, fitplot, DisplayFunction \[Rule] $DisplayFunction]; Print["\", slope];])\)\)], "Input", AspectRatioFixed->True], Cell["Try it:", "Text"], Cell[BoxData[ \(BakPlot[data]\)], "Input"], Cell["\<\ This plots the distribution on a log-log scale and fits a straight \ line. It also tells you the slope of the line. A straight line on a log-log \ scale represents a power law for D(s), and the slope gives the power -\[Tau].\ \ \>", "Text"], Cell["\<\ The straight line fit may not be very good if you don't have many \ points. I constrained it to go through the very first point, and ignored all \ points with a count (the vertical axis) less than 10. So it won't work \ sensibly at all if you didn't do what I asked, collecting data to get at \ least 200 points -- go back and do that if you skipped it before.\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["More data", "Section"], Cell[TextData[{ "To give you some better data to work with, I did the same calculation for \ a 50 x 50 lattice, collecting data for 5000 avalanches. That took about 8 \ minutes on my Physics computer using our program. (There are faster ways to \ do it, e.g., using C instead of ", StyleBox["Mathematica", FontSlant->"Italic"], ", but that wasn't the point)." }], "Text"], Cell[TextData[{ "Here's the data. There are actually 5000 numbers in the next cell, but I \ used a special fixed-height cell so there weren't pages of it filling the \ notebook. You can drag on the little box at the bottom of the cell bracket \ to see more or less. Evaluate the cell to define ", StyleBox["bigdata", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "; there a semicolon on the end so you won't see any output." }], "Text"], Cell[BoxData[ \(\(bigdata\ = \ {1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 2, 1, 3, 1, 2, 1, 1, 1, 1, 1, 2, 3, 1, 2, 5, 2, 1, 5, 1, 2, 5, 2, 1, 4, 1, 1, 1, 1, 1, 2, 3, 1, 4, 1, 3, 1, 5, 5, 2, 3, 1, 2, 1, 2, 4, 2, 1, 1, 3, 1, 2, 1, 3, 1, 1, 1, 2, 1, 1, 2, 10, 9, 1, 3, 5, 3, 1, 9, 2, 3, 1, 4, 2, 1, 1, 1, 2, 3, 1, 2, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 4, 2, 1, 1, 1, 3, 2, 4, 8, 1, 2, 1, 1, 3, 2, 5, 9, 1, 4, 1, 7, 1, 1, 1, 1, 1, 1, 12, 2, 2, 1, 3, 2, 12, 1, 6, 4, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 11, 1, 1, 4, 1, 17, 8, 4, 3, 2, 1, 1, 7, 1, 9, 1, 3, 5, 1, 2, 2, 3, 5, 5, 2, 11, 2, 2, 2, 1, 6, 19, 2, 2, 1, 2, 4, 7, 1, 2, 1, 3, 1, 4, 2, 3, 2, 2, 1, 9, 4, 1, 1, 4, 13, 2, 5, 3, 2, 1, 1, 1, 1, 3, 3, 2, 8, 1, 1, 10, 2, 37, 1, 1, 1, 1, 3, 1, 11, 8, 2, 7, 2, 2, 2, 5, 1, 1, 1, 4, 10, 2, 3, 20, 7, 10, 3, 2, 2, 1, 2, 1, 1, 2, 11, 11, 1, 3, 2, 1, 3, 1, 6, 1, 7, 2, 12, 12, 2, 5, 1, 6, 8, 23, 6, 3, 2, 10, 1, 3, 1, 1, 4, 4, 2, 2, 8, 10, 1, 22, 2, 7, 3, 4, 13, 6, 1, 1, 1, 2, 3, 1, 2, 2, 2, 7, 2, 11, 1, 1, 1, 27, 2, 32, 4, 1, 27, 1, 6, 1, 3, 11, 1, 24, 1, 2, 2, 6, 2, 11, 2, 26, 5, 1, 4, 10, 1, 4, 11, 19, 29, 7, 1, 4, 30, 17, 38, 1, 13, 10, 16, 1, 7, 3, 2, 64, 1, 5, 11, 1, 12, 1, 2, 1, 18, 13, 2, 7, 3, 3, 22, 2, 3, 2, 19, 3, 58, 2, 5, 1, 10, 2, 1, 5, 3, 42, 3, 3, 47, 3, 1, 12, 9, 4, 12, 1, 1, 2, 2, 18, 11, 36, 1, 3, 25, 1, 4, 1, 2, 3, 1, 1, 6, 2, 7, 3, 3, 2, 7, 1, 12, 18, 10, 18, 16, 22, 2, 44, 1, 56, 1, 1, 4, 1, 3, 21, 37, 34, 6, 2, 28, 4, 4, 6, 1, 3, 12, 2, 1, 9, 36, 1, 2, 1, 1, 5, 82, 12, 61, 351, 3, 5, 1, 11, 8, 2, 77, 4, 139, 11, 1, 1, 93, 1, 1, 1, 3, 1, 1, 29, 4, 11, 15, 23, 3, 2, 2, 4, 4, 128, 24, 88, 1, 6, 12, 8, 61, 1, 209, 1, 103, 7, 24, 127, 1, 114, 2, 16, 9, 62, 80, 3, 37, 1, 1, 3, 54, 22, 6, 7, 2, 1, 13, 35, 8, 9, 1, 5, 8, 2, 1, 10, 6, 2, 2, 21, 6, 461, 53, 16, 6, 353, 2, 2, 6, 21, 45, 132, 120, 2, 475, 5, 6, 1, 7, 4, 14, 55, 31, 73, 97, 3, 95, 87, 104, 6, 36, 601, 84, 260, 1, 218, 178, 25, 97, 6, 5, 105, 1, 43, 1, 100, 1, 10, 1, 1, 303, 18, 3, 73, 25, 62, 190, 213, 376, 538, 2, 1, 11, 26, 39, 6, 89, 125, 4, 156, 1, 9, 7, 334, 3, 112, 57, 1, 1, 528, 14, 1135, 148, 2, 20, 519, 7, 5, 12, 47, 21, 7, 695, 76, 1, 1, 2, 2, 1, 86, 1, 5, 2, 3, 26, 28, 239, 788, 2, 91, 493, 879, 287, 11, 4, 51, 400, 9, 617, 42, 15, 56, 1, 1715, 5, 2, 290, 665, 2, 99, 21, 10, 1, 1, 387, 478, 1, 455, 69, 27, 1, 4, 102, 1, 520, 4, 2, 18, 62, 5, 96, 2, 4, 43, 24, 174, 879, 121, 6, 241, 258, 12, 129, 1, 30, 323, 523, 79, 2, 256, 1346, 14, 270, 31, 467, 1, 503, 2, 36, 5, 16, 8, 38, 2854, 3, 3122, 4, 190, 68, 10, 64, 5, 637, 1, 2, 2404, 832, 10, 841, 8, 17, 123, 3, 1, 32, 110, 139, 1, 3, 1043, 4, 2, 69, 1, 287, 43, 44, 9, 252, 257, 1, 17, 3, 2, 1, 1, 8, 2, 2, 85, 4, 4, 7, 31, 343, 59, 4, 881, 1, 28, 58, 23, 1, 919, 1079, 2, 905, 54, 4, 33, 2126, 1, 207, 2, 51, 1141, 5, 17, 798, 3, 4, 4, 142, 337, 22, 771, 7, 149, 1, 29, 527, 41, 10, 41, 73, 795, 10, 57, 32, 2, 387, 1111, 1, 21, 622, 20, 214, 2, 381, 144, 5, 6, 36, 191, 95, 5, 414, 31, 143, 1, 1343, 92, 5, 64, 3, 135, 11, 2, 273, 16, 25, 3, 1089, 29, 23, 11, 3, 2, 7, 34, 2, 1, 27, 574, 7, 5, 462, 55, 158, 365, 16, 8, 1, 29, 6, 1, 48, 1670, 14, 9, 634, 389, 17, 608, 26, 2, 1310, 5, 23, 253, 27, 35, 8, 188, 130, 1584, 1, 1101, 5, 46, 279, 236, 252, 15, 21, 1, 7, 213, 1, 1, 8, 2, 791, 209, 112, 487, 14, 884, 158, 77, 754, 1, 66, 1, 4, 90, 623, 66, 7, 1807, 23, 387, 28, 5, 4, 1, 13, 2, 1258, 2010, 71, 6, 134, 181, 73, 25, 8, 5, 7, 5, 6, 8, 45, 28, 2, 950, 12, 2, 18, 40, 90, 3, 2, 3, 43, 63, 8, 3, 1, 2, 105, 1495, 2, 411, 603, 6, 5042, 7, 130, 1, 1, 190, 13, 3, 270, 475, 5, 224, 176, 388, 708, 636, 16, 124, 1, 1, 649, 228, 1, 60, 1, 417, 1, 7, 43, 40, 11, 4, 328, 68, 1, 310, 680, 1, 3, 1, 3, 14, 14, 1, 28, 126, 9, 625, 749, 15, 735, 2, 7, 602, 469, 40, 356, 22, 702, 2, 6, 11, 4, 1, 1326, 3, 14, 17, 32, 115, 48, 250, 487, 2, 11, 18, 354, 3, 13, 2073, 73, 1, 1, 2, 77, 2, 4, 18, 1, 27, 11, 6, 2, 544, 1109, 19, 60, 872, 1761, 4, 2, 188, 7, 49, 1, 596, 2, 15, 6, 1, 2, 820, 914, 6, 1059, 15, 91, 83, 1, 9, 122, 1, 4, 4, 1, 26, 2, 6, 426, 165, 3, 752, 186, 2, 35, 5, 1, 7, 1782, 106, 11, 60, 9, 1, 2, 222, 3, 199, 75, 1, 3, 1071, 25, 18, 2, 51, 53, 24, 2640, 305, 49, 1, 1, 377, 254, 182, 256, 408, 180, 19, 32, 22, 40, 19, 428, 1313, 67, 2, 1, 47, 68, 1070, 1, 19, 61, 1, 5, 4, 564, 1, 814, 224, 73, 14, 29, 6, 910, 3, 972, 55, 2536, 17, 89, 27, 6, 19, 111, 3, 2, 78, 169, 5, 8, 1, 1344, 25, 24, 233, 2, 100, 25, 121, 197, 9, 3, 1120, 418, 302, 40, 1, 592, 362, 51, 1, 117, 3, 73, 1122, 2, 7, 730, 3, 7, 622, 27, 1, 19, 279, 18, 180, 40, 58, 4, 42, 1, 216, 59, 604, 1, 11, 43, 964, 182, 69, 1, 146, 123, 3, 102, 9, 30, 7, 29, 106, 202, 1, 4, 1, 33, 7, 17, 1, 1, 101, 1620, 5, 1, 3, 1, 121, 971, 46, 3, 40, 8, 1, 11, 1748, 1058, 102, 2, 1, 12, 14, 15, 1286, 3193, 48, 74, 546, 55, 2472, 125, 6, 101, 1237, 277, 1096, 21, 32, 8, 1, 355, 19, 28, 64, 7, 12, 431, 8, 38, 139, 8, 82, 79, 158, 6, 1110, 2, 15, 975, 19, 2, 121, 758, 238, 41, 1, 244, 27, 17, 240, 509, 6, 5, 554, 108, 23, 1, 3, 89, 628, 141, 220, 3, 2, 204, 100, 42, 192, 140, 414, 35, 94, 9, 1, 1, 337, 25, 94, 5, 54, 2442, 1, 5, 5, 7, 2291, 2699, 13, 2, 1420, 14, 24, 25, 1, 57, 5, 55, 1, 32, 62, 4, 61, 55, 28, 68, 906, 9, 27, 24, 1, 22, 155, 11, 8, 5, 22, 115, 9, 22, 5, 2713, 151, 780, 75, 203, 144, 82, 46, 189, 10, 1, 95, 1, 60, 2, 71, 2, 64, 139, 11, 3, 21, 4, 39, 1, 5, 4, 526, 14, 2, 178, 5, 2, 270, 3, 3, 678, 20, 136, 5, 102, 211, 125, 46, 10, 19, 3, 3368, 647, 413, 11, 2175, 50, 1, 1, 29, 3, 208, 1, 2, 15, 2128, 19, 39, 7, 4, 40, 20, 256, 27, 220, 696, 1, 1326, 5, 23, 1, 2, 2, 247, 1, 34, 1, 606, 699, 10, 125, 2, 1, 1629, 449, 1, 5, 44, 86, 4, 5, 3, 3, 9, 48, 262, 7, 19, 1628, 89, 21, 126, 660, 13, 53, 2, 10, 3, 8, 25, 21, 30, 1, 1, 1, 759, 1, 229, 357, 34, 261, 1, 2, 365, 1, 109, 21, 93, 1, 258, 182, 1, 2, 361, 1556, 2, 190, 5, 5, 64, 1, 1, 371, 1, 1, 8, 4, 5, 596, 1, 56, 7, 2, 393, 157, 330, 409, 24, 1, 7, 129, 1, 9, 7, 299, 350, 23, 403, 237, 6, 140, 445, 12, 14, 620, 1, 39, 2106, 42, 38, 32, 528, 1284, 563, 1, 302, 412, 26, 21, 34, 11, 471, 143, 13, 35, 102, 1126, 547, 649, 6, 81, 2, 4, 1, 286, 6, 41, 49, 29, 237, 37, 148, 5068, 167, 1, 72, 1, 122, 1548, 482, 53, 93, 34, 130, 907, 345, 17, 75, 41, 639, 37, 219, 4, 2, 97, 121, 5, 497, 1, 32, 126, 494, 433, 4, 1, 577, 63, 273, 2, 30, 9, 1, 7, 5, 1, 4, 40, 1, 1147, 57, 184, 17, 37, 100, 1, 11, 2, 1, 32, 967, 199, 2354, 3, 16, 59, 252, 1, 1, 1, 360, 5, 151, 11, 8, 5, 4, 401, 46, 24, 49, 6, 17, 1, 163, 1, 352, 5, 151, 1014, 1000, 12, 1, 1239, 133, 267, 82, 63, 21, 79, 3, 2162, 13, 4, 21, 213, 6, 122, 3, 801, 267, 707, 1188, 13, 1, 3, 1, 131, 137, 171, 8, 53, 226, 365, 2, 1, 2, 1377, 9, 18, 38, 178, 3, 5, 3, 7, 21, 1000, 325, 2, 21, 16, 5, 47, 259, 58, 1121, 2, 295, 105, 1, 1551, 649, 55, 7, 1055, 3, 255, 79, 46, 1517, 30, 1278, 59, 94, 22, 620, 14, 43, 16, 29, 3, 189, 4, 64, 2, 1, 29, 722, 232, 3, 316, 125, 8, 13, 3, 7, 11, 295, 93, 79, 150, 1, 37, 3, 1, 105, 323, 6, 2, 123, 1, 131, 9, 44, 2509, 9, 3, 221, 6, 1, 27, 1, 22, 678, 127, 42, 2, 1, 313, 14, 1, 14, 2, 3482, 155, 625, 234, 11, 10, 1279, 33, 9, 61, 1017, 314, 219, 311, 1, 7, 226, 25, 205, 89, 6, 534, 55, 445, 13, 163, 167, 2, 4, 4, 108, 7, 3, 259, 80, 9, 8, 23, 346, 2, 1, 708, 1, 2, 82, 27, 1, 2, 1, 11, 371, 2, 1160, 21, 8, 784, 5, 36, 21, 60, 9, 17, 46, 287, 12, 16, 201, 1451, 2, 1, 1, 130, 2, 7, 29, 3, 244, 8, 179, 15, 48, 98, 5, 418, 2, 170, 2, 138, 124, 75, 1477, 53, 3, 34, 94, 14, 2154, 2, 34, 297, 17, 53, 38, 22, 10, 46, 9, 32, 3, 85, 1071, 470, 2, 2170, 9, 1, 1, 499, 423, 1, 217, 32, 498, 678, 73, 656, 188, 48, 12, 220, 121, 16, 2873, 60, 9, 150, 21, 3, 14, 417, 1, 1, 58, 5, 10, 1, 117, 3189, 33, 6, 3, 183, 423, 4, 93, 2, 20, 257, 1353, 518, 180, 367, 6, 206, 1, 22, 257, 14, 7, 1, 142, 2, 4, 28, 285, 441, 9, 1118, 545, 1, 1, 4, 24, 218, 733, 1753, 15, 7, 19, 13, 684, 412, 4, 28, 121, 1, 763, 27, 1, 352, 2, 197, 1, 1, 1783, 1019, 1, 2, 5, 25, 78, 1, 3665, 159, 10, 98, 7, 2, 660, 1, 1, 266, 5, 1, 11, 2, 94, 55, 20, 62, 9, 3, 186, 1, 7, 163, 2, 124, 1030, 135, 1, 15, 10, 431, 118, 177, 141, 4, 69, 32, 570, 13, 45, 8, 8, 4, 1765, 4, 8, 1, 70, 12, 22, 11, 21, 58, 986, 301, 8, 2, 334, 31, 57, 4, 2105, 73, 8, 2, 111, 6, 1396, 34, 88, 10, 1125, 10, 416, 3, 23, 1121, 2, 276, 389, 6, 14, 3, 538, 629, 138, 971, 290, 94, 44, 1, 22, 148, 208, 1, 2, 20, 765, 290, 7, 186, 155, 4, 37, 1, 1, 125, 75, 759, 384, 47, 4, 1119, 1, 15, 217, 131, 11, 34, 1, 2, 3, 18, 1, 5, 5, 1, 95, 1, 1, 85, 1356, 15, 6, 14, 7, 1, 1, 5, 90, 11, 5, 1, 4, 13, 1, 3, 501, 302, 1412, 65, 98, 33, 109, 234, 1, 13, 51, 31, 5, 758, 489, 2, 1, 24, 4, 22, 1, 1, 6, 1, 1, 77, 3563, 18, 30, 5, 42, 2, 6, 42, 1, 7, 2135, 559, 2, 4, 17, 22, 34, 31, 4, 72, 1227, 1, 40, 10, 10, 4, 52, 951, 74, 4, 134, 1, 9, 4, 2, 174, 1, 1693, 1, 14, 5, 185, 1610, 1, 2, 1, 24, 6705, 287, 2, 7, 2, 102, 1038, 270, 10, 1007, 33, 1, 404, 90, 1475, 963, 14, 9, 751, 16, 1, 395, 1, 3, 96, 2, 389, 169, 27, 212, 459, 131, 35, 16, 1, 42, 22, 451, 32, 686, 1, 3, 3, 1058, 288, 8, 4, 9, 83, 7, 16, 5, 11, 1, 17, 16, 44, 429, 1219, 34, 2, 1, 864, 1, 798, 172, 22, 5, 27, 284, 26, 7, 11, 48, 112, 2, 27, 236, 3, 40, 12, 148, 1, 2, 846, 9, 293, 35, 35, 102, 615, 2, 4, 62, 168, 1295, 6, 82, 100, 9, 41, 26, 4, 10, 3, 2, 19, 191, 655, 865, 160, 467, 694, 2, 1, 40, 1168, 233, 172, 7, 1, 349, 89, 545, 76, 1, 4, 12, 2509, 26, 48, 55, 1, 2, 54, 257, 323, 16, 186, 5, 25, 992, 100, 184, 64, 16, 2, 1, 1, 53, 1, 56, 7, 8, 259, 18, 830, 99, 705, 30, 1, 321, 20, 1005, 381, 4, 125, 1, 17, 203, 1859, 11, 1, 156, 47, 39, 32, 72, 24, 5, 275, 3, 1, 199, 55, 333, 118, 18, 74, 22, 11, 12, 485, 25, 191, 445, 29, 67, 3, 63, 2, 5, 47, 84, 1, 375, 23, 710, 143, 81, 420, 4, 361, 378, 82, 28, 1, 92, 24, 14, 43, 2, 1, 40, 86, 1333, 1814, 56, 7, 4, 1, 15, 1664, 108, 70, 2752, 50, 27, 18, 384, 161, 2, 2446, 5, 756, 5, 25, 1, 2, 315, 2, 8, 450, 10, 330, 2, 7, 134, 1, 1, 155, 5, 1, 124, 12, 1, 1929, 9, 3, 29, 52, 1, 2264, 1, 1617, 249, 39, 30, 21, 1, 307, 1, 12, 11, 7, 37, 2, 5, 6, 4, 39, 1463, 577, 11, 144, 1, 291, 971, 1375, 264, 176, 1, 1, 516, 3, 1, 8, 7, 4, 1, 1, 7, 28, 2, 32, 107, 232, 6, 1, 5, 26, 2, 5, 50, 15, 401, 1, 209, 4, 1166, 32, 244, 1032, 8, 2, 6, 2, 3, 39, 60, 65, 321, 38, 10, 181, 2, 16, 10, 3, 22, 538, 33, 106, 1, 4, 19, 40, 209, 1085, 453, 15, 12, 1, 3, 15, 1169, 9, 421, 283, 2944, 3, 1, 3, 53, 1, 24, 65, 12, 4, 579, 12, 14, 4, 197, 1236, 2, 5, 7, 77, 704, 7, 52, 1, 5, 119, 3, 195, 5, 899, 3, 35, 66, 1876, 1, 3, 690, 22, 11, 31, 6, 97, 7, 1, 96, 59, 1547, 588, 2, 5, 33, 28, 253, 34, 1, 21, 201, 64, 28, 933, 1, 57, 3, 151, 451, 1002, 51, 5, 68, 258, 25, 10, 1, 22, 9, 4, 16, 5, 12, 1, 135, 1111, 8, 2006, 19, 12, 2, 8, 91, 147, 2, 21, 92, 353, 2, 39, 7, 185, 3, 28, 215, 20, 719, 2, 86, 25, 66, 283, 43, 3, 1397, 768, 3, 1, 1, 46, 656, 1, 24, 1, 2, 10, 394, 633, 2, 363, 2, 3, 12, 11, 5, 1, 100, 2, 23, 601, 18, 1, 11, 4, 1, 12, 11, 2, 23, 7, 359, 21, 2, 19, 8, 1026, 2, 20, 6, 1, 8, 25, 1665, 1, 261, 4, 920, 6, 1, 206, 1054, 1, 40, 194, 578, 356, 656, 2, 30, 26, 1892, 2025, 59, 480, 7, 78, 5, 260, 8, 217, 3779, 474, 5, 38, 1, 549, 41, 121, 151, 432, 117, 663, 7, 12, 481, 142, 1, 3, 14, 26, 5, 1, 260, 77, 6, 1, 499, 34, 11, 53, 7, 1, 120, 2129, 6, 15, 483, 17, 1, 134, 63, 14, 2141, 112, 84, 10, 158, 11, 6, 9, 1336, 37, 6, 18, 695, 56, 40, 11, 382, 296, 349, 7, 1596, 46, 140, 107, 4, 51, 8, 3, 19, 310, 5, 1, 550, 9, 386, 1193, 35, 7, 1, 37, 7, 64, 5, 3, 2, 17, 3, 181, 1, 804, 993, 485, 26, 425, 25, 30, 85, 20, 1, 1194, 2223, 8, 25, 12, 1771, 106, 14, 701, 1, 6, 640, 29, 51, 8, 29, 38, 628, 1, 103, 488, 11, 274, 10, 1, 338, 9, 1, 1, 257, 2, 3, 27, 8, 435, 1, 4, 18, 450, 13, 154, 66, 11, 60, 201, 66, 1, 23, 1, 2, 1, 88, 1, 1, 23, 1, 4162, 17, 96, 52, 1, 1, 48, 116, 3, 18, 89, 173, 1, 2111, 507, 416, 9, 219, 158, 2, 5, 2, 162, 152, 114, 127, 2, 119, 146, 311, 590, 210, 1, 18, 28, 127, 87, 26, 16, 16, 10, 1, 40, 1253, 2, 17, 2, 1, 1, 145, 2, 4, 1, 3, 13, 3, 1, 17, 40, 13, 64, 2896, 24, 1482, 56, 59, 1914, 8, 46, 4, 5, 605, 2, 88, 3, 2369, 12, 5, 96, 348, 227, 2, 103, 108, 1, 125, 693, 8, 1, 1, 1, 15, 1, 11, 600, 2, 106, 1, 77, 7, 3, 2, 17, 10, 25, 7, 562, 934, 44, 9, 62, 2854, 10, 32, 2, 1, 12, 12, 185, 1, 34, 1164, 4, 144, 275, 66, 3, 3634, 1, 2, 1391, 1, 69, 1, 1, 8, 1882, 72, 16, 23, 2, 20, 21, 22, 4, 66, 352, 1115, 1797, 1, 2, 6, 30, 564, 6, 5, 1, 71, 1, 18, 15, 2, 69, 8, 3, 1, 659, 2, 7, 75, 33, 9, 3, 121, 3, 1, 611, 8, 592, 129, 2, 14, 16, 2, 87, 4, 74, 1, 136, 1037, 33, 54, 106, 1, 12, 147, 18, 1244, 15, 15, 5, 67, 1, 1, 76, 47, 58, 2, 2, 864, 17, 2233, 227, 95, 18, 351, 1424, 1, 1, 1, 21, 1, 3, 6, 4, 99, 2, 963, 9, 1, 117, 549, 1277, 8, 5, 1, 4, 1732, 513, 3, 4, 13, 2, 141, 43, 123, 3, 3, 27, 40, 1, 1204, 1266, 21, 43, 80, 73, 2, 36, 63, 2, 16, 24, 131, 1, 1714, 590, 20, 1, 1, 771, 2, 13, 2, 509, 2, 179, 2, 4, 754, 436, 209, 8, 206, 1, 62, 118, 66, 1626, 1873, 1, 1, 3, 1, 15, 16, 3, 4, 27, 5, 20, 131, 5, 159, 4, 204, 5, 8, 139, 10, 241, 189, 12, 311, 10, 223, 3, 10, 1, 7, 2135, 881, 697, 36, 102, 1, 18, 1115, 9, 30, 52, 90, 1, 183, 21, 57, 3820, 12, 896, 4, 16, 714, 2, 12, 17, 68, 109, 113, 127, 5, 2, 1961, 1, 69, 659, 16, 10, 271, 436, 37, 1077, 28, 168, 30, 36, 1, 174, 9, 762, 4, 567, 121, 485, 16, 1633, 23, 160, 75, 106, 128, 3, 10, 1, 1, 113, 4, 217, 35, 44, 86, 41, 139, 2, 72, 1, 869, 266, 100, 3, 1586, 709, 90, 121, 32, 378, 5, 152, 2, 3, 68, 921, 4, 1735, 41, 148, 40, 110, 1744, 311, 172, 3, 8, 43, 719, 5, 2, 2, 2, 20, 5, 77, 200, 9, 1, 180, 115, 3, 403, 2, 5, 992, 245, 614, 1716, 106, 323, 25, 14, 408, 1, 68, 35, 9, 49, 538, 12, 365, 670, 655, 10, 199, 40, 13, 59, 717, 232, 492, 10, 4, 323, 34, 2, 6, 51, 807, 2, 28, 2, 23, 84, 3, 1, 74, 1, 4, 21, 1763, 32, 940, 30, 5, 67, 15, 14, 43, 13, 52, 1, 80, 875, 383, 33, 24, 5, 2, 1, 14, 33, 2024, 2, 2, 1, 6, 114, 42, 12, 160, 82, 199, 9, 88, 1, 75, 2, 2, 1, 516, 802, 86, 331, 3, 4, 3, 118, 123, 36, 95, 20, 910, 53, 31, 928, 69, 14, 73, 5, 5, 824, 1, 1151, 31, 147, 176, 1, 2, 33, 105, 347, 169, 337, 6, 2, 1, 45, 18, 613, 13, 11, 3, 559, 26, 543, 624, 7, 185, 1, 17, 1, 338, 1, 2, 635, 266, 1, 11, 1731, 21, 239, 1933, 8, 5, 24, 60, 1521, 22, 7, 3, 61, 1, 965, 11, 1203, 6, 5, 3, 1, 226, 197, 165, 8, 791, 10, 1, 63, 17, 79, 2, 4, 63, 241, 6, 195, 5, 9, 172, 200, 196, 40, 218, 91, 4, 3, 532, 445, 1, 9, 3, 638, 375, 26, 43, 8, 10, 265, 1, 14, 303, 2, 967, 1, 1141, 1985, 7, 14, 5, 3, 2, 749, 399, 29, 89, 512, 43, 5, 218, 5, 35, 470, 87, 2, 13, 177, 16, 1836, 104, 3, 62, 107, 10, 257, 12, 2, 2, 9, 1, 37, 573, 1, 27, 133, 1, 7, 9, 1, 4012, 7, 3, 2, 190, 1, 9, 33, 517, 223, 9, 1, 371, 27, 693, 13, 407, 14, 32, 2, 10, 2083, 52, 6, 20, 160, 177, 274, 173, 14, 49, 484, 52, 8, 1, 367, 960, 44, 30, 298, 19, 13, 48, 452, 468, 42, 6, 3, 12, 70, 1, 1, 7, 651, 247, 1, 199, 1260, 550, 1542, 46, 10, 14, 1, 1381, 6, 43, 100, 3, 13, 58, 2, 14, 95, 3, 55, 5, 44, 1, 546, 100, 13, 384, 7, 62, 2, 2, 301, 1, 13, 235, 1, 30, 544, 376, 359, 890, 1, 4, 1, 1183, 204, 9, 61, 298, 1, 15, 1829, 3, 1, 19, 8, 8, 224, 1, 51, 1, 3, 10, 680, 7, 17, 33, 1, 115, 4, 374, 103, 17, 491, 171, 14, 5, 1305, 45, 169, 94, 9, 67, 306, 1384, 1260, 52, 72, 279, 119, 16, 47, 692, 1947, 3, 26, 56, 1044, 80, 77, 3, 1, 1, 39, 1, 1, 3, 405, 8, 89, 519, 28, 75, 9, 9, 12, 112, 1, 899, 55, 307, 157, 1892, 797, 7, 1, 675, 50, 36, 117, 3, 53, 76, 28, 381, 85, 4, 6, 20, 1, 5, 1, 15, 287, 27, 22, 4, 6, 1, 612, 1563, 1, 5, 111, 1, 150, 2, 437, 76, 5, 4, 14, 20, 3, 35, 2, 694, 105, 2, 303, 6, 209, 7, 1769, 160, 1474, 707, 222, 1, 29, 1, 3, 96, 1755, 262, 10, 288, 2, 235, 64, 4, 7, 603, 22, 12, 4, 102, 3, 42, 805, 10, 14, 15, 12, 13, 664, 6, 645, 1, 142, 11, 58, 56, 2, 705, 26, 47, 36, 2, 521, 19, 415, 2, 362, 15, 41, 6, 21, 45, 6, 1068, 2, 29, 45, 116, 3, 17, 11, 1533, 1, 1, 55, 309, 4, 4, 68, 4, 3, 227, 652, 2, 2, 13, 1108, 3, 1, 313, 943, 10, 7, 2, 5, 3, 90, 83, 10, 133, 119, 55, 8, 4, 72, 7, 2, 1, 3, 7, 997, 34, 41, 3406, 3, 223, 3, 1249, 1108, 83, 15, 2, 153, 39, 1, 97, 10, 1, 41, 103, 756, 25, 12, 32, 214, 344, 3, 36, 413, 206, 346, 564, 5, 39, 4, 6, 83, 14, 129, 144, 32, 3, 7, 545, 2, 43, 140, 132, 9, 56, 78, 6, 117, 73, 3, 2, 87, 4, 1, 1, 1, 3, 2036, 185, 40, 195, 2, 78, 516, 1, 60, 88, 55, 11, 549, 1, 1, 1, 2273, 275, 1350, 4, 20, 1, 2, 1, 116, 72, 568, 9, 6, 1017, 15, 1, 261, 10, 181, 1945, 327, 457, 2, 2, 1, 68, 27, 55, 54, 2, 281, 59, 2, 22, 57, 5, 3, 12, 1149, 13, 7, 2, 11, 47, 675, 733, 808, 47, 98, 4, 1, 1, 234, 157, 347, 585, 168, 1, 3, 33, 15, 2036, 1, 9, 2, 1128, 95, 28, 57, 7, 9, 11, 37, 28, 1, 5, 42, 1, 38, 16, 132, 2056, 27, 118, 2120, 12, 880, 1, 14, 11, 75, 166, 933, 56, 855, 106, 29, 156, 891, 1373, 14, 2, 16, 383, 19, 120, 3, 1, 718, 10, 193, 7, 1122, 243, 2, 3, 1, 1, 28, 2043, 122, 28, 1, 16, 2, 23, 1783, 18, 10, 647, 40, 235, 2, 10, 127, 976, 19, 18, 97, 6, 2, 263, 53, 8, 461, 255, 1896, 10, 1, 83, 35, 1, 2, 24, 889, 3, 2, 777, 2, 178, 73, 2, 6, 1, 11, 1, 51, 800, 133, 1058, 10, 2, 17, 1, 1, 10, 9, 346, 10, 37, 36, 13, 359, 1629, 3, 1, 1, 1, 83, 470, 242, 20, 420, 52, 159, 16, 3, 16, 8, 3197, 101, 31, 17, 46, 2, 1, 230, 2, 62, 905, 3, 452, 4, 211, 1, 1254, 2, 195, 67, 4, 5, 990, 21, 10, 18, 821, 404, 396, 19, 21, 12, 30, 3, 2639, 18, 30, 726, 1, 8, 303, 10, 2214, 1, 166, 7, 4, 9, 3, 7, 2, 1, 19, 2, 3, 43, 7, 1, 7, 11, 5, 153, 1, 4, 2, 4, 2030, 7, 4, 18, 33, 2, 16, 40, 35, 1, 7, 1, 919, 3, 216, 2, 1, 722, 1904, 4, 59, 60, 134, 9, 1, 552, 1, 98, 1, 133, 2, 45, 200, 702, 1, 359, 428, 2, 783, 1, 20, 191, 486, 693, 2, 3, 12, 13, 4, 3, 48, 187, 102, 266, 28, 219, 1417, 3, 4, 382, 32, 2, 77, 1, 213, 74, 1, 1, 915, 38, 2, 141, 4, 245, 1, 1, 307, 35, 3, 7, 525, 4, 923, 724, 140, 44, 594, 1574, 3, 2, 1, 2, 26, 183, 18, 2, 8, 1, 1, 2, 2, 1, 7, 6, 208, 2, 1116, 6, 83, 57, 1, 23, 49, 1092, 3, 44, 1, 1, 3, 1, 98, 1115, 647, 1, 53, 10, 2, 1, 122, 1670, 10, 44, 1, 582, 1, 6, 1, 18, 459, 1, 781, 1, 52, 8, 667, 1, 6, 27, 6, 62, 10, 2504, 7, 2539, 30, 16, 30, 52, 54, 13, 30, 2, 2, 202, 331, 218, 15, 2, 73, 1, 352, 555, 70, 4, 20, 154, 37, 340, 15, 209, 26, 149, 1, 8, 137, 53, 1, 1687, 3, 2, 4, 5, 4, 2, 1076, 8, 51, 102, 2, 25, 804, 1, 2, 900, 31, 647, 1, 12, 17, 27, 8, 1400, 2464, 22, 68, 4, 57, 760, 4, 3, 17, 3, 215, 36, 16, 2, 1, 1, 358, 19, 105, 3, 10, 125, 47, 44, 30, 1, 19, 13, 49, 30, 263, 793, 4, 13, 15, 33, 1, 555, 154, 59, 10, 182, 738, 1, 7, 106, 545, 613, 1, 149, 426, 28, 8, 16, 52, 521, 6, 82, 12, 1142, 90, 282, 36, 259, 1, 11, 165, 690, 2, 88, 41, 1, 105, 6, 274, 10, 12, 124, 2, 303, 399, 6071, 4, 1, 16, 4, 764, 1172, 210, 215, 20, 109, 1, 1, 877, 1, 1, 1, 30, 2, 83, 3091, 870, 2, 12, 117, 17, 694, 112, 1, 65, 6, 8, 1, 1429, 1, 139, 2590, 2, 5, 187, 234, 12, 714, 11, 5, 841, 1, 333, 53, 38, 2, 7, 9, 53, 12, 1, 11, 228, 203, 5, 29, 1, 1, 5, 21, 39, 3, 1, 132, 183, 153, 4, 57, 61, 3, 18, 336, 1, 216, 1, 7, 1, 82, 1, 61, 355, 3, 462, 2, 1, 1, 18, 1, 2, 24, 1419, 335, 1258, 1, 57, 6, 8, 83, 632, 18, 17, 1, 2936, 22, 5, 2, 137, 81, 205, 33, 200, 2, 2, 423, 5, 1, 12, 18, 3, 244, 29, 863, 63, 54, 109, 10, 1, 309, 1843, 3, 79, 182, 726, 42, 1, 9, 78, 10, 1169, 118, 142, 262, 5, 3, 5, 104, 8, 11, 451, 23, 3, 935, 96, 2, 46, 13, 26, 91, 452, 60, 4, 35, 16, 2, 1, 11, 68, 6, 2, 729, 459, 1, 15, 11, 1327, 585, 1, 46, 24, 2, 15, 1, 6, 43, 1, 1, 2, 6, 18, 17, 1, 26, 2, 2284, 191, 291, 185, 204, 3, 884, 335, 4, 11, 4, 1, 5, 261, 24, 3, 15, 17, 65, 2141, 1, 78, 65, 2, 6, 2, 165, 658, 4, 338, 1, 205, 63, 184, 167, 131, 24, 8, 6, 1120, 9, 689, 64, 448, 1, 18, 28, 774, 2, 270, 2, 2, 116, 791, 3, 602, 223, 257, 355, 1, 1, 2, 1, 98, 2, 6, 2, 86, 644, 22, 1059, 72, 2, 6, 8, 9, 13, 21, 16, 160, 5, 2, 202, 37, 259, 12, 19, 108, 3, 10, 8, 8, 6, 23, 15, 6, 22, 2199, 3247, 2, 16, 8, 116, 33};\)\)], "Input", CellSize->{Inherited, 78.125}], Cell["Plot it. ", "Text"], Cell[BoxData[ \(ListPlot[bigdata]\)], "Input"], Cell[TextData[{ "Actually this isn't showing all the points. ", StyleBox["ListPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ", like lots of other plotting functions in Mathematica, tries to show you \ only the \"interesting\"points, ignoring rare \"outliers\". But in this case \ it misguesses. We can force it show everything with a ", StyleBox["PlotRange->All", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " option:" }], "Text"], Cell[BoxData[ \(ListPlot[bigdata, PlotRange -> All]\)], "Input"], Cell["\<\ The vast majority of the 5000 points are down in the black area \ close to the axis.\ \>", "Text"], Cell["\<\ Do you see the gradual build up to the critical state? The system \ wasn't there initially, as evidenced by the lack of big avalanches at first \ (remember; the vertical axis shows the avalanche sizes, in number of \ topplings).\ \>", "Text"], Cell[TextData[{ "If we want to get a good power law plot, we should remove the first part, \ say the first 1000 steps. The ", StyleBox["Drop[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " function will do that for us:" }], "Text"], Cell[BoxData[ \(\(bigdata\ = \ Drop[bigdata, \ 1000];\)\)], "Input"], Cell["Plot again to check:", "Text"], Cell[BoxData[ \(ListPlot[bigdata, PlotRange -> All]\)], "Input"], Cell[TextData[{ "Now try ", StyleBox["BakPlot[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ":" }], "Text"], Cell[BoxData[ \(BakPlot[bigdata]\)], "Input"], Cell["\<\ It really does look like a power law (straight line on a log-log \ plot), with slope around -1. But there's a lot of variation on the \ right-hand side, and we'd really need much more data to pin things if this \ were a research project. You could use up a lot of computer time that way...\ \ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Exercise", "Section"], Cell[TextData[{ "As an exercise, to show me you've mastered this notebook, we'll try an \ interesting variation: ", StyleBox["adding sand only at the center site", FontSlant->"Italic"], ". Do the following (showing me what you've done, as always)" }], "Text"], Cell["\<\ 1. Set L to 15 and initialize the sandpile to Z=1 (except the \ boundary of course).\ \>", "Text"], Cell[TextData[{ "2. Modify the ", StyleBox["addsand[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " function so it only adds sand at the center." }], "Text"], Cell[TextData[{ "3. Do exactly 83 avalanches by evaluating ", StyleBox["avalanches[83]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ". That'll take a while. The last four values (number of topplings) listed \ should be 399, 6, 1, 1, or you've done something wrong." }], "Text"], Cell[TextData[{ "4. Display the Z matrix (with ", StyleBox["ShowMatrix[Z]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ") and print the result for verification." }], "Text"], Cell["\<\ 5. Describe and explain the general features of what you see, \ including the symmetry. Why is it so symmetric? Why are the sites near the \ corners all at 1?\ \>", "Text"], Cell[TextData[{ "6. Optional: Add one more grain of sand (with ", StyleBox["addsand[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], ") and watch the next avalanche as a movie. It has about 20 frames." }], "Text"], Cell[TextData[{ "7. Optional: Put ", StyleBox["ShowColors[Z]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], "; into the ", StyleBox["avalanches[]", FontFamily->"Courier", FontSize->12, FontWeight->"Bold"], " function, so it shows you the result after each avalanche. Run it for 10 \ or so steps. View the resulting pictures as a movie." }], "Text"] }, Closed]] }, FrontEndVersion->"5.0 for X", ScreenRectangle->{{0, 1280}, {0, 1024}}, CellGrouping->Manual, WindowSize->{521, 584}, WindowMargins->{{Automatic, 231}, {Automatic, 132}}, PrintingPageRange->{Automatic, Automatic}, PrintingOptions->{"PaperSize"->{612, 792}, "PaperOrientation"->"Portrait", "Magnification"->1}, StyleDefinitions -> Notebook[{ Cell[CellGroupData[{ Cell["Style Definitions", "Subtitle"], Cell["\<\ Modify the definitions below to change the default appearance of \ all cells in a given style. Make modifications to any definition using \ commands in the Format menu.\ \>", "Text"], Cell[CellGroupData[{ Cell["Style Environment Names", "Section"], Cell[StyleData[All, "Working"], PageWidth->WindowWidth, ScriptMinSize->9], Cell[StyleData[All, "Presentation"], PageWidth->WindowWidth, ScriptMinSize->12, FontSize->16], Cell[StyleData[All, "Condensed"], PageWidth->WindowWidth, CellBracketOptions->{"Margins"->{1, 1}, "Widths"->{0, 5}}, ScriptMinSize->8, FontSize->11], Cell[StyleData[All, "Printout"], PageWidth->PaperWidth, ScriptMinSize->5, FontSize->10, PrivateFontOptions->{"FontType"->"Outline"}] }, Closed]], Cell[CellGroupData[{ Cell["Notebook Options", "Section"], Cell["\<\ The options defined for the style below will be used at the \ Notebook level.\ \>", "Text"], Cell[StyleData["Notebook"], PageHeaders->{{Cell[ TextData[ { CounterBox[ "Page"]}], "PageNumber"], None, Cell[ TextData[ { ValueBox[ "FileName"]}], "Header"]}, {Cell[ TextData[ { ValueBox[ "FileName"]}], "Header"], None, Cell[ TextData[ { CounterBox[ "Page"]}], "PageNumber"]}}, CellFrameLabelMargins->6, StyleMenuListing->None] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Headings", "Section", FontColor->RGBColor[0, 0, 1]], Cell[CellGroupData[{ Cell[StyleData["Title"], CellMargins->{{12, Inherited}, {20, 40}}, CellGroupingRules->{"TitleGrouping", 0}, PageBreakBelow->False, CounterIncrements->"Title", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}, { "Subtitle", 0}, {"Subsubtitle", 0}}, FontFamily->"Helvetica", FontSize->36, FontWeight->"Bold", FontColor->RGBColor[0, 0, 1]], Cell[StyleData["Title", "Presentation"], CellMargins->{{24, 10}, {20, 40}}, LineSpacing->{1, 0}, FontSize->44], Cell[StyleData["Title", "Condensed"], CellMargins->{{8, 10}, {4, 8}}, FontSize->20], Cell[StyleData["Title", "Printout"], CellMargins->{{2, 10}, {15, 30}}, FontSize->24] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subtitle"], CellMargins->{{12, Inherited}, {10, 15}}, CellGroupingRules->{"TitleGrouping", 10}, PageBreakBelow->False, CounterIncrements->"Subtitle", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}, { "Subsubtitle", 0}}, FontFamily->"Helvetica", FontSize->24, FontColor->RGBColor[0, 0, 1]], Cell[StyleData["Subtitle", "Presentation"], CellMargins->{{24, 10}, {15, 20}}, LineSpacing->{1, 0}, FontSize->36], Cell[StyleData["Subtitle", "Condensed"], CellMargins->{{8, 10}, {4, 4}}, FontSize->14], Cell[StyleData["Subtitle", "Printout"], CellMargins->{{2, 10}, {10, 15}}, FontSize->18] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subsubtitle"], CellMargins->{{12, Inherited}, {10, 20}}, CellGroupingRules->{"TitleGrouping", 20}, PageBreakBelow->False, CounterIncrements->"Subsubtitle", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}}, FontFamily->"Helvetica", FontSize->14, FontSlant->"Italic", FontColor->RGBColor[0, 0, 1]], Cell[StyleData["Subsubtitle", "Presentation"], CellMargins->{{24, 10}, {10, 20}}, LineSpacing->{1, 0}, FontSize->24], Cell[StyleData["Subsubtitle", "Condensed"], CellMargins->{{8, 10}, {8, 12}}, FontSize->12], Cell[StyleData["Subsubtitle", "Printout"], CellMargins->{{2, 10}, {8, 10}}, FontSize->14] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Section"], CellDingbat->"\[FilledSquare]", CellMargins->{{25, Inherited}, {8, 24}}, CellGroupingRules->{"SectionGrouping", 30}, PageBreakBelow->False, CounterIncrements->"Section", CounterAssignments->{{"Subsection", 0}, {"Subsubsection", 0}}, FontFamily->"Helvetica", FontSize->16, FontWeight->"Bold", FontColor->RGBColor[0, 0, 1]], Cell[StyleData["Section", "Presentation"], CellMargins->{{40, 10}, {11, 32}}, LineSpacing->{1, 0}, FontSize->24], Cell[StyleData["Section", "Condensed"], CellMargins->{{18, Inherited}, {6, 12}}, FontSize->12], Cell[StyleData["Section", "Printout"], CellMargins->{{13, 0}, {7, 22}}, FontSize->14] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subsection"], CellDingbat->"\[FilledSmallSquare]", CellMargins->{{22, Inherited}, {8, 20}}, CellGroupingRules->{"SectionGrouping", 40}, PageBreakBelow->False, CounterIncrements->"Subsection", CounterAssignments->{{"Subsubsection", 0}}, FontSize->14, FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], Cell[StyleData["Subsection", "Presentation"], CellMargins->{{36, 10}, {11, 32}}, LineSpacing->{1, 0}, FontSize->22], Cell[StyleData["Subsection", "Condensed"], CellMargins->{{16, Inherited}, {6, 12}}, FontSize->12], Cell[StyleData["Subsection", "Printout"], CellMargins->{{9, 0}, {7, 22}}, FontSize->12] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Subsubsection"], CellDingbat->"\[FilledSmallSquare]", CellMargins->{{22, Inherited}, {8, 18}}, CellGroupingRules->{"SectionGrouping", 50}, PageBreakBelow->False, CounterIncrements->"Subsubsection", FontWeight->"Bold", FontColor->RGBColor[1, 0, 1]], Cell[StyleData["Subsubsection", "Presentation"], CellMargins->{{34, 10}, {11, 26}}, LineSpacing->{1, 0}, FontSize->18], Cell[StyleData["Subsubsection", "Condensed"], CellMargins->{{17, Inherited}, {6, 12}}, FontSize->10], Cell[StyleData["Subsubsection", "Printout"], CellMargins->{{9, 0}, {7, 14}}, FontSize->11] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Body Text", "Section"], Cell[CellGroupData[{ Cell[StyleData["Text"], CellMargins->{{12, 10}, {7, 7}}, LineSpacing->{1, 3}, CounterIncrements->"Text", FontSize->14], Cell[StyleData["Text", "Presentation"], CellMargins->{{24, 10}, {10, 10}}, LineSpacing->{1, 5}], Cell[StyleData["Text", "Condensed"], CellMargins->{{8, 10}, {6, 6}}, LineSpacing->{1, 1}], Cell[StyleData["Text", "Printout"], CellMargins->{{2, 2}, {6, 6}}] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["SmallText"], CellMargins->{{12, 10}, {6, 6}}, LineSpacing->{1, 3}, CounterIncrements->"SmallText", FontFamily->"Helvetica", FontSize->9], Cell[StyleData["SmallText", "Presentation"], CellMargins->{{24, 10}, {8, 8}}, LineSpacing->{1, 5}, FontSize->12], Cell[StyleData["SmallText", "Condensed"], CellMargins->{{8, 10}, {5, 5}}, LineSpacing->{1, 2}, FontSize->9], Cell[StyleData["SmallText", "Printout"], CellMargins->{{2, 2}, {5, 5}}, FontSize->7] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Input/Output", "Section"], Cell["\<\ The cells in this section define styles used for input and output \ to the kernel. Be careful when modifying, renaming, or removing these \ styles, because the front end associates special meanings with these style \ names.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["Input"], CellMargins->{{45, 10}, {5, 7}}, Evaluatable->True, CellGroupingRules->"InputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}}, DefaultFormatType->DefaultInputFormatType, AutoItalicWords->{}, FormatType->InputForm, ShowStringCharacters->True, NumberMarks->True, CounterIncrements->"Input", FontWeight->"Bold"], Cell[StyleData["Input", "Presentation"], CellMargins->{{72, Inherited}, {8, 10}}, LineSpacing->{1, 0}], Cell[StyleData["Input", "Condensed"], CellMargins->{{40, 10}, {2, 3}}], Cell[StyleData["Input", "Printout"], CellMargins->{{39, 0}, {4, 6}}, FontSize->9] }, Closed]], Cell[StyleData["InputOnly"], Evaluatable->True, CellGroupingRules->"InputGrouping", CellHorizontalScrolling->True, DefaultFormatType->DefaultInputFormatType, AutoItalicWords->{}, FormatType->InputForm, ShowStringCharacters->True, NumberMarks->True, CounterIncrements->"Input", StyleMenuListing->None, FontWeight->"Bold"], Cell[CellGroupData[{ Cell[StyleData["Output"], CellMargins->{{47, 10}, {7, 5}}, CellEditDuplicate->True, CellGroupingRules->"OutputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}}, DefaultFormatType->DefaultOutputFormatType, AutoItalicWords->{}, FormatType->InputForm, CounterIncrements->"Output"], Cell[StyleData["Output", "Presentation"], CellMargins->{{72, Inherited}, {10, 8}}, LineSpacing->{1, 0}], Cell[StyleData["Output", "Condensed"], CellMargins->{{41, Inherited}, {3, 2}}], Cell[StyleData["Output", "Printout"], CellMargins->{{39, 0}, {6, 4}}, FontSize->9] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Message"], CellMargins->{{45, Inherited}, {Inherited, Inherited}}, CellGroupingRules->"OutputGrouping", PageBreakWithin->False, GroupPageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, ShowCellLabel->False, CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}}, DefaultFormatType->DefaultOutputFormatType, AutoItalicWords->{}, FormatType->InputForm, CounterIncrements->"Message", StyleMenuListing->None, FontColor->RGBColor[0, 0, 1]], Cell[StyleData["Message", "Presentation"], CellMargins->{{72, Inherited}, {Inherited, Inherited}}, LineSpacing->{1, 0}], Cell[StyleData["Message", "Condensed"], CellMargins->{{41, Inherited}, {Inherited, Inherited}}], Cell[StyleData["Message", "Printout"], CellMargins->{{39, Inherited}, {Inherited, Inherited}}, FontSize->8, FontColor->GrayLevel[0]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Print"], CellMargins->{{45, Inherited}, {Inherited, Inherited}}, CellGroupingRules->"OutputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, ShowCellLabel->False, CellLabelMargins->{{11, Inherited}, {Inherited, Inherited}}, DefaultFormatType->DefaultOutputFormatType, AutoItalicWords->{}, FormatType->InputForm, CounterIncrements->"Print", StyleMenuListing->None], Cell[StyleData["Print", "Presentation"], CellMargins->{{72, Inherited}, {Inherited, Inherited}}, LineSpacing->{1, 0}], Cell[StyleData["Print", "Condensed"], CellMargins->{{41, Inherited}, {Inherited, Inherited}}], Cell[StyleData["Print", "Printout"], CellMargins->{{39, Inherited}, {Inherited, Inherited}}, FontSize->8] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Graphics"], CellMargins->{{4, Inherited}, {Inherited, Inherited}}, CellGroupingRules->"GraphicsGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, ShowCellLabel->False, DefaultFormatType->DefaultOutputFormatType, FormatType->InputForm, CounterIncrements->"Graphics", ImageMargins->{{43, Inherited}, {Inherited, 0}}, StyleMenuListing->None], Cell[StyleData["Graphics", "Presentation"], ImageMargins->{{62, Inherited}, {Inherited, 0}}], Cell[StyleData["Graphics", "Condensed"], ImageSize->{175, 175}, ImageMargins->{{38, Inherited}, {Inherited, 0}}], Cell[StyleData["Graphics", "Printout"], ImageSize->{250, 250}, ImageMargins->{{30, Inherited}, {Inherited, 0}}, FontSize->9] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["CellLabel"], StyleMenuListing->None, FontFamily->"Helvetica", FontSize->9, FontColor->RGBColor[0, 0, 1]], Cell[StyleData["CellLabel", "Presentation"], FontSize->12], Cell[StyleData["CellLabel", "Condensed"], FontSize->9], Cell[StyleData["CellLabel", "Printout"], FontFamily->"Courier", FontSize->8, FontSlant->"Italic", FontColor->GrayLevel[0]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Formulas and Programming", "Section"], Cell[CellGroupData[{ Cell[StyleData["InlineFormula"], CellMargins->{{10, 4}, {0, 8}}, CellHorizontalScrolling->True, ScriptLevel->1, SingleLetterItalics->True], Cell[StyleData["InlineFormula", "Presentation"], CellMargins->{{24, 10}, {10, 10}}, LineSpacing->{1, 5}], Cell[StyleData["InlineFormula", "Condensed"], CellMargins->{{8, 10}, {6, 6}}, LineSpacing->{1, 1}], Cell[StyleData["InlineFormula", "Printout"], CellMargins->{{2, 0}, {6, 6}}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["DisplayFormula"], CellMargins->{{42, Inherited}, {Inherited, Inherited}}, CellHorizontalScrolling->True, ScriptLevel->0, SingleLetterItalics->True, StyleMenuListing->None, UnderoverscriptBoxOptions->{LimitsPositioning->True}], Cell[StyleData["DisplayFormula", "Presentation"], LineSpacing->{1, 5}], Cell[StyleData["DisplayFormula", "Condensed"], LineSpacing->{1, 1}], Cell[StyleData["DisplayFormula", "Printout"]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Styles for Headers and Footers", "Section"], Cell[StyleData["Header"], CellMargins->{{0, 0}, {4, 1}}, StyleMenuListing->None, FontSize->10, FontSlant->"Italic"], Cell[StyleData["Footer"], CellMargins->{{0, 0}, {0, 4}}, StyleMenuListing->None, FontSize->9, FontSlant->"Italic"], Cell[StyleData["PageNumber"], CellMargins->{{0, 0}, {4, 1}}, StyleMenuListing->None, FontFamily->"Times", FontSize->10] }, Closed]], Cell[CellGroupData[{ Cell["Palette Styles", "Section"], Cell["\<\ The cells below define styles that define standard \ ButtonFunctions, for use in palette buttons.\ \>", "Text"], Cell[StyleData["Paste"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`NotebookApply[ FrontEnd`InputNotebook[ ], #, After]}]&)}], Cell[StyleData["Evaluate"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`NotebookApply[ FrontEnd`InputNotebook[ ], #, All], SelectionEvaluate[ FrontEnd`InputNotebook[ ], All]}]&)}], Cell[StyleData["EvaluateCell"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`NotebookApply[ FrontEnd`InputNotebook[ ], #, All], FrontEnd`SelectionMove[ FrontEnd`InputNotebook[ ], All, Cell, 1], FrontEnd`SelectionEvaluateCreateCell[ FrontEnd`InputNotebook[ ], All]}]&)}], Cell[StyleData["CopyEvaluate"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`SelectionCreateCell[ FrontEnd`InputNotebook[ ], All], FrontEnd`NotebookApply[ FrontEnd`InputNotebook[ ], #, All], FrontEnd`SelectionEvaluate[ FrontEnd`InputNotebook[ ], All]}]&)}], Cell[StyleData["CopyEvaluateCell"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`SelectionCreateCell[ FrontEnd`InputNotebook[ ], All], FrontEnd`NotebookApply[ FrontEnd`InputNotebook[ ], #, All], FrontEnd`SelectionEvaluateCreateCell[ FrontEnd`InputNotebook[ ], All]}]&)}] }, Closed]], Cell[CellGroupData[{ Cell["Hyperlink Styles", "Section"], Cell["\<\ The cells below define styles useful for making hypertext \ ButtonBoxes. The \"Hyperlink\" style is for links within the same Notebook, \ or between Notebooks.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["Hyperlink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`NotebookLocate[ #2]}]&), Active->True, ButtonNote->ButtonData}], Cell[StyleData["Hyperlink", "Presentation"]], Cell[StyleData["Hyperlink", "Condensed"]], Cell[StyleData["Hyperlink", "Printout"], FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]], Cell["\<\ The following styles are for linking automatically to the on-line \ help system.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["MainBookLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "MainBook", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["MainBookLink", "Presentation"]], Cell[StyleData["MainBookLink", "Condensed"]], Cell[StyleData["MainBookLink", "Printout"], FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["AddOnsLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontFamily->"Courier", FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "AddOns", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["AddOnsLink", "Presentation"]], Cell[StyleData["AddOnsLink", "Condensed"]], Cell[StyleData["AddOnLink", "Printout"], FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["RefGuideLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontFamily->"Courier", FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "RefGuideLink", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["RefGuideLink", "Presentation"]], Cell[StyleData["RefGuideLink", "Condensed"]], Cell[StyleData["RefGuideLink", "Printout"], FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["GettingStartedLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "GettingStarted", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["GettingStartedLink", "Presentation"]], Cell[StyleData["GettingStartedLink", "Condensed"]], Cell[StyleData["GettingStartedLink", "Printout"], FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["OtherInformationLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->RGBColor[0, 0, 1], FontVariations->{"Underline"->True}, ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`HelpBrowserLookup[ "OtherInformation", #]}]&), Active->True, ButtonFrame->"None"}], Cell[StyleData["OtherInformationLink", "Presentation"]], Cell[StyleData["OtherInformationLink", "Condensed"]], Cell[StyleData["OtherInformationLink", "Printout"], FontColor->GrayLevel[0], FontVariations->{"Underline"->False}] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Placeholder Styles", "Section"], Cell["\<\ The cells below define styles useful for making placeholder \ objects in palette templates.\ \>", "Text"], Cell[CellGroupData[{ Cell[StyleData["Placeholder"], Editable->False, Selectable->False, StyleBoxAutoDelete->True, Placeholder->True, StyleMenuListing->None], Cell[StyleData["Placeholder", "Presentation"]], Cell[StyleData["Placeholder", "Condensed"]], Cell[StyleData["Placeholder", "Printout"]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["SelectionPlaceholder"], Editable->False, Selectable->False, StyleBoxAutoDelete->True, StyleMenuListing->None, DrawHighlighted->True], Cell[StyleData["SelectionPlaceholder", "Presentation"]], Cell[StyleData["SelectionPlaceholder", "Condensed"]], Cell[StyleData["SelectionPlaceholder", "Printout"]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["FormatType Styles", "Section"], Cell["\<\ The cells below define styles that are mixed in with the styles \ of most cells. If a cell's FormatType matches the name of one of the styles \ defined below, then that style is applied between the cell's style and its \ own options.\ \>", "Text"], Cell[StyleData["CellExpression"], PageWidth->Infinity, CellMargins->{{6, Inherited}, {Inherited, Inherited}}, ShowCellLabel->False, ShowSpecialCharacters->False, AllowInlineCells->False, AutoItalicWords->{}, StyleMenuListing->None, FontFamily->"Courier", Background->GrayLevel[1]], Cell[StyleData["InputForm"], AllowInlineCells->False, StyleMenuListing->None, FontFamily->"Courier"], Cell[StyleData["OutputForm"], PageWidth->Infinity, TextAlignment->Left, LineSpacing->{1, -5}, StyleMenuListing->None, FontFamily->"Courier"], Cell[StyleData["StandardForm"], LineSpacing->{1.25, 0}, StyleMenuListing->None, FontFamily->"Courier"], Cell[StyleData["TraditionalForm"], LineSpacing->{1.25, 0}, SingleLetterItalics->True, TraditionalFunctionNotation->True, DelimiterMatching->None, StyleMenuListing->None], Cell["\<\ The style defined below is mixed in to any cell that is in an \ inline cell within another.\ \>", "Text"], Cell[StyleData["InlineCell"], TextAlignment->Left, ScriptLevel->1, StyleMenuListing->None], Cell[StyleData["InlineCellEditing"], StyleMenuListing->None, Background->RGBColor[1, 0.749996, 0.8]] }, Closed]] }, Open ]] }] ] (******************************************************************* 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[1754, 51, 35, 0, 102, "Title"], Cell[1792, 53, 62, 0, 48, "Subsubtitle"], Cell[CellGroupData[{ Cell[1879, 57, 46, 0, 45, "Subsection"], Cell[1928, 59, 320, 8, 90, "Text"], Cell[2251, 69, 723, 15, 185, "Text"], Cell[2977, 86, 267, 10, 52, "Text"], Cell[3247, 98, 209, 8, 52, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[3493, 111, 31, 0, 34, "Section"], Cell[3527, 113, 629, 13, 147, "Text"], Cell[4159, 128, 226, 6, 52, "Text"], Cell[4388, 136, 218, 6, 52, "Text"], Cell[4609, 144, 251, 9, 125, "Text"], Cell[4863, 155, 103, 3, 33, "Text"], Cell[4969, 160, 332, 6, 90, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[5338, 171, 44, 0, 34, "Section"], Cell[5385, 173, 1402, 38, 223, "Text"], Cell[6790, 213, 198, 4, 107, "Input"], Cell[6991, 219, 385, 6, 109, "Text"], Cell[7379, 227, 34, 1, 27, "Input"], Cell[7416, 230, 233, 4, 71, "Text"], Cell[7652, 236, 46, 1, 27, "Input"], Cell[7701, 239, 106, 3, 33, "Text"], Cell[7810, 244, 120, 3, 52, "Text"], Cell[7933, 249, 46, 1, 27, "Input"], Cell[7982, 252, 230, 6, 52, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[8249, 263, 39, 0, 34, "Section"], Cell[8291, 265, 75, 0, 33, "Text"], Cell[8369, 267, 52, 1, 27, "Input"], Cell[8424, 270, 256, 5, 71, "Text"], Cell[8683, 277, 46, 1, 27, "Input"], Cell[8732, 280, 128, 3, 52, "Text"], Cell[8863, 285, 306, 5, 90, "Text"], Cell[9172, 292, 60, 1, 27, "Input"], Cell[9235, 295, 231, 7, 52, "Text"], Cell[9469, 304, 72, 0, 33, "Text"], Cell[9544, 306, 129, 2, 59, "Input"], Cell[9676, 310, 190, 4, 52, "Text"], Cell[9869, 316, 46, 1, 27, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[9952, 322, 36, 0, 34, "Section"], Cell[9991, 324, 252, 5, 71, "Text"], Cell[10246, 331, 379, 13, 71, "Text"], Cell[10628, 346, 223, 8, 52, "Text"], Cell[10854, 356, 223, 8, 52, "Text"], Cell[11080, 366, 243, 6, 71, "Text"], Cell[11326, 374, 71, 1, 27, "Input"], Cell[11400, 377, 218, 4, 52, "Text"], Cell[11621, 383, 527, 18, 71, "Text"], Cell[12151, 403, 1634, 34, 347, "Input"], Cell[13788, 439, 30, 0, 33, "Text"], Cell[13821, 441, 46, 1, 27, "Input"], Cell[13870, 444, 47, 1, 27, "Input"], Cell[13920, 447, 46, 1, 27, "Input"], Cell[13969, 450, 70, 0, 33, "Text"], Cell[14042, 452, 224, 7, 52, "Text"], Cell[14269, 461, 247, 5, 75, "Input"], Cell[14519, 468, 350, 9, 71, "Text"], Cell[14872, 479, 51, 1, 27, "Input"], Cell[14926, 482, 199, 4, 71, "Text"], Cell[15128, 488, 82, 1, 27, "Input"], Cell[15213, 491, 713, 26, 71, "Text"], Cell[15929, 519, 148, 3, 27, "Input", Evaluatable->False], Cell[16080, 524, 232, 5, 71, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[16349, 534, 44, 0, 34, "Section"], Cell[16396, 536, 163, 4, 52, "Text"], Cell[16562, 542, 237, 5, 91, "Input"], Cell[16802, 549, 1983, 74, 166, "Text"], Cell[18788, 625, 245, 5, 71, "Text"], Cell[19036, 632, 29, 0, 33, "Text"], Cell[19068, 634, 42, 1, 27, "Input"], Cell[19113, 637, 365, 9, 71, "Text"], Cell[19481, 648, 46, 1, 27, "Input"], Cell[19530, 651, 50, 0, 33, "Text"], Cell[19583, 653, 107, 2, 27, "Input"], Cell[19693, 657, 210, 7, 52, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[19940, 669, 27, 0, 34, "Section"], Cell[19970, 671, 371, 8, 90, "Text"], Cell[20344, 681, 474, 10, 130, "Input"], Cell[20821, 693, 662, 19, 109, "Text"], Cell[21486, 714, 317, 9, 71, "Text"], Cell[21806, 725, 66, 1, 27, "Input"], Cell[21875, 728, 172, 4, 52, "Text"], Cell[22050, 734, 193, 7, 33, "Text"], Cell[22246, 743, 52, 1, 27, "Input"], Cell[22301, 746, 623, 23, 71, "Text"], Cell[22927, 771, 72, 1, 27, "Input"], Cell[23002, 774, 631, 16, 128, "Text"], Cell[23636, 792, 386, 13, 71, "Text"], Cell[24025, 807, 295, 9, 71, "Text"], Cell[24323, 818, 233, 3, 75, "Input"], Cell[24559, 823, 72, 1, 27, "Input"], Cell[24634, 826, 129, 3, 52, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[24800, 834, 24, 0, 34, "Section"], Cell[24827, 836, 538, 15, 109, "Text"], Cell[25368, 853, 171, 4, 27, "Input"], Cell[25542, 859, 173, 4, 27, "Input"], Cell[25718, 865, 55, 0, 33, "Text"], Cell[25776, 867, 505, 11, 109, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[26318, 883, 38, 0, 34, "Section"], Cell[26359, 885, 124, 3, 52, "Text"], Cell[26486, 890, 217, 8, 52, "Text"], Cell[26706, 900, 316, 12, 52, "Text"], Cell[27025, 914, 45, 0, 33, "Text"], Cell[27073, 916, 260, 5, 71, "Text"], Cell[27336, 923, 146, 3, 123, "Input"], Cell[27485, 928, 497, 14, 90, "Text"], Cell[27985, 944, 465, 14, 90, "Text"], Cell[28453, 960, 48, 1, 27, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[28538, 966, 34, 0, 34, "Section"], Cell[28575, 968, 111, 3, 33, "Text"], Cell[28689, 973, 178, 4, 123, "Input"], Cell[28870, 979, 28, 0, 33, "Text"], Cell[28901, 981, 56, 1, 27, "Input"], Cell[28960, 984, 42, 0, 33, "Text"], Cell[29005, 986, 47, 1, 27, "Input"], Cell[29055, 989, 306, 7, 71, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[29398, 1001, 37, 0, 34, "Section"], Cell[29438, 1003, 182, 4, 52, "Text"], Cell[29623, 1009, 142, 3, 43, "Input"], Cell[29768, 1014, 224, 4, 52, "Text"], Cell[29995, 1020, 192, 7, 33, "Text"], Cell[30190, 1029, 950, 18, 251, "Input"], Cell[31143, 1049, 23, 0, 33, "Text"], Cell[31169, 1051, 46, 1, 27, "Input"], Cell[31218, 1054, 252, 5, 71, "Text"], Cell[31473, 1061, 386, 6, 109, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[31896, 1072, 28, 0, 34, "Section"], Cell[31927, 1074, 383, 8, 90, "Text"], Cell[32313, 1084, 469, 10, 109, "Text"], Cell[32785, 1096, 22955, 298, 90, "Input"], Cell[55743, 1396, 25, 0, 33, "Text"], Cell[55771, 1398, 50, 1, 27, "Input"], Cell[55824, 1401, 502, 14, 90, "Text"], Cell[56329, 1417, 68, 1, 27, "Input"], Cell[56400, 1420, 108, 3, 33, "Text"], Cell[56511, 1425, 253, 5, 71, "Text"], Cell[56767, 1432, 266, 8, 52, "Text"], Cell[57036, 1442, 73, 1, 27, "Input"], Cell[57112, 1445, 36, 0, 33, "Text"], Cell[57151, 1447, 68, 1, 27, "Input"], Cell[57222, 1450, 141, 7, 33, "Text"], Cell[57366, 1459, 49, 1, 27, "Input"], Cell[57418, 1462, 317, 6, 90, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[57772, 1473, 27, 0, 34, "Section"], Cell[57802, 1475, 270, 6, 71, "Text"], Cell[58075, 1483, 108, 3, 33, "Text"], Cell[58186, 1488, 191, 7, 33, "Text"], Cell[58380, 1497, 311, 8, 71, "Text"], Cell[58694, 1507, 206, 7, 33, "Text"], Cell[58903, 1516, 184, 4, 52, "Text"], Cell[59090, 1522, 245, 7, 52, "Text"], Cell[59338, 1531, 397, 13, 71, "Text"] }, Closed]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)