(*********************************************************************** Mathematica-Compatible Notebook This notebook can be used on any computer system with Mathematica 4.0, MathReader 4.0, or any compatible application. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. ***********************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 31105, 1107]*) (*NotebookOutlinePosition[ 63636, 2235]*) (* CellTagsIndexPosition[ 62638, 2205]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell["Subdivision: Functions as Fractals", "Chapter", CounterAssignments->{{"Chapter", 0}}, CellTags->"CHA introduction"], Cell[TextData[{ "To evaluate a particular cell, simply hit \"Shift+Enter\" with the cursor \ positioned in that cell. If ", StyleBox["Mathematica", FontSlant->"Italic"], " asks to evaluate initialization cell, click \"Yes\". See the ", StyleBox["Mathematica ", FontSlant->"Italic"], "Help browser or wolfram.com for more information on using ", StyleBox["Mathematica", FontSlant->"Italic"], "." }], "Text"], Cell["\<\ This notebook and those for the other seven chapters use a common stylesheet \ that has been imported into the notebook. This style sheet supports \ chapters, section, subsections, numbered equations, numbered figures and \ citations. A separate copy of the stylesheet can be download from the same \ page where this notebook was downloaded. \ \>", "Text"], Cell[TextData[{ StyleBox["COPYRIGHT ISSUES:", FontWeight->"Bold"], " The authors reserve all copyrights associated with this work. Any of \ the material appearing in these notebooks (such as the polyhedral meshes in \ chapter 7) can be used and modified without restriction as long as the use is \ non\[Hyphen]commercial. We simply ask that you acknowledge the authors when \ using material from these notebooks. For those readers interested in \ commercial use of the material in these notebooks, please contact \ jwarren@cs.rice.edu. " }], "Text"], Cell[CellGroupData[{ Cell["Functions", "Section"], Cell[CellGroupData[{ Cell["Examples of using functions to represent shape", "Subsubsection"], Cell[TextData[{ StyleBox["Explicit representation:", FontWeight->"Bold"], " express shape as graph of function ", Cell[BoxData[ \(y = f[x]\)]], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Plot[Sin[\[ScriptX]], {\[ScriptX], 0, 2 \[Pi]}]\)], "Input", CellTags->"FIG Sin plot"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[TextData[{ StyleBox["Parametric representation:", FontWeight->"Bold"], " express shape as curve ", Cell[BoxData[ \({\[ScriptF][\[ScriptX]], \[ScriptG][\[ScriptX]]}\)]], " as ", Cell[BoxData[ \(\[ScriptX]\)]], " varies over a fixed range." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(ParametricPlot[{Cos[\[ScriptX]], Sin[\[ScriptX]]}, {\[ScriptX], 0, 2 \[Pi]}, AspectRatio \[Rule] 1]\)], "Input", CellTags->"FIG Param circle plot"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[TextData[{ "Implicit representation:", StyleBox[" express shape as contour of function, i.e. ", FontWeight->"Plain"], Cell[BoxData[ StyleBox[\(\[ScriptF][\[ScriptX], \[ScriptY]] \[Equal] 0\), FontWeight->"Plain"]]], "." }], "Text", FontWeight->"Bold"], Cell[CellGroupData[{ Cell[BoxData[ \(ContourPlot[\[ScriptX]\^2 + \[ScriptY]\^2 - 1, {\[ScriptX], \(-1.5\), 1.5}, {\[ScriptY], \(-1.5\), 1.5}, Contours \[Rule] {0}]\)], "Input", CellTags->"FIG Impl circle plot"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] ContourGraphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Piecewise polynomials", "Subsection"], Cell[CellGroupData[{ Cell["The cubic B\[Hyphen]spline basis function as a piecewise polynomial", \ "Subsubsection"], Cell[TextData[{ "To generate functions with more flexible shape, use a function ", Cell[BoxData[ \(\[ScriptN][\[ScriptX]]\)]], " that is a piecewise polynomial function. The function below is the cubic \ B\[Hyphen]spline basis function ", Cell[BoxData[ \(\[ScriptN][\[ScriptX]]\)]], ". This function is a ", Cell[BoxData[ \(\[ScriptCapitalC]\^2\)]], " piecewise cubic function knots at the integers." }], "Text"], Cell[BoxData[ \(\[ScriptN][\[ScriptX]_] := Which[\[IndentingNewLine]\(-\[Infinity]\) \[LessEqual] \[ScriptX] < 0, 0, \[IndentingNewLine]0 \[LessEqual] \[ScriptX] < 1, \[ScriptX]\^3\/6, \[IndentingNewLine]1 \[LessEqual] \[ScriptX] < 2, 2\/3 - 2\ \[ScriptX] + 2\ \[ScriptX]\^2 - \[ScriptX]\^3\/2, \[IndentingNewLine]2 \ \[LessEqual] \[ScriptX] < 3, \(-\(22\/3\)\) + 10\ \[ScriptX] - 4\ \[ScriptX]\^2 + \[ScriptX]\^3\/2, \[IndentingNewLine]3 \ \[LessEqual] \[ScriptX] < 4, \(-\(1\/6\)\)\ \((\(-4\) + \[ScriptX])\)\^3, \ \[IndentingNewLine]4 \[LessEqual] \[ScriptX] < \[Infinity], 0\ ]\)], "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[BoxData[ \(Plot[\[ScriptN][\[ScriptX]], {\[ScriptX], 0, 4}]\)], "Input", CellTags->"FIG Bump plot"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["B\[EAcute]zier curves", "Subsection", CellTags->"SUBSEC bezier"], Cell[CellGroupData[{ Cell["Definition of Bernstein basis functions", "Subsubsection"], Cell[TextData[{ "Define the ", StyleBox["Bernstein basis", FontWeight->"Bold"], " functions of degree ", Cell[BoxData[ \(m\)]], " to be" }], "Text"], Cell[BoxData[ RowBox[{\(\[ScriptB]\_i\%m[\[ScriptX]]\), "=", RowBox[{ RowBox[{"(", GridBox[{ {"m"}, {"i"} }], ")"}], \(\((1 - \[ScriptX])\)\^\(m - i\)\), \(\(\[ScriptX]\^i\)\(.\)\)}]}]], "Equation"], Cell[BoxData[{ \(\(Unprotect[Power];\)\), "\[IndentingNewLine]", \(\(Power[0, 0] = 1;\)\), "\[IndentingNewLine]", \(\(Protect[Power];\)\), "\[IndentingNewLine]", \(\(\[ScriptB][i_, n_]\)[\[ScriptX]_] := Binomial[n, i] \(\((1 - \[ScriptX])\)\^\(n - i\)\) \[ScriptX]\^i\)}], "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[BoxData[ \(With[{basis = Table[\(\[ScriptB][i, 5]\)[\[ScriptX]], {i, 0, 5}]}, \ Plot[basis, {\[ScriptX], 0, 1}]]\)], "Input", CellTags->"FIG Bernstein plot"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Definition of B\[EAcute]zier curves", "Subsubsection"], Cell[TextData[{ "Given a ", StyleBox["control polygon", FontWeight->"Bold"], " ", Cell[BoxData[ \(p\)]], " with ", Cell[BoxData[ \(m + 1\)]], " control points ", Cell[BoxData[ \(p\[LeftDoubleBracket]i\[RightDoubleBracket]\)]], ", the parametric B\[EAcute]zier curve ", Cell[BoxData[ \(\[ScriptP][\[ScriptX]]\)]], " has the form" }], "Text"], Cell[BoxData[ \(\[ScriptP][\[ScriptX]] = \ \[Sum]\+\(i = 0\)\%m p\[LeftDoubleBracket] i\[RightDoubleBracket]\ \(\(\[ScriptB]\_i\%m[\[ScriptX]]\)\(.\)\)\ \)], "Equation"], Cell[BoxData[ \(\[ScriptP][\[ScriptX]_, p_] := With[{n = Length[p] - 1}, \[IndentingNewLine]\[Sum]\+\(i = 0\)\%n p\[LeftDoubleBracket]i + 1\[RightDoubleBracket] \(\[ScriptB][i, n]\)[\[ScriptX]]]\)], "Input", InitializationCell->True], Cell[TextData[{ "Note that we have shifted indices for ", Cell[BoxData[ \(p\)]], " since ", StyleBox["Mathematica", FontSlant->"Italic"], " start indexing at ", Cell[BoxData[ \(i \[Equal] 1\)]], "." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Plotting functions for B\[EAcute]zier curves", "Subsubsection"], Cell[TextData[{ Cell[BoxData[ \(plotCoeff\)]], " plots a polygon ", Cell[BoxData[ \(p\)]], " with large red vertices. This function is reused in future chapters." }], "Text"], Cell[BoxData[ \(plotCoeff[p_, opts___] := Show[Graphics[{Line[p], PointSize[0.02], RGBColor[1, 0, 0], Map[Point, p]}], Join[{opts}, {Axes \[Rule] True, Ticks \[Rule] {Automatic, Automatic}}]]\)], "Input", InitializationCell->True], Cell[TextData[{ Cell[BoxData[ \(bezierPlot\)]], " plots the control polygon ", Cell[BoxData[ \(p\)]], " and a discretization of its B\[EAcute]zier curves using ", Cell[BoxData[ \(m + 1\)]], " points" }], "Text"], Cell[BoxData[ \(bezierPlot[p_, m_] := With[{disc = Table[\[ScriptP][\[ScriptX], p], {\[ScriptX], 0, 1, 1/m}]}, Show[plotCoeff[disc, DisplayFunction \[Rule] Identity], Graphics[Line[p]], AspectRatio \[Rule] Automatic, DisplayFunction \[Rule] $DisplayFunction]]\)], "Input", InitializationCell->True] }, Closed]], Cell[CellGroupData[{ Cell["Examples", "Subsubsection"], Cell["Example control polygons", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"p2", "=", RowBox[{"(", GridBox[{ {"0", "0"}, {"1", "2"}, {"2", "0"} }], ")"}]}], ";", RowBox[{"p3", "=", RowBox[{"(", GridBox[{ {"0", "0"}, {"1", "3"}, {"2", "2"}, {"3", "0"} }], ")"}]}], ";", RowBox[{"p4", "=", RowBox[{"(", "\[NoBreak]", GridBox[{ {"0", "0"}, {"2", "2"}, {"1", "4"}, {"4", "6"}, {"6", "2"} }], "\[NoBreak]", ")"}]}], ";"}]], "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[BoxData[ \(Show[ GraphicsArray[{\[IndentingNewLine]bezierPlot[p2, 32], \[IndentingNewLine]bezierPlot[p3, 32], \[IndentingNewLine]bezierPlot[p4, 32]}]]\)], "Input", CellTags->"FIG Bezier plot"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] GraphicsArray \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Show[ GraphicsArray[{\[IndentingNewLine]bezierPlot[p3, 4], \[IndentingNewLine]bezierPlot[p3, 8], \[IndentingNewLine]bezierPlot[p3, 16], \[IndentingNewLine]bezierPlot[p3, 32]}]]\)], "Input", CellTags->"FIG Interpolatory parabola"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] GraphicsArray \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]] }, Closed]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Fractals", "Section"], Cell[CellGroupData[{ Cell["Iterated affine transformations", "Subsection"], Cell[CellGroupData[{ Cell["Barycentric coordinates", "Subsubsection"], Cell[TextData[{ Cell[BoxData[ \(area\)]], " computes the signed area of a triangle with vertices ", Cell[BoxData[ \(p0\)]], ", ", Cell[BoxData[ \(p1\)]], ", ", Cell[BoxData[ \(p2\)]], "." }], "Text"], Cell[BoxData[ RowBox[{\(area[p0_, p1_, p2_]\), ":=", RowBox[{\(1\/2\), RowBox[{"Det", "[", RowBox[{"(", GridBox[{ {"1", "1", "1"}, {\(p0\[LeftDoubleBracket]1\[RightDoubleBracket]\), \(p1\ \[LeftDoubleBracket]1\[RightDoubleBracket]\), \(p2\[LeftDoubleBracket]1\ \[RightDoubleBracket]\)}, {\(p0\[LeftDoubleBracket]2\[RightDoubleBracket]\), \(p1\ \[LeftDoubleBracket]2\[RightDoubleBracket]\), \(p2\[LeftDoubleBracket]2\ \[RightDoubleBracket]\)} }], ")"}], "]"}]}]}]], "Input", InitializationCell->True], Cell[TextData[{ Cell[BoxData[ \(bary\)]], " computes the barycentric coordinates of the triangle ", Cell[BoxData[ \(p\)]], " with respect to the point ", Cell[BoxData[ \(v\)]], ". Note ", Cell[BoxData[ \(p\)]], " has its indices shifted by ", Cell[BoxData[ \(1\)]], "." }], "Text"], Cell[BoxData[ \(bary[p_, v_] := {area[v, p\[LeftDoubleBracket]2\[RightDoubleBracket], p\ \[LeftDoubleBracket]3\[RightDoubleBracket]], \ area[p\[LeftDoubleBracket]1\ \[RightDoubleBracket], v, p\[LeftDoubleBracket]3\[RightDoubleBracket]], \ area[p\[LeftDoubleBracket]1\[RightDoubleBracket], p\[LeftDoubleBracket]2\ \[RightDoubleBracket], v]}\/area[p\[LeftDoubleBracket]1\[RightDoubleBracket], \ p\[LeftDoubleBracket]2\[RightDoubleBracket], p\[LeftDoubleBracket]3\ \[RightDoubleBracket]]\)], "Input", InitializationCell->True, CellTags->"EQN barycentric"], Cell["An example", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"bary", "[", RowBox[{ RowBox[{"(", GridBox[{ {"0", "0"}, {"1", "0"}, {"0", "1"} }], ")"}], ",", \({\[ScriptX], \[ScriptY]}\)}], "]"}]], "Input"], Cell[BoxData[ \({1 - \[ScriptX] - \[ScriptY], \[ScriptX], \[ScriptY]}\)], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Affine transformation in terms of barycentric coordinates", \ "Subsubsection"], Cell[TextData[{ "The function ", Cell[BoxData[ \(aff\)]], " takes a ", Cell[BoxData[ \(3\[Times]3\)]], " transformation matrix in barycentric coordinates and applies the matrix \ to a triangle ", Cell[BoxData[ \(p\)]], " represented as a column vector of ", Cell[BoxData[ \(3\)]], " points." }], "Text"], Cell[BoxData[ \(aff[S_, p_] := Flatten[Table[ S . p\[LeftDoubleBracket]i\[RightDoubleBracket], {i, Length[p]}], 1]\)], "Input", InitializationCell->True, AspectRatioFixed->True], Cell[BoxData[ \(affPlot[S_, t0_] := \[IndentingNewLine]With[{t0n = aff[S, t0]}, Show[Graphics[{Polygon[t0n[\([1]\)]], Map[Line, t0], Line[{t0[\([1, 3]\)], t0[\([1, 1]\)]}]}], AspectRatio \[Rule] Automatic]]\)], "Input", InitializationCell->True], Cell[TextData[{ "An example of applying the same affine transformation ", Cell[BoxData[ \(S\)]], " with respect to two distinct base triangles" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Show", "[", RowBox[{"GraphicsArray", "[", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"affPlot", "[", RowBox[{ RowBox[{"{", RowBox[{"(", GridBox[{ {"1", "0", "0"}, {\(1\/2\), \(1\/2\), "0"}, {\(1\/2\), "0", \(1\/2\)} }], ")"}], "}"}], ",", RowBox[{"{", RowBox[{"(", GridBox[{ {"0", "0"}, {"1", "1"}, {"2", "0"} }], ")"}], "}"}]}], "]"}], ",", RowBox[{"affPlot", "[", RowBox[{ RowBox[{"{", RowBox[{"(", GridBox[{ {"1", "0", "0"}, {\(1\/2\), \(1\/2\), "0"}, {\(1\/2\), "0", \(1\/2\)} }], ")"}], "}"}], ",", RowBox[{"{", RowBox[{"(", GridBox[{ {"0", \(\(-1\)\/2\)}, {\(1\/2\), "1"}, {"2", \(1\/2\)} }], ")"}], "}"}]}], "]"}]}], "}"}], "]"}], "]"}]], "Input", CellTags->"FIG Transformation"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] GraphicsArray \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Computing iterated affine transformations", "Subsubsection"], Cell["\<\ Construct helper functions that build iterated affine transformations and \ plot the result\ \>", "Text"], Cell[BoxData[ \(iat[S_, p_, k_] := Nest[Function[x, aff[S, x]], \ p, \ k]\)], "Input", InitializationCell->True, AspectRatioFixed->True], Cell[BoxData[ \(fracPlot[S_, p_, k_] := Show[\[IndentingNewLine]Graphics[ Prepend[Map[Polygon, p], GrayLevel[0.90]]], \[IndentingNewLine]Graphics[ Map[Polygon, iat[S, p, k]]], \[IndentingNewLine]AspectRatio \[Rule] Automatic, PlotRange -> All]\)], "Input", InitializationCell->True] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["The Sierpinski triangle", "Subsection"], Cell[TextData[{ "Define three affine transformations for the Sierpenski triangle. These \ transformations are contractive with ", Cell[BoxData[ \(\[Beta] \[Equal] 1\/2\)]], "." }], "Text"], Cell[BoxData[ RowBox[{ RowBox[{"sierp", "=", RowBox[{"{", RowBox[{ RowBox[{"(", GridBox[{ {\(1\/2\), \(1\/2\), "0"}, {"1", "0", "0"}, {\(1\/2\), "0", \(1\/2\)} }], ")"}], ",", RowBox[{"(", GridBox[{ {\(1\/2\), \(1\/2\), "0"}, {"0", "1", "0"}, {"0", \(1\/2\), \(1\/2\)} }], ")"}], ",", TagBox[ RowBox[{"(", GridBox[{ {\(1\/2\), "0", \(1\/2\)}, {"0", "0", "1"}, {"0", \(1\/2\), \(1\/2\)} }], ")"}], (MatrixForm[ #]&)]}], "}"}]}], ";"}]], "Input", InitializationCell->True], Cell[TextData[{ "Plot ", Cell[BoxData[ \(5\)]], " iterations of the fractal recurrence " }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Show[ GraphicsArray[\[IndentingNewLine]{fracPlot[sierp, {p2}, 1], \[IndentingNewLine]fracPlot[sierp, {p2}, 2], \[IndentingNewLine]fracPlot[sierp, {p2}, 3], \[IndentingNewLine]fracPlot[sierp, {p2}, 4], \[IndentingNewLine]fracPlot[sierp, {p2}, 5]}]]\)], "Input", CellTags->"FIG Sierpinski"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] GraphicsArray \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["The Koch snowflake", "Subsection"], Cell[TextData[{ "Define four affine transformations for the Koch curve, note that all four \ transformations are contractive with ", Cell[BoxData[ \(\[Beta] \[Equal] 1\/3\)]], "." }], "Text"], Cell[BoxData[ RowBox[{ RowBox[{"koch", "=", RowBox[{"{", RowBox[{ RowBox[{"(", GridBox[{ {"1", "0", "0"}, {\(2\/3\), \(1\/3\), "0"}, {\(2\/3\), "0", \(1\/3\)} }], ")"}], ",", TagBox[ RowBox[{"(", GridBox[{ {\(2\/3\), "0", \(1\/3\)}, {\(2\/3\), \(1\/3\), "0"}, {\(1\/3\), \(1\/3\), \(1\/3\)} }], ")"}], (MatrixForm[ #]&)], ",", RowBox[{"(", GridBox[{ {\(1\/3\), \(1\/3\), \(1\/3\)}, {"0", \(1\/3\), \(2\/3\)}, {\(1\/3\), "0", \(2\/3\)} }], ")"}], ",", TagBox[ RowBox[{"(", GridBox[{ {\(1\/3\), "0", \(2\/3\)}, {"0", \(1\/3\), \(2\/3\)}, {"0", "0", "1"} }], ")"}], (MatrixForm[ #]&)]}], "}"}]}], ";"}]], "Input", InitializationCell->True], Cell["Plot the four transformation applied individually", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Show[ GraphicsArray[{\[IndentingNewLine]affPlot[{koch\[LeftDoubleBracket]1\ \[RightDoubleBracket]}, {p2}], \[IndentingNewLine]affPlot[{koch\ \[LeftDoubleBracket]2\[RightDoubleBracket]}, {p2}], \ \[IndentingNewLine]affPlot[{koch\[LeftDoubleBracket]3\[RightDoubleBracket]}, \ {p2}], \[IndentingNewLine]affPlot[{koch\[LeftDoubleBracket]4\ \[RightDoubleBracket]}, {p2}]}]]\)], "Input", CellTags->"FIG Koch one round"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] GraphicsArray \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[TextData[{ "Plot ", Cell[BoxData[ \(4\)]], " iterations of this fractal" }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Show[ GraphicsArray[{\[IndentingNewLine]fracPlot[koch, {p2}, 1], \[IndentingNewLine]fracPlot[koch, {p2}, 2], \[IndentingNewLine]fracPlot[koch, {p2}, 3], \[IndentingNewLine]fracPlot[koch, {p2}, 4]}]]\)], "Input", CellTags->"FIG Koch four rounds"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] GraphicsArray \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell["\<\ Construct a snowflake by doing one round of Sierpenski and three rounds of \ Koch\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(fracPlot[koch, iat[sierp, {p2}, 1], 4]\)], "Input", CellTags->"FIG Koch"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["B\[EAcute]zier curves", "Subsection"], Cell[TextData[{ "Construct pair of affine transformation from the deCasteljau algorithm. \ These transformation are contractive with ", Cell[BoxData[ \(\[Beta] \[Equal] 3\/4\)]], "." }], "Text"], Cell[BoxData[ \(deCasteljau[ m_] := \[IndentingNewLine]{Table[ If[j \[LessEqual] i, \(1\/2\^i\) Binomial[i, j], 0], {i, 0, m}, {j, 0, m}], \[IndentingNewLine]Table[ If[j \[LessEqual] i, \(1\/2\^i\) Binomial[i, j], 0], {i, m, 0, \(-1\)}, {j, m, 0, \(-1\)}]}\)], "Input", InitializationCell->True], Cell["\<\ Develop special plotter for fractal B\[EAcute]zier curves. Only plot image \ of lower edge of base triangle\ \>", "Text"], Cell[BoxData[ \(fracPlotLines[S_, p_, k_] := Show[\[IndentingNewLine]Graphics[ Prepend[Map[Polygon, p], GrayLevel[0.8]]], \[IndentingNewLine]Graphics[ Map[Line[{#[\([1]\)], #[\([Length[#]]\)]}] &, iat[S, p, k]]], \[IndentingNewLine]AspectRatio \[Rule] Automatic, PlotRange -> All]\)], "Input", InitializationCell->True], Cell["Compute affine transformations for quadratic", "Text"], Cell[BoxData[ \(\(quadBez = deCasteljau[2];\)\)], "Input", InitializationCell->True], Cell["Plot one iteration of DeCasteljau", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(fracPlot[quadBez, {p2}, 1]\)], "Input", CellTags->"FIG quad deCast"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Show[ GraphicsArray[{\[IndentingNewLine]fracPlotLines[quadBez, {p2}, 1], \[IndentingNewLine]fracPlotLines[quadBez, {p2}, 2], \[IndentingNewLine]fracPlotLines[quadBez, {p2}, 3], \[IndentingNewLine]fracPlotLines[quadBez, {p2}, 4]}]]\)], "Input", CellTags->"FIG quad deCast four rounds"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] GraphicsArray \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell["Cubic example", "Text"], Cell[BoxData[ \(\(cubicBez = deCasteljau[3];\)\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \(fracPlot[cubicBez, {p3}, 1]\)], "Input", CellTags->"FIG cubic deCast"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(\(\(Show[ GraphicsArray[{\[IndentingNewLine]fracPlotLines[cubicBez, {p3}, 1], \[IndentingNewLine]fracPlotLines[cubicBez, {p3}, 2], \[IndentingNewLine]fracPlotLines[cubicBez, {p3}, 3], \[IndentingNewLine]fracPlotLines[cubicBez, {p3}, 4]}]]\)\(\[IndentingNewLine]\) \)\)], "Input", CellTags->"FIG cubic deCast four rounds"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] GraphicsArray \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["Subdivision", "Section"], Cell[CellGroupData[{ Cell["Piecewise linear splines", "Subsection", CellTags->"SUBSEC piecewise lin"], Cell[TextData[{ "Define function ", Cell[BoxData[ \(\[ScriptC][\[ScriptX]]\)]], " that is ", Cell[BoxData[ \(\[ScriptX]\)]], " if ", Cell[BoxData[ \(\[ScriptX] \[GreaterEqual] 0\)]], " and ", Cell[BoxData[ \(0\)]], " otherwise." }], "Text"], Cell[BoxData[ \(\[ScriptC][\[ScriptX]_] := If[\[ScriptX] \[GreaterEqual] 0, \[ScriptX], 0]\)], "Input", InitializationCell->True], Cell[TextData[{ "Define hat function as second difference of ", Cell[BoxData[ \(\[ScriptC][\[ScriptX]]\)]], "." }], "Text"], Cell[BoxData[ \(\[ScriptN][\[ScriptX]_] := \[ScriptC][\[ScriptX] + 1] - 2 \[ScriptC][\[ScriptX]] + \[ScriptC][\[ScriptX] - 1]\)], "Input", InitializationCell->True], Cell[TextData[{ "Plot ", Cell[BoxData[ \(\[ScriptC][\[ScriptX]]\)]], " and ", Cell[BoxData[ \(\[ScriptN][\[ScriptX]]\)]], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Show[ GraphicsArray[{\[IndentingNewLine]Plot[\[ScriptC][\[ScriptX]], {\ \[ScriptX], \(-2\), 2}, PlotRange \[Rule] All], \[IndentingNewLine]Plot[\[ScriptN][\[ScriptX]], {\ \[ScriptX], \(-2\), 2}, PlotRange \[Rule] All]}]]\)], "Input", CellTags->"FIG hat basis"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] GraphicsArray \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[TextData[{ "Plot of translates of ", Cell[BoxData[ \(\[ScriptN][\[ScriptX]]\)]] }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Plot[{\[ScriptN][\[ScriptX] + 2], \[ScriptN][\[ScriptX] + 1], \[ScriptN][\[ScriptX]], \[ScriptN][\[ScriptX] - 1], \[ScriptN][\[ScriptX] - 2]}, {\[ScriptX], \(-2\), 2}, PlotRange \[Rule] All]\)], "Input", CellTags->"FIG V0"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]], Cell[TextData[{ "Plot of translates of dilated hat function ", Cell[BoxData[ \(\[ScriptN][2 \[ScriptX]]\)]], ". Note that span of ", Cell[BoxData[ \(\[ScriptN][2 \[ScriptX] - i]\)]], " includes the functions ", Cell[BoxData[ \(\[ScriptN][\[ScriptX] - i]\)]], " for ", Cell[BoxData[ \(i \[Element] \[DoubleStruckCapitalZ]\)]], "." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Plot[{\[ScriptN][2 \[ScriptX] + 4], \[ScriptN][ 2 \[ScriptX] + 3], \[ScriptN][2 \[ScriptX] + 2], \[ScriptN][ 2 \[ScriptX] + 1], \[ScriptN][2 \[ScriptX]], \[ScriptN][ 2 \[ScriptX] - 1], \[ScriptN][2 \[ScriptX] - 2], \[ScriptN][ 2 \[ScriptX] - 3], \[ScriptN][ 2 \[ScriptX] - 4]}, {\[ScriptX], \(-2\), 2}, PlotRange \[Rule] All]\)], "Input", CellTags->"FIG V1"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] Graphics \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Subdivision for piecewise linear splines", "Subsection", CellTags->"SUBSEC subdivision for pwlin"], Cell[TextData[{ "Apply subdivision matrix ", Cell[BoxData[ \(S\)]], " for piecewise linear functions to a polygon ", Cell[BoxData[ \(p\)]] }], "Text"], Cell[BoxData[ \(S[p_] := With[{n = Length[p] - 1}, \[IndentingNewLine]Table[\[IndentingNewLine]If[ EvenQ[i], p\[LeftDoubleBracket]i\/2 + 1\[RightDoubleBracket], \(p\[LeftDoubleBracket]\(i + 1\)\/2\ \[RightDoubleBracket] + p\[LeftDoubleBracket]\(i + \ 3\)\/2\[RightDoubleBracket]\)\/2], {i, 0, 2 n}]]\)], "Input", InitializationCell->True], Cell["Construct the subdivision matrix explicitly", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(S[IdentityMatrix[5]] // MatrixForm\)], "Input"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "0", "0", "0", "0"}, {\(1\/2\), \(1\/2\), "0", "0", "0"}, {"0", "1", "0", "0", "0"}, {"0", \(1\/2\), \(1\/2\), "0", "0"}, {"0", "0", "1", "0", "0"}, {"0", "0", \(1\/2\), \(1\/2\), "0"}, {"0", "0", "0", "1", "0"}, {"0", "0", "0", \(1\/2\), \(1\/2\)}, {"0", "0", "0", "0", "1"} }], "\[NoBreak]", ")"}], Function[ BoxForm`e$, MatrixForm[ BoxForm`e$]]]], "Output"] }, Closed]], Cell["Example", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(Show[ GraphicsArray[{\[IndentingNewLine]{plotCoeff[ Nest[S, p3, 0]], \[IndentingNewLine]plotCoeff[ Nest[S, p3, 1]]}, \[IndentingNewLine]{plotCoeff[ Nest[S, p3, 2]], \[IndentingNewLine]plotCoeff[ Nest[S, p3, 3]]}}]]\)], "Input", InitializationCell->True, CellTags->"FIG pwlin subdivision"], Cell[BoxData[ TagBox[\(\[SkeletonIndicator] GraphicsArray \[SkeletonIndicator]\), False, Editable->False]], "Output"] }, Open ]] }, Closed]] }, Open ]], Cell["Overview", "Section"] }, Open ]] }, FrontEndVersion->"4.0 for Microsoft Windows", ScreenRectangle->{{0, 1280}, {0, 951}}, AutoGeneratedPackage->None, WindowSize->{1016, 668}, WindowMargins->{{0, Automatic}, {Automatic, 0}}, Visible->True, Magnification->1.25, 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->7, FontSize->10, PrivateFontOptions->{"FontType"->"Outline"}] }, Open ]], 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"], Cell[ TextData[ { ValueBox[ "DateLong"]}], "Header"], Cell[ TextData[ {"Chapter ", CounterBox[ "Chapter"]}], "Header"]}, {Cell[ TextData[ {"Chapter ", CounterBox[ "Chapter"]}], "Header"], Cell[ TextData[ { ValueBox[ "DateLong"]}], "Header"], Cell[ TextData[ { CounterBox[ "Page"]}], "PageNumber"]}}, PageHeaderLines->{True, True}, PrintingOptions->{"PrintingMargins"->{{108, 72}, {72, 72}}, "FirstPageHeader"->False, "FacingPages"->True}, CellFrameLabelMargins->6, TextJustification->1, LineSpacing->{2, 0}, StyleMenuListing->None, FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell["Styles for Headings", "Section"], Cell[CellGroupData[{ Cell[StyleData["Title"], ShowCellBracket->False, CellMargins->{{0, 0}, {0, 0}}, PageBreakBelow->False, TextAlignment->Center, CounterIncrements->"Title", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}, { "Subtitle", 0}, {"Chapter", 0}}, FontSize->34, FontColor->GrayLevel[1], Background->RGBColor[0.571389, 0.19675, 0.570504]], Cell[StyleData["Title", "Presentation"], CellMargins->{{0, 0}, {0, 0}}, FontSize->44], Cell[StyleData["Title", "Condensed"], CellMargins->{{0, 0}, {0, 0}}, FontSize->20], Cell[StyleData["Title", "Printout"], CellMargins->{{0, 0}, {0, 0}}, FontSize->24, FontTracking->"Plain", Background->GrayLevel[0]] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Subtitle"], ShowCellBracket->False, CellMargins->{{0, 0}, {0, 0}}, PageBreakBelow->False, TextAlignment->Center, ParagraphIndent->-96, CounterIncrements->"Subtitle", CounterAssignments->{{"Section", 0}, {"Equation", 0}, {"Figure", 0}, { "Chapter", 0}}, FontFamily->"Helvetica", FontSize->18, FontColor->GrayLevel[1], Background->RGBColor[0.2, 0.700008, 0.700008]], Cell[StyleData["Subtitle", "Presentation"], CellMargins->{{0, 0}, {0, 0}}, ParagraphIndent->-157, FontSize->30], Cell[StyleData["Subtitle", "Condensed"], CellMargins->{{0, 0}, {0, 0}}, ParagraphIndent->-78, FontSize->14], Cell[StyleData["Subtitle", "Printout"], CellMargins->{{0, 0}, {0, 0}}, ParagraphIndent->-85, FontSize->16, Background->GrayLevel[0.6]] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Chapter"], CellFrame->False, ShowCellBracket->True, ShowGroupOpenCloseIcon->False, ShowShortBoxForm->False, CellMargins->{{10, 4}, {50, 150}}, CellGroupingRules->{"SectionGrouping", 20}, PageBreakBelow->False, CellFrameLabels->{{Cell[ TextData[ {"Chapter ", CounterBox[ "Chapter"], ": "}]], None}, {None, None}}, CounterIncrements->"Chapter", CounterAssignments->{{"Section", 0}, {"NumberedEquation", 0}, { "NumberedFigure", 0}, {"NumberedTable", 0}, {"Theorem", 0}}, FontFamily->"Helvetica", FontSize->24, FontSlant->"Italic", Background->GrayLevel[1]], Cell[StyleData["Chapter", "Presentation"], CellMargins->{{8, 10}, {40, 20}}, FontSize->24], Cell[StyleData["Chapter", "Condensed"], CellMargins->{{8, 10}, {12, 8}}, FontSize->12], Cell[StyleData["Chapter", "Printout"], CellMargins->{{9, 10}, {50, 10}}, FontSize->14] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Section"], CellFrame->False, CellDingbat->None, CellMargins->{{12, Inherited}, {4, 24}}, CellGroupingRules->{"SectionGrouping", 30}, PageBreakBelow->False, CellFrameMargins->6, CellFrameLabels->{{Cell[ TextData[ { CounterBox[ "Chapter"], ".", CounterBox[ "Section"], " "}]], None}, {None, None}}, CounterIncrements->"Section", CounterAssignments->{{"Subsection", 0}, {"Subsubsection", 0}}, FontFamily->"Helvetica", FontSize->18, FontWeight->"Bold", FontColor->GrayLevel[0]], Cell[StyleData["Section", "Presentation"], CellMargins->{{10, 10}, {8, 32}}, FontSize->24, FontTracking->"Condensed"], Cell[StyleData["Section", "Condensed"], CellMargins->{{8, Inherited}, {2, 12}}, FontSize->12], Cell[StyleData["Section", "Printout"], CellMargins->{{9, 0}, {2, 50}}, FontSize->14, FontTracking->"Plain", FontColor->GrayLevel[0]] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Subsection"], CellMargins->{{12, Inherited}, {8, 20}}, CellGroupingRules->{"SectionGrouping", 40}, PageBreakBelow->False, CellFrameLabels->{{Cell[ TextData[ { CounterBox[ "Chapter"], ".", CounterBox[ "Section"], ".", CounterBox[ "Subsection"], " "}]], None}, {None, None}}, CounterIncrements->"Subsection", CounterAssignments->{{"Subsubsection", 0}}, FontFamily->"Helvetica", FontSize->13, FontWeight->"Bold"], Cell[StyleData["Subsection", "Presentation"], CellMargins->{{11, 10}, {8, 32}}, FontSize->22], Cell[StyleData["Subsection", "Condensed"], CellMargins->{{8, Inherited}, {2, 12}}, FontSize->12], Cell[StyleData["Subsection", "Printout"], CellMargins->{{9, 0}, {4, 40}}, FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Subsubsection"], CellDingbat->"\[FilledSquare]", CellMargins->{{25, Inherited}, {8, 12}}, CellGroupingRules->{"SectionGrouping", 50}, PageBreakBelow->False, CounterIncrements->"Subsubsection", FontFamily->"Times", FontSize->12, FontWeight->"Bold"], Cell[StyleData["Subsubsection", "Presentation"], CellMargins->{{29, 10}, {8, 26}}, FontSize->18], Cell[StyleData["Subsubsection", "Condensed"], CellMargins->{{22, Inherited}, {2, 12}}, FontSize->10], Cell[StyleData["Subsubsection", "Printout"], CellMargins->{{21, 0}, {4, 20}}, FontSize->11] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Styles for Body Text", "Section"], Cell[CellGroupData[{ Cell[StyleData["Text"], CellMargins->{{12, 10}, {5, 5}}, PageBreakWithin->True, TextJustification->1, Hyphenation->True, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 12}, CounterIncrements->"Text", FontFamily->"Times"], Cell[StyleData["Text", "Presentation"], CellMargins->{{13, 10}, {8, 8}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 12}], Cell[StyleData["Text", "Condensed"], CellMargins->{{8, 10}, {4, 4}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 4}], Cell[StyleData["Text", "Printout"], CellMargins->{{9, 0}, {4, 4}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 6}] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Itemize"], CellDingbat->"\[FilledSmallCircle]", CellMargins->{{36, 10}, {5, 5}}, TextJustification->1, Hyphenation->True, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 12}, CounterIncrements->"Text", FontFamily->"Times"], Cell[StyleData["Itemize", "Presentation"], CellDingbat->"\[FilledSmallCircle]", CellMargins->{{36, 10}, {8, 8}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 12}], Cell[StyleData["Itemize", "Condensed"], CellDingbat->"\[FilledSmallCircle]", CellMargins->{{36, 10}, {4, 4}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 4}], Cell[StyleData["Itemize", "Printout"], CellDingbat->"\[FilledSmallCircle]", CellMargins->{{36, 0}, {4, 4}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 6}] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["ItemizeFollow"], CellMargins->{{36, 10}, {0, 0}}, TextJustification->1, Hyphenation->True, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 12}, CounterIncrements->"Text", FontFamily->"Times"], Cell[StyleData["ItemizeFollow", "Presentation"], CellMargins->{{36, 10}, {0, 0}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 12}], Cell[StyleData["ItemizeFollow", "Condensed"], CellMargins->{{36, 10}, {0, 0}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 4}], Cell[StyleData["ItemizeFollow", "Printout"], CellMargins->{{36, 0}, {0, 0}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 6}] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["SmallText"], CellMargins->{{12, 10}, {5, 5}}, TextJustification->1, Hyphenation->True, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, ParagraphSpacing->{0, 6}, CounterIncrements->"SmallText", FontFamily->"Helvetica", FontSize->9], Cell[StyleData["SmallText", "Presentation"], CellMargins->{{13, 10}, {8, 8}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, FontSize->12], Cell[StyleData["SmallText", "Condensed"], CellMargins->{{8, 10}, {2, 2}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, FontSize->9], Cell[StyleData["SmallText", "Printout"], CellMargins->{{9, 0}, {4, 4}}, TextJustification->1, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, FontSize->7] }, Open ]] }, Open ]], 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->{{52, 10}, {8, 8}}, Evaluatable->True, CellGroupingRules->"InputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, CellLabelMargins->{{5, Inherited}, {Inherited, Inherited}}, DefaultFormatType->DefaultInputFormatType, FormatType->InputForm, ShowStringCharacters->True, NumberMarks->True, CounterIncrements->"Input", FontWeight->"Bold", FontColor->GrayLevel[0], Background->RGBColor[0.500008, 1, 0.500008]], Cell[StyleData["Input", "Presentation"], CellMargins->{{62, Inherited}, {10, 10}}], Cell[StyleData["Input", "Condensed"], CellMargins->{{40, 10}, {4, 4}}], Cell[StyleData["Input", "Printout"], CellFrame->True, CellMargins->{{44, 0}, {6, 6}}, Background->None] }, Open ]], Cell[StyleData["InlineInput"], CellFrame->True, Evaluatable->True, CellGroupingRules->"InputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, DefaultFormatType->DefaultInputFormatType, AutoItalicWords->{}, FormatType->InputForm, ShowStringCharacters->True, NumberMarks->True, CounterIncrements->"Input", FontWeight->"Bold", Background->GrayLevel[0.849989]], Cell[CellGroupData[{ Cell[StyleData["Output"], CellMargins->{{52, 10}, {8, 8}}, CellEditDuplicate->True, CellGroupingRules->"OutputGrouping", CellHorizontalScrolling->True, PageBreakWithin->False, GroupPageBreakWithin->False, GeneratedCell->True, CellAutoOverwrite->True, CellLabelMargins->{{3, Inherited}, {Inherited, Inherited}}, DefaultFormatType->DefaultOutputFormatType, FormatType->InputForm, CounterIncrements->"Output", Background->RGBColor[1, 1, 0.300008]], Cell[StyleData["Output", "Presentation"], CellMargins->{{62, Inherited}, {12, 5}}], Cell[StyleData["Output", "Condensed"], CellMargins->{{40, Inherited}, {4, 1}}], Cell[StyleData["Output", "Printout"], CellFrame->True, CellMargins->{{44, 0}, {6, 2}}, Background->None] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Unique Styles", "Section"], Cell[CellGroupData[{ Cell[StyleData["Author"], ShowCellBracket->False, CellMargins->{{10, 4}, {2, 10}}, TextAlignment->Center, FontSize->16, FontSlant->"Italic"], Cell[StyleData["Author", "Presentation"], CellMargins->{{12, 10}, {2, 12}}, ParagraphSpacing->{0, 12}, FontSize->20], Cell[StyleData["Author", "Condensed"], CellMargins->{{8, 10}, {1, 4}}, ParagraphSpacing->{0, 4}, FontSize->12], Cell[StyleData["Author", "Printout"], CellMargins->{{9, 0}, {4, 12}}, ParagraphSpacing->{0, 6}, FontSize->14] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Copyright"], ShowCellBracket->False, CellMargins->{{10, 10}, {40, 2}}, FontFamily->"Helvetica", FontSize->9], Cell[StyleData["Copyright", "Presentation"], CellMargins->{{12, 10}, {50, 2}}, FontSize->12], Cell[StyleData["Copyright", "Condensed"], CellMargins->{{8, 10}, {12, 1}}, FontSize->9], Cell[StyleData["Copyright", "Printout"], CellMargins->{{9, 0}, {72, 4}}, FontSize->7] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Styles for Equations, Figures, Theorems etc.", "Section"], Cell["\<\ The following styles are useful for numbered equations, figures, etc. They \ automatically give the cell a FrameLabel containing a reference to a \ particular counter, and also increment that counter.\ \>", "Text"], Cell[StyleData["Reference"], CellFrame->False, PageBreakWithin->False, GroupPageBreakWithin->False, CellFrameLabels->{{Cell[ TextData[ {"[", CounterBox[ "Reference"], "] "}]], None}, {None, None}}, ShowStringCharacters->True, CounterIncrements->"Reference"], Cell[CellGroupData[{ Cell[StyleData["Example"], CellMargins->{{12, 10}, {5, 12}}, PageBreakBelow->False, ParagraphSpacing->{0, 12}, CounterIncrements->"Example", FontFamily->"Times", FontWeight->"Bold"], Cell[StyleData["Example", "Presentation"], CellMargins->{{18, 10}, {8, 20}}, ParagraphSpacing->{0, 12}], Cell[StyleData["Example", "Condensed"], CellMargins->{{8, 10}, {4, 8}}, ParagraphSpacing->{0, 4}], Cell[StyleData["Example", "Printout"], CellMargins->{{9, 0}, {4, 10}}, ParagraphSpacing->{0, 6}] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["ExampleCode"], CellMargins->{{24, 10}, {0, 10}}, PageBreakBelow->False, DefaultNewCellStyle->"ExampleCodeExplanation", ParagraphSpacing->{0, 12}, CounterIncrements->"Example", FontFamily->"Times", FontWeight->"Plain", FontColor->RGBColor[0, 0, 0.996109]], Cell[StyleData["ExampleCode", "Presentation"], CellMargins->{{18, 10}, {8, 10}}, ParagraphSpacing->{0, 12}], Cell[StyleData["ExampleCode", "Condensed"], CellMargins->{{8, 10}, {4, 10}}, ParagraphSpacing->{0, 4}], Cell[StyleData["ExampleCode", "Printout"], CellMargins->{{9, 0}, {0, 10}}, ParagraphSpacing->{0, 6}] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["ExampleCodeExplanation"], CellMargins->{{24, 10}, {10, 0}}, PageBreakAbove->False, DefaultNewCellStyle->"ExampleCode", ParagraphSpacing->{0, 12}, CounterIncrements->"Example", FontFamily->"Times", FontWeight->"Plain", FontColor->GrayLevel[0.749996]], Cell[StyleData["ExampleCodeExplanation", "Presentation"], CellMargins->{{18, 10}, {8, 20}}, PageBreakAbove->False, ParagraphSpacing->{0, 12}], Cell[StyleData["ExampleCodeExplanation", "Condensed"], CellMargins->{{8, 10}, {4, 8}}, PageBreakAbove->False, ParagraphSpacing->{0, 4}], Cell[StyleData["ExampleCodeExplanation", "Printout"], CellMargins->{{9, 0}, {4, 0}}, PageBreakAbove->False, ParagraphSpacing->{0, 6}] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Proof"], CellFrame->False, CellMargins->{{52, 10}, {0, 0}}, PageBreakWithin->False, PageBreakBelow->False, GroupPageBreakWithin->False, CellLabelMargins->{{23, Inherited}, {Inherited, Inherited}}, CellFrameLabels->{{Cell[ TextData[ {"Proof "}]], None}, {None, None}}, ShowStringCharacters->True, CounterIncrements->"Proof", FontFamily->"Helvetica", FontWeight->"Bold", FontColor->RGBColor[0.2, 0.700008, 0.700008], Background->None], Cell[StyleData["Proof", "Presentation"], CellMargins->{{62, Inherited}, {0, 0}}, PageBreakBelow->False], Cell[StyleData["Proof", "Condensed"], CellMargins->{{40, 10}, {0, 0}}, PageBreakBelow->False], Cell[StyleData["Proof", "Printout"], CellMargins->{{44, 0}, {0, 0}}, PageBreakBelow->False] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Theorem"], CellFrame->False, CellMargins->{{52, 10}, {0, 0}}, PageBreakWithin->False, PageBreakBelow->False, GroupPageBreakWithin->False, CellLabelMargins->{{23, Inherited}, {Inherited, Inherited}}, CellFrameLabels->{{Cell[ TextData[ {"Theorem ", CounterBox[ "Chapter"], ".", CounterBox[ "Theorem"], " "}]], None}, {None, None}}, ShowStringCharacters->True, CounterIncrements->"Theorem", FontFamily->"Helvetica", FontWeight->"Bold", FontColor->RGBColor[0.571389, 0.19675, 0.570504], Background->None], Cell[StyleData["Theorem", "Presentation"], CellMargins->{{62, Inherited}, {0, 0}}, PageBreakBelow->False], Cell[StyleData["Theorem", "Condensed"], CellMargins->{{40, 10}, {0, 0}}, PageBreakBelow->False], Cell[StyleData["Theorem", "Printout"], CellMargins->{{44, 0}, {0, 0}}, PageBreakBelow->False] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Exercise"], CellDingbat->"\[FilledDownTriangle]", CellMargins->{{23, Inherited}, {4, 18}}, CellGroupingRules->{"SectionGrouping", 50}, PageBreakBelow->False, CounterIncrements->"Subsubsection", FontFamily->"Times", FontSize->13, FontWeight->"Bold", FontColor->RGBColor[0.571389, 0.19675, 0.570504], Background->None], Cell[StyleData["Exercise", "Presentation"], CellMargins->{{33, 10}, {8, 26}}, FontSize->18], Cell[StyleData["Exercise", "Condensed"], CellMargins->{{17, Inherited}, {2, 12}}, FontSize->10], Cell[StyleData["Exercise", "Printout"], CellFrame->{{0, 0}, {0.5, 0}}, CellDingbat->None, CellMargins->{{9, 0}, {6, 20}}, FontSize->11, FontColor->GrayLevel[0]] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["TheoremProofText"], CellMargins->{{52, 10}, {5, 5}}, TextJustification->1, ParagraphSpacing->{0, 12}, CounterIncrements->"Text", FontFamily->"Times"], Cell[StyleData["TheoremProofText", "Presentation"], CellMargins->{{52, 10}, {8, 8}}, TextJustification->1, ParagraphSpacing->{0, 12}], Cell[StyleData["TheoremProofText", "Condensed"], CellMargins->{{8, 10}, {4, 4}}, TextJustification->1, ParagraphSpacing->{0, 4}], Cell[StyleData["TheoremProofText", "Printout"], CellMargins->{{52, 0}, {4, 4}}, TextJustification->1, ParagraphSpacing->{0, 6}] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["NumberedEquation"], CellMargins->{{62, 10}, {Inherited, Inherited}}, CellFrameLabels->{{None, Cell[ TextData[ {"(", CounterBox[ "Chapter"], ".", CounterBox[ "NumberedEquation"], ")"}]]}, {None, None}}, DefaultFormatType->DefaultInputFormatType, TextAlignment->Center, CounterIncrements->"NumberedEquation", FormatTypeAutoConvert->False], Cell[StyleData["NumberedEquation", "Presentation"], CellMargins->{{74, 10}, {Inherited, Inherited}}], Cell[StyleData["NumberedEquation", "Condensed"], CellMargins->{{52, 10}, {Inherited, Inherited}}], Cell[StyleData["NumberedEquation", "Printout"], CellMargins->{{54, 0}, {Inherited, Inherited}}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["Equation"], CellMargins->{{62, 10}, {Inherited, Inherited}}, DefaultFormatType->DefaultInputFormatType, TextAlignment->Center, FormatTypeAutoConvert->False], Cell[StyleData["Equation", "Presentation"], CellMargins->{{74, 10}, {Inherited, Inherited}}], Cell[StyleData["Equation", "Condensed"], CellMargins->{{52, 10}, {Inherited, Inherited}}], Cell[StyleData["Equation", "Printout"], CellMargins->{{54, 0}, {Inherited, Inherited}}] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["NumberedFigure"], CellMargins->{{0, 0}, {0, 24}}, CellFrameLabels->{{None, None}, {Cell[ TextData[ {"Figure ", CounterBox[ "Chapter"], ".", CounterBox[ "NumberedFigure"]}]], None}}, TextAlignment->Center, CounterIncrements->"NumberedFigure", FormatTypeAutoConvert->False], Cell[StyleData["NumberedFigure", "Presentation"]], Cell[StyleData["NumberedFigure", "Condensed"]], Cell[StyleData["NumberedFigure", "Printout"]] }, Open ]], Cell[CellGroupData[{ Cell[StyleData["Caption"], CellMargins->{{72, 72}, {24, 0}}, PageBreakAbove->False, PageBreakWithin->False, TextAlignment->Center, Hyphenation->True, HyphenationOptions->{"HyphenationCharacter"->"\[Hyphen]"}, FontSlant->"Italic"], Cell[StyleData["Caption", "Presentation"]], Cell[StyleData["Caption", "Condensed"]], Cell[StyleData["Caption", "Printout"]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["Styles for Headers and Footers", "Section"], Cell[StyleData["Header"], CellMargins->{{0, 0}, {4, 1}}, StyleMenuListing->None, FontFamily->"Helvetica", FontSize->9, FontSlant->"Italic"], Cell[StyleData["Footer"], CellMargins->{{0, 0}, {0, 4}}, StyleMenuListing->None, FontFamily->"Helvetica", FontSize->6], Cell[StyleData["PageNumber"], CellMargins->{{0, 0}, {4, 1}}, StyleMenuListing->None, FontFamily->"Helvetica", FontSize->9, FontWeight->"Bold"] }, Open ]], 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->GrayLevel[1], Background->RGBColor[1, 0.4, 0], ButtonBoxOptions->{ButtonFunction:>(FrontEndExecute[ { FrontEnd`NotebookLocate[ #2]}]&), Active->True, ButtonFrame->"None", ButtonNote->ButtonData}], Cell[StyleData["Hyperlink", "Presentation"]], Cell[StyleData["Hyperlink", "Condensed"]], Cell[StyleData["Hyperlink", "Printout"], FontColor->GrayLevel[0], Background->GrayLevel[1]] }, 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->GrayLevel[1], Background->RGBColor[1, 0.4, 0], 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], Background->GrayLevel[1]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["AddOnsLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontFamily->"Courier", FontColor->GrayLevel[1], Background->RGBColor[1, 0.4, 0], 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], Background->GrayLevel[1]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["RefGuideLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontFamily->"Courier", FontColor->GrayLevel[1], Background->RGBColor[1, 0.4, 0], 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], Background->GrayLevel[1]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["GettingStartedLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->GrayLevel[1], Background->RGBColor[1, 0.4, 0], 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], Background->GrayLevel[1]] }, Closed]], Cell[CellGroupData[{ Cell[StyleData["OtherInformationLink"], StyleMenuListing->None, ButtonStyleMenuListing->Automatic, FontColor->GrayLevel[1], Background->RGBColor[1, 0.4, 0], 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], Background->GrayLevel[1]] }, Closed]] }, Open ]] }, 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->{ "CHA introduction"->{ Cell[1739, 51, 125, 2, 341, "Chapter", CounterAssignments->{{"Chapter", 0}}, CellTags->"CHA introduction"]}, "FIG Sin plot"->{ Cell[3591, 108, 109, 2, 60, "Input", CellTags->"FIG Sin plot"]}, "FIG Param circle plot"->{ Cell[4156, 132, 179, 3, 60, "Input", CellTags->"FIG Param circle plot"]}, "FIG Impl circle plot"->{ Cell[4792, 156, 204, 3, 61, "Input", CellTags->"FIG Impl circle plot"]}, "FIG Bump plot"->{ Cell[6521, 207, 110, 2, 60, "Input", CellTags->"FIG Bump plot"]}, "SUBSEC bezier"->{ Cell[6825, 221, 72, 1, 74, "Subsection", CellTags->"SUBSEC bezier"]}, "FIG Bernstein plot"->{ Cell[7819, 259, 175, 3, 60, "Input", CellTags->"FIG Bernstein plot"]}, "FIG Bezier plot"->{ Cell[11353, 397, 235, 5, 123, "Input", CellTags->"FIG Bezier plot"]}, "FIG Interpolatory parabola"->{ Cell[11763, 412, 296, 6, 144, "Input", CellTags->"FIG Interpolatory parabola"]}, "EQN barycentric"->{ Cell[13626, 489, 569, 10, 77, "Input", InitializationCell->True, CellTags->"EQN barycentric"]}, "FIG Transformation"->{ Cell[15759, 565, 1340, 34, 153, "Input", CellTags->"FIG Transformation"]}, "FIG Sierpinski"->{ Cell[19192, 678, 368, 7, 165, "Input", CellTags->"FIG Sierpinski"]}, "FIG Koch one round"->{ Cell[21168, 741, 441, 8, 144, "Input", CellTags->"FIG Koch one round"]}, "FIG Koch four rounds"->{ Cell[21888, 766, 312, 6, 144, "Input", CellTags->"FIG Koch four rounds"]}, "FIG Koch"->{ Cell[22483, 787, 95, 2, 60, "Input", CellTags->"FIG Koch"]}, "FIG quad deCast"->{ Cell[24129, 844, 90, 2, 60, "Input", CellTags->"FIG quad deCast"]}, "FIG quad deCast four rounds"->{ Cell[24389, 856, 364, 7, 144, "Input", CellTags->"FIG quad deCast four rounds"]}, "FIG cubic deCast"->{ Cell[25026, 878, 92, 2, 60, "Input", CellTags->"FIG cubic deCast"]}, "FIG cubic deCast four rounds"->{ Cell[25288, 890, 405, 8, 165, "Input", CellTags->"FIG cubic deCast four rounds"]}, "SUBSEC piecewise lin"->{ Cell[25947, 914, 82, 1, 74, "Subsection", CellTags->"SUBSEC piecewise lin"]}, "FIG hat basis"->{ Cell[26967, 962, 316, 7, 102, "Input", CellTags->"FIG hat basis"]}, "FIG V0"->{ Cell[27567, 985, 278, 5, 60, "Input", CellTags->"FIG V0"]}, "FIG V1"->{ Cell[28404, 1016, 446, 8, 81, "Input", CellTags->"FIG V1"]}, "SUBSEC subdivision for pwlin"->{ Cell[29032, 1035, 106, 1, 53, "Subsection", CellTags->"SUBSEC subdivision for pwlin"]}, "FIG pwlin subdivision"->{ Cell[30511, 1086, 374, 8, 144, "Input", InitializationCell->True, CellTags->"FIG pwlin subdivision"]} } *) (*CellTagsIndex CellTagsIndex->{ {"CHA introduction", 59854, 2123}, {"FIG Sin plot", 59999, 2127}, {"FIG Param circle plot", 60103, 2130}, {"FIG Impl circle plot", 60215, 2133}, {"FIG Bump plot", 60319, 2136}, {"SUBSEC bezier", 60416, 2139}, {"FIG Bernstein plot", 60522, 2142}, {"FIG Bezier plot", 60626, 2145}, {"FIG Interpolatory parabola", 60740, 2148}, {"EQN barycentric", 60854, 2151}, {"FIG Transformation", 60992, 2155}, {"FIG Sierpinski", 61099, 2158}, {"FIG Koch one round", 61204, 2161}, {"FIG Koch four rounds", 61315, 2164}, {"FIG Koch", 61416, 2167}, {"FIG quad deCast", 61510, 2170}, {"FIG quad deCast four rounds", 61623, 2173}, {"FIG cubic deCast", 61739, 2176}, {"FIG cubic deCast four rounds", 61854, 2179}, {"SUBSEC piecewise lin", 61975, 2182}, {"FIG hat basis", 62084, 2185}, {"FIG V0", 62176, 2188}, {"FIG V1", 62260, 2191}, {"SUBSEC subdivision for pwlin", 62367, 2194}, {"FIG pwlin subdivision", 62494, 2197} } *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1739, 51, 125, 2, 341, "Chapter", CounterAssignments->{{"Chapter", 0}}, CellTags->"CHA introduction"], Cell[1867, 55, 434, 12, 82, "Text"], Cell[2304, 69, 369, 6, 117, "Text"], Cell[2676, 77, 561, 10, 118, "Text"], Cell[CellGroupData[{ Cell[3262, 91, 28, 0, 90, "Section"], Cell[CellGroupData[{ Cell[3315, 95, 71, 0, 60, "Subsubsection"], Cell[3389, 97, 177, 7, 48, "Text"], Cell[CellGroupData[{ Cell[3591, 108, 109, 2, 60, "Input", CellTags->"FIG Sin plot"], Cell[3703, 112, 130, 3, 60, "Output"] }, Open ]], Cell[3848, 118, 283, 10, 48, "Text"], Cell[CellGroupData[{ Cell[4156, 132, 179, 3, 60, "Input", CellTags->"FIG Param circle plot"], Cell[4338, 137, 130, 3, 60, "Output"] }, Open ]], Cell[4483, 143, 284, 9, 48, "Text"], Cell[CellGroupData[{ Cell[4792, 156, 204, 3, 61, "Input", CellTags->"FIG Impl circle plot"], Cell[4999, 161, 137, 3, 60, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[5185, 170, 43, 0, 53, "Subsection"], Cell[CellGroupData[{ Cell[5253, 174, 94, 1, 60, "Subsubsection"], Cell[5350, 177, 446, 12, 82, "Text"], Cell[5799, 191, 697, 12, 268, "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[6521, 207, 110, 2, 60, "Input", CellTags->"FIG Bump plot"], Cell[6634, 211, 130, 3, 60, "Output"] }, Open ]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[6825, 221, 72, 1, 74, "Subsection", CellTags->"SUBSEC bezier"], Cell[CellGroupData[{ Cell[6922, 226, 64, 0, 60, "Subsubsection"], Cell[6989, 228, 168, 8, 48, "Text"], Cell[7160, 238, 285, 8, 44, "Equation"], Cell[7448, 248, 346, 7, 124, "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[7819, 259, 175, 3, 60, "Input", CellTags->"FIG Bernstein plot"], Cell[7997, 264, 130, 3, 60, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[8176, 273, 60, 0, 49, "Subsubsection"], Cell[8239, 275, 390, 17, 48, "Text"], Cell[8632, 294, 185, 3, 58, "Equation"], Cell[8820, 299, 291, 6, 115, "Input", InitializationCell->True], Cell[9114, 307, 240, 11, 47, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[9391, 323, 69, 0, 49, "Subsubsection"], Cell[9463, 325, 194, 7, 47, "Text"], Cell[9660, 334, 278, 6, 102, "Input", InitializationCell->True], Cell[9941, 342, 241, 10, 47, "Text"], Cell[10185, 354, 355, 7, 102, "Input", InitializationCell->True] }, Closed]], Cell[CellGroupData[{ Cell[10577, 366, 33, 0, 49, "Subsubsection"], Cell[10613, 368, 40, 0, 47, "Text"], Cell[10656, 370, 672, 23, 128, "Input", InitializationCell->True], Cell[CellGroupData[{ Cell[11353, 397, 235, 5, 123, "Input", CellTags->"FIG Bezier plot"], Cell[11591, 404, 135, 3, 60, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[11763, 412, 296, 6, 144, "Input", CellTags->"FIG Interpolatory parabola"], Cell[12062, 420, 135, 3, 60, "Output"] }, Open ]] }, Closed]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[12270, 431, 27, 0, 90, "Section"], Cell[CellGroupData[{ Cell[12322, 435, 53, 0, 74, "Subsection"], Cell[CellGroupData[{ Cell[12400, 439, 48, 0, 60, "Subsubsection"], Cell[12451, 441, 239, 13, 47, "Text"], Cell[12693, 456, 596, 13, 92, "Input", InitializationCell->True], Cell[13292, 471, 331, 16, 47, "Text"], Cell[13626, 489, 569, 10, 77, "Input", InitializationCell->True, CellTags->"EQN barycentric"], Cell[14198, 501, 26, 0, 47, "Text"], Cell[CellGroupData[{ Cell[14249, 505, 241, 7, 92, "Input"], Cell[14493, 514, 87, 1, 60, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[14629, 521, 84, 1, 49, "Subsubsection"], Cell[14716, 524, 345, 15, 82, "Text"], Cell[15064, 541, 211, 6, 60, "Input", InitializationCell->True], Cell[15278, 549, 286, 5, 123, "Input", InitializationCell->True], Cell[15567, 556, 167, 5, 47, "Text"], Cell[CellGroupData[{ Cell[15759, 565, 1340, 34, 153, "Input", CellTags->"FIG Transformation"], Cell[17102, 601, 135, 3, 60, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[17286, 610, 66, 0, 49, "Subsubsection"], Cell[17355, 612, 115, 3, 47, "Text"], Cell[17473, 617, 144, 3, 60, "Input", InitializationCell->True], Cell[17620, 622, 339, 7, 123, "Input", InitializationCell->True] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[18008, 635, 45, 0, 74, "Subsection"], Cell[18056, 637, 201, 6, 47, "Text"], Cell[18260, 645, 792, 22, 112, "Input", InitializationCell->True], Cell[19055, 669, 112, 5, 47, "Text"], Cell[CellGroupData[{ Cell[19192, 678, 368, 7, 165, "Input", CellTags->"FIG Sierpinski"], Cell[19563, 687, 135, 3, 60, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[19747, 696, 40, 0, 53, "Subsection"], Cell[19790, 698, 203, 6, 47, "Text"], Cell[19996, 706, 1079, 29, 122, "Input", InitializationCell->True], Cell[21078, 737, 65, 0, 47, "Text"], Cell[CellGroupData[{ Cell[21168, 741, 441, 8, 144, "Input", CellTags->"FIG Koch one round"], Cell[21612, 751, 135, 3, 60, "Output"] }, Open ]], Cell[21762, 757, 101, 5, 47, "Text"], Cell[CellGroupData[{ Cell[21888, 766, 312, 6, 144, "Input", CellTags->"FIG Koch four rounds"], Cell[22203, 774, 135, 3, 60, "Output"] }, Open ]], Cell[22353, 780, 105, 3, 47, "Text"], Cell[CellGroupData[{ Cell[22483, 787, 95, 2, 60, "Input", CellTags->"FIG Koch"], Cell[22581, 791, 130, 3, 60, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[22760, 800, 43, 0, 53, "Subsection"], Cell[22806, 802, 207, 6, 47, "Text"], Cell[23016, 810, 355, 7, 134, "Input", InitializationCell->True], Cell[23374, 819, 132, 3, 47, "Text"], Cell[23509, 824, 387, 8, 123, "Input", InitializationCell->True], Cell[23899, 834, 60, 0, 47, "Text"], Cell[23962, 836, 90, 2, 60, "Input", InitializationCell->True], Cell[24055, 840, 49, 0, 47, "Text"], Cell[CellGroupData[{ Cell[24129, 844, 90, 2, 60, "Input", CellTags->"FIG quad deCast"], Cell[24222, 848, 130, 3, 60, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[24389, 856, 364, 7, 144, "Input", CellTags->"FIG quad deCast four rounds"], Cell[24756, 865, 135, 3, 60, "Output"] }, Open ]], Cell[24906, 871, 29, 0, 47, "Text"], Cell[24938, 873, 63, 1, 60, "Input"], Cell[CellGroupData[{ Cell[25026, 878, 92, 2, 60, "Input", CellTags->"FIG cubic deCast"], Cell[25121, 882, 130, 3, 60, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[25288, 890, 405, 8, 165, "Input", CellTags->"FIG cubic deCast four rounds"], Cell[25696, 900, 135, 3, 60, "Output"] }, Open ]] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[25892, 910, 30, 0, 90, "Section"], Cell[CellGroupData[{ Cell[25947, 914, 82, 1, 74, "Subsection", CellTags->"SUBSEC piecewise lin"], Cell[26032, 917, 282, 14, 47, "Text"], Cell[26317, 933, 142, 3, 60, "Input", InitializationCell->True], Cell[26462, 938, 135, 5, 47, "Text"], Cell[26600, 945, 180, 3, 60, "Input", InitializationCell->True], Cell[26783, 950, 159, 8, 47, "Text"], Cell[CellGroupData[{ Cell[26967, 962, 316, 7, 102, "Input", CellTags->"FIG hat basis"], Cell[27286, 971, 135, 3, 60, "Output"] }, Open ]], Cell[27436, 977, 106, 4, 47, "Text"], Cell[CellGroupData[{ Cell[27567, 985, 278, 5, 60, "Input", CellTags->"FIG V0"], Cell[27848, 992, 130, 3, 60, "Output"] }, Open ]], Cell[27993, 998, 386, 14, 47, "Text"], Cell[CellGroupData[{ Cell[28404, 1016, 446, 8, 81, "Input", CellTags->"FIG V1"], Cell[28853, 1026, 130, 3, 60, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[29032, 1035, 106, 1, 53, "Subsection", CellTags->"SUBSEC subdivision for pwlin"], Cell[29141, 1038, 170, 7, 47, "Text"], Cell[29314, 1047, 407, 9, 132, "Input", InitializationCell->True], Cell[29724, 1058, 59, 0, 47, "Text"], Cell[CellGroupData[{ Cell[29808, 1062, 67, 1, 60, "Input"], Cell[29878, 1065, 570, 14, 240, "Output"] }, Closed]], Cell[30463, 1082, 23, 0, 45, "Text"], Cell[CellGroupData[{ Cell[30511, 1086, 374, 8, 144, "Input", InitializationCell->True, CellTags->"FIG pwlin subdivision"], Cell[30888, 1096, 135, 3, 60, "Output"] }, Open ]] }, Closed]] }, Open ]], Cell[31062, 1104, 27, 0, 90, "Section"] }, Open ]] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)