home *** CD-ROM | disk | FTP | other *** search
/ Education Sampler 1992 [NeXTSTEP] / Education_1992_Sampler.iso / Mathematics / Notebooks / Cantor / Cantor2.ma < prev    next >
Text File  |  1992-08-07  |  25KB  |  348 lines

  1. (*^
  2.  
  3. ::[paletteColors = 128; showRuler; automaticGrouping; magnification = 125; currentKernel; 
  4.     fontset = title, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L1, e8,  24, "Times"; ;
  5.     fontset = subtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L1, e6,  18, "Times"; ;
  6.     fontset = subsubtitle, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, L1, e6,  14, "Times"; ;
  7.     fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, L1, a20,  18, "Times"; ;
  8.     fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, L1, a15,  14, "Times"; ;
  9.     fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, L1, a12,  12, "Times"; ;
  10.     fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  12;
  11.     fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  10, "Times"; ;
  12.     fontset = input, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L1,  12, "Courier"; ;
  13.     fontset = output, output, inactive, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5,  12, "Courier"; ;
  14.     fontset = message, inactive, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1,  12, "Courier"; ;
  15.     fontset = print, inactive, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1,  12, "Courier"; ;
  16.     fontset = info, inactive, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1,  12, "Courier"; ;
  17.     fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakBelow, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, L1,  12, "Courier"; ;
  18.     fontset = name, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, L1,  10, "Times"; ;
  19.     fontset = header, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  12;
  20.     fontset = Left Header, nohscroll, cellOutline,  12;
  21.     fontset = footer, inactive, nohscroll, noKeepOnOnePage, preserveAspect, center, M7, L1,  12;
  22.     fontset = Left Footer, cellOutline, blackBox,  12;
  23.     fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  10, "Times"; ;
  24.     fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  12;
  25.     fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  12, "Courier"; ;
  26.     fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  12;
  27.     fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  12;
  28.     fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  12;
  29.     fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  12;
  30.     fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1,  12;]
  31. :[font = title; inactive; preserveAspect; startGroup; ]
  32. The Cantor Function
  33. :[font = subsubtitle; inactive; preserveAspect; ]
  34. Steven R. Dunbar
  35. Department of Mathematics and Statistics
  36. University of Nebraska-Lincoln
  37. :[font = subsubtitle; inactive; preserveAspect; ]
  38. David Fowler
  39. Department of Curriculum and Instruction
  40. University of Nebraska-Lincoln
  41. :[font = smalltext; inactive; preserveAspect; right; ]
  42. ª Copyright  Steven R. Dunbar, David Fowler, 1992, All rights reserved.  T
  43. ;[s]
  44. 2:0,0;1,1;74,-1;
  45. 2:1,0,0,Symbol,0,10,0,0,0;1,9,7,Times,0,10,0,0,0;
  46. :[font = section; inactive; Cclosed; preserveAspect; startGroup; ]
  47. Before Starting
  48. :[font = input; preserveAspect; ]
  49. SetDirectory["mma"]
  50. :[font = input; preserveAspect; ]
  51. Get["CantorSet.ma"]
  52. :[font = subsubsection; inactive; Cclosed; preserveAspect; startGroup; ]
  53. Terminology:
  54. :[font = text; inactive; preserveAspect; endGroup; endGroup; ]
  55. You will need to have an understanding of the following terms to use this Notebook and solve the problems:uniform convergence, monotone function, jump discontinuity, left- and right- derivatives, Riemann-Stieltjes integral, moments.  Some problems may require the notion of measure and  Lebesgue integral.
  56. :[font = section; inactive; Cclosed; preserveAspect; startGroup; ]
  57. Cantor Functions 
  58. :[font = text; inactive; preserveAspect; ]
  59. In this Notebook we construct a function y(x) which is closely related to the Cantor set.  In fact, this function is increasing with its increase taking place only on the ``thinly scattered'' points of the Cantor set!.  Because it is an increasing function with value 0 at the left end of the defining interval, and value 1 at the right end of the defining interval, it can be considered as a cumulative distribution function of the sort considered in probability and statistics.  As such, it serves as an important example of a ``badly behaved function'' in a certain sense  discussed in measure theory and integration.  It is also of interest to consider the mean, the variance, and higher moments of this distribution as a concrete example of Riemann-Stieltjes integration.
  60. ;[s]
  61. 3:0,0;41,1;42,2;776,-1;
  62. 3:1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  63. :[font = text; inactive; preserveAspect; ]
  64. Let Ek,j, (j= 1,....2k-1) denote the open deleted intervals complementary to Ik in the sequential construction of C[[a,b], r1,r2], numbered from left to right in order.  Let yk(x) be the unique continuous function on [a,b] such that yk(a) = 0, yk(b) = 1, yk(x) is linear on each interval of Ik and Ek,j  and 
  65.     yk(x) = j 2-k     if x  ˛Ek,j  ,    j=1,...2k-1. 
  66. ;[s]
  67. 31:0,0;5,1;8,2;21,3;22,4;78,5;79,6;174,7;175,8;176,9;233,10;234,11;235,12;244,13;245,14;246,15;255,16;256,17;257,18;292,19;294,20;299,21;303,22;310,23;311,24;312,25;321,26;331,27;332,28;333,29;338,30;353,-1;
  68. 31:1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,0,0,Symbol,32,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,32,12,0,0,0;
  69. :[font = text; inactive; preserveAspect; ]
  70. Then  yk is clearly nondecreasing, yk+1 = yk on  Ek,j,  and 
  71.     ‰ yk+1(x) - yk(x)‰ < 2-k.
  72. Hence the sequence converges uniformly on [a,b].  Its limit y(x) is continuous, y(a) = 0, y(b)=1,  and y(x) is constant on any interval complementary to any set Ik. 
  73. ;[s]
  74. 35:0,0;6,1;7,2;8,3;35,4;36,5;39,6;42,7;43,8;44,9;50,10;53,11;62,12;65,13;68,14;74,15;75,16;76,17;79,18;80,19;84,20;86,21;148,22;149,23;168,24;169,25;178,26;179,27;181,28;186,29;191,30;192,31;250,32;251,33;252,34;253,-1;
  75. 35:1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;
  76. :[font = text; inactive; preserveAspect; ]
  77. Here is an illustration of the uniform convergence of these piecewise linear approximations.
  78. :[font = input; preserveAspect; ]
  79. Show[ Graphics[{cantorFunction[1],
  80.                 cantorFunction[2],
  81.                 cantorFunction[3]}
  82.               ],
  83.        Axes -> True,
  84.        AspectRatio -> Automatic]
  85. :[font = text; inactive; preserveAspect; ]
  86. And here is an illustration of ( a very close approximation, to within screen resolution of ) the  classical Cantor function.
  87. :[font = input; preserveAspect; ]
  88. Show[ Graphics[ cantorFunction[7]],
  89.     Axes -> True,
  90.     AspectRatio -> Automatic]
  91. :[font = text; inactive; preserveAspect; ]
  92. Here is an illustration of a generalized Cantor function, based on the generalized Cantor set with preservation ratios r1=1/10, and r2=1/2.5, that is, removing a portion 1 -( 1/10+1/2.5) at each stage.
  93. ;[s]
  94. 5:0,0;120,1;121,2;133,3;134,4;202,-1;
  95. 5:1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  96. :[font = input; preserveAspect; endGroup; ]
  97. Show[ Graphics[ psi[{0,2}, 1/10, 1/2.5, 7]],
  98.     Axes -> True,
  99.     AspectRatio -> Automatic]
  100. :[font = section; inactive; Cclosed; preserveAspect; startGroup; ]
  101. Symmetries and Functional Relations
  102. :[font = subsubsection; inactive; Cclosed; preserveAspect; startGroup; ]
  103. Symmetries of the Classical Cantor Function
  104. :[font = text; inactive; preserveAspect; ]
  105. It should be obvious from the graph that the classical Cantor function satisfies some symmetry relations.  These are 
  106.     y(0) = 0
  107.      y(x/3) = y(x)/2
  108.      y(1-x) = 1 - y(x).
  109. The exercises demonstrate that these symmetries completely characterize the classical Cantor function. 
  110. ;[s]
  111. 11:0,0;118,1;120,2;130,3;131,4;139,5;140,6;148,7;149,8;161,9;162,10;270,-1;
  112. 11:1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  113. :[font = text; inactive; preserveAspect; ]
  114. Using the recursive function definition possible with Mathematica  we can use these symmetries to draw the graph of the classical Cantor function.  First define the function using the symmetries, slightly rearranged:
  115. ;[s]
  116. 3:0,0;54,1;65,2;216,-1;
  117. 3:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  118. :[font = input; preserveAspect; ]
  119. f[0] := 0
  120. f[x_] := f[3 x] /2     /;   x <= 1/3
  121. f[x_] := 1 - f[1-x] /; 2/3 <= x
  122. :[font = text; inactive; preserveAspect; ]
  123. Define an operation to draw the constant portions of the graph on the complementary intervals: 
  124. :[font = input; preserveAspect; ]
  125. connect[{a_, b_}] := Module[{y=f[a]},Line[{{a,y},{b,y}}]]
  126. :[font = text; inactive; preserveAspect; ]
  127. Then draw an approximation to the Cantor function, together with some boxes to make the symmetries apparent.
  128. :[font = input; preserveAspect; ]
  129. Show[ Graphics[Join[
  130.  Map[connect, complementaryIntervals[4]],
  131.  { GrayLevel[0.5], Line[{{1/3,0},{1/3,1/2}}],
  132.    Line[{{0,1/2},{1/3,1/2}}],
  133.    Line[{{2/3,1/2},{1,1/2}}],
  134.    Line[{{2/3,1/2},{2/3,1}}]}],
  135.     AxesOrigin -> {0,0},
  136.     Axes -> True,
  137.     AspectRatio -> Automatic
  138.     ]]
  139. :[font = text; inactive; preserveAspect; ]
  140. Finally draw (a very good  approximation of, to within about screen resolution) the Cantor function using the recursivesymmetry relations to obtain the function values.   
  141. :[font = input; preserveAspect; endGroup; ]
  142. Show[ Graphics[ Map[connect, complementaryIntervals[7]],
  143.     Axes -> True,
  144.     AspectRatio -> Automatic
  145.     ]]
  146. :[font = subsubsection; inactive; Cclosed; preserveAspect; startGroup; ]
  147. The Cantor Set from a Chaos Game
  148. :[font = text; inactive; preserveAspect; ]
  149. The symmetries illustrated again  below shows that portions of the graph of the Cantor function are similar to sub-portions.  Alternatively, the graph of the Cantor function may be expressed as the union of affine contractions.  According to Barnsley's Collage Theorem, this means we may generate the graph of the Cantor function from an appropriate Chaos game.  
  150. :[font = input; preserveAspect; ]
  151. Show[ Graphics[Join[
  152.  Map[connect, complementaryIntervals[4]],
  153.  { GrayLevel[0.5], Line[{{1/3,0},{1/3,1/2}}],
  154.    Line[{{0,1/2},{1/3,1/2}}],
  155.    Line[{{2/3,1/2},{1,1/2}}],
  156.    Line[{{2/3,1/2},{2/3,1}}]}],
  157.     AxesOrigin -> {0,0},
  158.     Axes -> True,
  159.     AspectRatio -> Automatic
  160.     ]]
  161. :[font = input; preserveAspect; ]
  162. f1[{x1_, x2_}] := {x1/3, x2/2};
  163. f2[{x1_, x2_}] := {x1/3 + 1/3, 1/2};
  164. f3[{x1_, x2_}] := {x1/3 + 2/3, x2/2 + 1/2};
  165. f[{x1_,x2_}] := 
  166.     {f1,f2,f3}[[Random[Integer,{1,3}]]][{x1,x2}];
  167.  
  168. :[font = input; preserveAspect; ]
  169. ChaosGame[start_, n_] := 
  170.     Show[ Graphics[
  171.     {PointSize[0.001], Map[Point, NestList[f, start, n]]}],
  172.         PlotRange -> {{0,1},{0,1}}, Axes -> Automatic,
  173.         AspectRatio -> Automatic];
  174. :[font = input; preserveAspect; endGroup; ]
  175. ChaosGame[ {.1, .8}, 5000]
  176. :[font = subsubsection; inactive; Cclosed; preserveAspect; startGroup; ]
  177. Generalized Symmetries and Cantor Functions ``under pressure''
  178. :[font = text; inactive; preserveAspect; ]
  179. An interesting generalization is to introduce the parameter r into the symmetry relations as
  180.     y(0 ; r) = 0
  181.     y(x/3; r) = y(x; r)/(p+1)
  182.     yr(1-x; r) = 1 - r y(x; r) 
  183. ;[s]
  184. 13:0,0;94,1;95,2;108,3;109,4;120,5;121,6;135,7;136,8;137,9;154,10;156,11;160,12;163,-1;
  185. 13:1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;
  186. :[font = input; preserveAspect; ]
  187. f[0] := 0
  188. f[x_] := f[3 x] /(r + 1)    /;   x <= 1/3
  189. f[x_] := 1 - r f[1-x] /; 2/3 <= x
  190. :[font = input; preserveAspect; ]
  191. pressedCantorFunction[parameter_] := (r = parameter;
  192.     Show[Graphics[{Thickness[.001],
  193.     Map[connect, removedIntervals[6]]}],
  194.     PlotRange -> {{0,1},{0,1}},
  195.     Axes -> True,
  196.     AspectRatio -> Automatic]);
  197. Attributes[pressedCantorFunction] = {Listable}
  198. :[font = input; preserveAspect; endGroup; ]
  199. pressedCantorFunction[{.01,.1,.3,.5,1,4,10,100}]
  200. :[font = subsubsection; inactive; Cclosed; preserveAspect; startGroup; ]
  201. Symmetries of the Generalized Cantor Function 
  202. :[font = text; inactive; preserveAspect; endGroup; endGroup; ]
  203. The generalized Cantor function based on the Cantor set with ratios r1 and r2 (on the interval [0,1] for simplicity of notation) also satisfies some functional relationships:
  204.     y(r1 x; r1, r2)  = y(x; r1, r2)/2
  205.     y(1 - r2 x; r1, r2) = 1 - y(x,  r1,r2)/2
  206.     y( (1-x)r1 + x(1-r2); r1,r2) = 1/2
  207. :[font = section; inactive; Cclosed; preserveAspect; startGroup; ]
  208. Derivatives of the Cantor Function
  209. :[font = text; inactive; preserveAspect; ]
  210. It is easy to see from the graph of the Cantor Function that the derivative of the Cantor function is zero on the interior of any complementary interval.  This follows rigorously from the definition as a limit of piecewise linear functions.  At the endpoints of a complementary interval the derivative is more interesting.  For instance, at a right-endpoint of a  complementary interval, the left-derivative is zero.  Consider the following graph of secant lines approximating the derivative to the Cantor function at x = 2/3.  The secant lines are taken through the point on the graph of the Cantor function at an endpoint of another complementary interval to the right.
  211. :[font = input; preserveAspect; ]
  212. complementaryIntervals[5]
  213. :[font = text; inactive; preserveAspect; ]
  214. Define some functions to indicate the x-coordinate where the secant line will intersect the lines y = 1, and y = 0 ( at the top and bottom of the graphing region)
  215. :[font = input; preserveAspect; ]
  216. xtop[x_] := (1/2)*( 2/3 - x)/(1/2 - f[x]) +2/3
  217. :[font = input; preserveAspect; ]
  218. xbot[x_] := (-1/2)*( 2/3 - x)/(1/2 - f[x]) +2/3
  219. :[font = text; inactive; preserveAspect; ]
  220. Draw the Cantor function and several of the secant lines through endpoints chosen more or less arbitrarily from the list above.
  221. :[font = input; preserveAspect; ]
  222. Show[ Graphics[ {cantorFunction[6], 
  223.     Line[ {{xbot[20/27], 0}, {xtop[20/27], 1}}],
  224.     Line[ {{xbot[56/81], 0}, {xtop[56/81], 1}}],
  225.     Line[ {{xbot[163/243], 0}, {xtop[163/243], 1}}]},
  226.     Axes -> True, AspectRatio -> Automatic]]
  227.  
  228. :[font = input; preserveAspect; endGroup; ]
  229. Show[ GraphicsArray[
  230.          {
  231.             {cantorFunction[4],
  232.                 Line[{{xbot[20/27],0},{xtop[20/27],1}}]},
  233.             {cantorFunction[4],
  234.                 Line[{{xbot[56/81],0},{xtop[56/81],1}}]},
  235.             {cantorFunction[4],
  236.                 Line[{{xbot[163/243],0},{xtop[163/243],1}}]},
  237.         }]]
  238.  
  239. :[font = section; inactive; Cclosed; preserveAspect; startGroup; ]
  240. Riemann-Stieltjes Integrals
  241. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ]
  242. Riemann Integral
  243. :[font = text; inactive; preserveAspect; ]
  244. Since the Cantor function is continuous, it is integrable.  Using the functional relations, it is possible to find the value of the integral. 
  245.     ù01/3 y(x) dx = ù01 y(u/3) du/3 = (1/6) ù01  y(x) dx
  246. Then using the partitioned figure below:
  247.     ù01  y(x) dx  = (2/6) ù01  y(x) dx + 2/6, so ù01  y(x) dx  = 1/2.
  248. ;[s]
  249. 31:0,0;144,1;145,2;146,3;150,4;151,5;160,6;161,7;162,8;164,9;165,10;184,11;185,12;186,13;189,14;190,15;239,16;240,17;241,18;244,19;245,20;261,21;262,22;263,23;266,24;267,25;284,26;285,27;286,28;289,29;290,30;291,-1;
  250. 31:1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,18,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,18,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,18,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,18,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,18,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,18,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;
  251. :[font = input; preserveAspect; endGroup; ]
  252. Show[ Graphics[Join[
  253.  Map[connect, complementaryIntervals[7]],
  254.  {GrayLevel[0.6], Line[{{1/3,0},{1/3,1/2}}],
  255.    Line[{{2/3,0},{2/3,1/2}}],
  256.    Line[{{2/3,1/2},{1,1/2}}],
  257.    Line[{{1,0},{1,1}}]}],
  258.     AxesOrigin -> {0,0},
  259.     Axes -> True,
  260.     AspectRatio -> Automatic
  261.     ]]
  262. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup; ]
  263. First Moment as a Riemann-Stieltjes Integral
  264. :[font = text; inactive; preserveAspect; ]
  265. Since the Cantor function is increasing, it is a natural for use with Riemann-Stieltjes integration.  Alternatively, we can view the Cantor function as a cumulative distribution function for some probability and then calculate its mean:  ù01 x dy(x).  It is easiest to do this by calculating Riemann-Stieltjes sums for ù01 x dyk(x) and passing to the limit.
  266. ;[s]
  267. 14:0,0;238,1;239,2;240,3;241,4;245,5;246,6;319,7;320,8;321,9;322,10;326,11;327,12;328,13;357,-1;
  268. 14:1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,20,0,0,0;1,0,0,Symbol,64,12,0,0,0;1,0,0,Symbol,32,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,20,0,0,0;1,0,0,Symbol,64,12,0,0,0;1,0,0,Symbol,32,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  269. :[font = input; preserveAspect; ]
  270. intervals[3]
  271. :[font = input; preserveAspect; ]
  272. Midpoint[l_List] := (l[[1]] + l[[2]])/2
  273. :[font = input; preserveAspect; ]
  274. weight[l_List] := f[ l[[2]] ] - f[ l[[1]] ]  
  275. :[font = input; preserveAspect; ]
  276. RSsummand[l_List] := Midpoint[l] * weight[l]
  277. :[font = input; preserveAspect; ]
  278.  intervals[5];
  279. :[font = input; preserveAspect; ]
  280. Map[ RSsummand, %]
  281. :[font = input; preserveAspect; endGroup; endGroup; ]
  282. Apply[ Plus, %]
  283. :[font = section; inactive; Cclosed; preserveAspect; startGroup; ]
  284. Basic Exercises
  285. :[font = text; inactive; preserveAspect; ]
  286. 1. Give a clear and complete  proof that the sequence of functions yk(x) converges uniformly on {a,b}.
  287. ;[s]
  288. 6:0,0;67,1;68,2;69,3;96,4;97,5;102,-1;
  289. 6:1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  290. :[font = text; inactive; preserveAspect; ]
  291. 2. Suppose that f(x) is continous on [0,1], f(x) is differentiable almost everywhere, and f'(x) is integrable ( f'(x) ˛ L1[0,1]).  Is it necessarily true that 
  292.     f(1) - f(0) = ù01 f'(x) dx?
  293. ;[s]
  294. 9:0,0;118,1;120,2;121,3;122,4;175,5;176,6;177,7;178,8;188,-1;
  295. 9:1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  296. :[font = text; inactive; preserveAspect; ]
  297. 3. What are the functional relationships for the generalized Cantor function based on the generalized Cantor set on [a,b] with ratios r1, r2?
  298. :[font = text; inactive; preserveAspect; endGroup; ]
  299. 4. What is the area under the Cantor function ``under pressure'' with pressure parameter r?
  300. :[font = section; inactive; Cclosed; preserveAspect; startGroup; ]
  301. Try for Yourself
  302. :[font = text; inactive; preserveAspect; ]
  303. 1. Show that the Cantor function is strictly increasing on the Cantor set
  304. :[font = text; inactive; preserveAspect; ]
  305. 2. Let f(x) be monotone increasing function satisfying f(0) = 0, f(x/3) = f(x)/2, and f(1-x) = 1 - f(x).
  306. (a)  Show that f(x) and the classical Cantor function y(x) agree on a dense subset of [0,1].
  307. (b)  Show that therefore f(x) must be continuous.  (Recall that the only discontinuities of a monotone function are jump discontinuities).
  308. (c) Conclude that f(x) = y(x).
  309. ;[s]
  310. 5:0,0;159,1;160,2;362,3;364,4;367,-1;
  311. 5:1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  312. :[font = text; inactive; preserveAspect; ]
  313. 3. Show that at the right endpoint of a complementary interval, the Cantor function has  a right-derivative which is  infinite:  f+'(x) = ¥.
  314. ;[s]
  315. 5:0,0;130,1;131,2;132,3;138,4;140,-1;
  316. 5:1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,32,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,12,0,0,0;
  317. :[font = text; inactive; preserveAspect; endGroup; ]
  318. 4. Find and prove a  formula for the mean value of the generalized Cantor function with ratios r1 and r2.
  319. ;[s]
  320. 4:0,0;96,1;97,2;103,3;105,-1;
  321. 4:1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,11,8,Times,64,12,0,0,0;
  322. :[font = section; inactive; Cclosed; preserveAspect; startGroup; ]
  323. Have Fun with Mathematica
  324. :[font = text; inactive; preserveAspect; endGroup; ]
  325. 1. Devise some Mathematica code or procedures to animate the  secantlines through points on the graph of the Cantor function approaching the right-derivative at the endpoint of a complementary interval. 
  326. ;[s]
  327. 3:0,0;15,1;26,2;203,-1;
  328. 3:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  329. :[font = section; inactive; Cclosed; preserveAspect; startGroup; ]
  330. References
  331. :[font = text; inactive; preserveAspect; ]
  332. Information on the traditional Cantor function can be found anywhere there is information on the traditional Cantor set.  Two readily available sources are
  333. Principles of  Mathematical  Analysis,3rd edition, Walter Rudin, McGraw-Hill, New York, 1976
  334. and
  335. A Primer of Real Functions, Carus Mathematical Monographs 13, R. P. Boas, Mathematical Association of America, Washington, 1981.
  336. ;[s]
  337. 5:0,0;156,1;193,2;253,3;281,4;382,-1;
  338. 5:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  339. :[font = text; inactive; preserveAspect; ]
  340. The discussion of the functional relations and the symmetries of the traditional Cantor function comes from ``A Characterizationof the Cantor Function'', D. R. Chalice, Amer. Math. Monthly, Volume 98, Number 3, March 1991, pp. 255-259.   This article also contains the idea for the ``stressed'' Cantor function.
  341. :[font = text; inactive; preserveAspect; ]
  342. The definition of the Cantor function used here comes from  ``An Interesting Cantor Set'', W. A. Coppel, Amer. Math. Monthly, Volume 90, number 7, August-September 1983, pp.456-461.  The discussion of the moments of the Cantor function comes from the same source.
  343. :[font = text; inactive; preserveAspect; endGroup; endGroup; ]
  344. Some of the  ideas for the Mathematica code, and the animation of the generalized Cantor sets with a parameter are adapted from Mathematica in Action, Stan Wagon, W. H. Freeman, New York, 1991
  345. ;[s]
  346. 5:0,0;128,1;139,2;140,3;151,4;192,-1;
  347. 5:1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;
  348. ^*)