(*^ ::[ Information = "This is a Mathematica Notebook file. It contains ASCII text, and can be transferred by email, ftp, or other text-file transfer utility. It should be read or edited using a copy of Mathematica or MathReader. If you received this as email, use your mail application or copy/paste to save everything from the line containing (*^ down to the line containing ^*) into a plain text file. On some systems you may have to give the file a name ending with ".ma" to allow Mathematica to recognize it as a Notebook. The line below identifies what version of Mathematica created this file, but it can be opened using any other version as well."; FrontEndVersion = "NeXT Mathematica Notebook Front End Version 2.2"; NeXTStandardFontEncoding; fontset = title, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e8, 24, "Times"; ; fontset = subtitle, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, e6, 18, "Times"; ; fontset = subsubtitle, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, e6, 14, "Times"; ; fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, a20, 18, "Times"; ; fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, a15, 14, "Times"; ; fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, a12, 12, "Times"; ; fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12; fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; ; fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L-5, 12, "Courier"; ; fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; ; fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, R65535, L-5, 12, "Courier"; ; fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; ; fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, B65535, L-5, 12, "Courier"; ; fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, 12, "Courier"; ; fontset = name, inactive, noPageBreakInGroup, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, B65535, 10, "Times"; ; fontset = header, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12; fontset = leftheader, inactive, 12; fontset = footer, inactive, nohscroll, noKeepOnOnePage, preserveAspect, center, M7, 12; fontset = leftfooter, inactive, 12; fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 10, "Times"; ; fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12; fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12; fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12; fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12; fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12; fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12; fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, 12; paletteColors = 128; showRuler; automaticGrouping; currentKernel; ] :[font = title; inactive; dontNoPageBreakBelow; noKeepOnOnePage; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] Tweaking Mathematica for a Calculus Laboratory ;[s] 3:0,0;9,1;20,2;46,-1; 3:1,16,12,Times,1,18,0,0,0;1,17,13,Times,3,18,0,0,0;1,16,12,Times,1,18,0,0,0; :[font = subtitle; inactive; preserveAspect] Mathematica in Education Vol.2 No.4 (October 1993) ;[s] 2:0,0;24,1;50,-1; 2:1,17,13,Times,3,18,0,0,0;1,16,12,Times,1,18,0,0,0; :[font = subsubtitle; inactive; dontNoPageBreakBelow; noKeepOnOnePage; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] by John Costango and Barry Tesman Department of Mathematics and Computer Science Dickinson College :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] As part of an ongoing project of calculus reform at Dickinson College, we have developed introductory calculus courses using a microcomputer laboratory. Most recently, our work has centered on developing MathematicaÐbased labs for the second semester of calculus. Although Mathematica's capabilites as a research tool and a programming environment surpass most other computer algebra systems currently available, its usefulness as an educational tool often falls short. In practice in an introductory classroom setting, Mathematica users are not yet initiates with the language of calculus or the language of Mathematica, but rather find both new, confusing, and sometimes alienating. Essentially we tried to make Mathematica output as clear as possible so that a beginning calculus student could make the most of the results rather than be impeded or confused by them. In this article, we will show how we worked with Mathematica's shortcomings as introductory laboratory software in three areas: factorization of quadratic polynomials, polar plotting, and plotting of discontinuous functions. In no case do we claim to be fixing "bugs" in Mathematica, nor do we believe that Mathematica should have been necessarily designed differently. Instead we believe that in our labs Mathematica must speak first and foremost to the students of calculus. ;[s] 22:0,0;1,1;205,2;216,3;279,4;290,5;527,6;538,7;616,8;627,9;722,10;733,11;932,12;943,13;1156,14;1167,15;1192,16;1203,17;1283,18;1286,19;1292,20;1303,21;1362,-1; 22:1,16,12,Times,1,18,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;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;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;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;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;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = section; inactive; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] Factor :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] Mathematica's Factor command will factor many polynomials. For example: ;[s] 4:0,0;15,1;18,2;24,3;77,-1; 4:1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] Factor[x^2-x-6] :[font = output; output; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; endGroup] (-3 + x)*(2 + x) ;[o] (-3 + x) (2 + x) :[font = input; Cclosed; preserveAspect; startGroup] Factor[-21*2^(1/2) - 21*x - 2^(5/2)*x - 4*x^2 + 2^(1/2)*x^2 + x^3] :[font = output; output; inactive; preserveAspect; endGroup] (-7 + x)*(3 + x)*(2^(1/2) + x) ;[o] (-7 + x) (3 + x) (Sqrt[2] + x) :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] However, Mathematica will not factor other similar polynomials. ;[s] 3:0,0;9,1;20,2;64,-1; 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; :[font = input; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] Factor[x^2-6] :[font = output; output; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; endGroup] -6 + x^2 ;[o] 2 -6 + x :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] The intricacies of Mathematica's internal algorithms used for Factor are unknown to us, but it seems obvious that Mathematica is only set up to factor over the integers. A student may be confused and/or annoyed at Mathematica's seeming inability to factor polynomials that they themselves could factor with paper and pencil. With all due respect to the consistency of the system, however, we felt that Factor would serve our purposes better if it factored quadratics completely over the real numbers. We first noted this importance while developing a set of commands which "walk" students through the integration technique of partial fraction decomposition. The following code selectively alters (by applying specific conditions) Mathematica's internal algorithms to give us the desired result: ;[s] 11:0,0;23,1;34,2;66,3;72,4;118,5;129,6;220,7;231,8;412,9;418,10;807,-1; 11: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,1,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;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] RealFactorableQuadraticQ::usage= "RealFactorableQuadraticQ[poly] returns True if the polynomial is a qradratic factorable over the reals and False otherwise."; :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] RealFactorableQuadraticQ[expr_]:= Module[{}, If[PolynomialQ[expr,Variables[expr][[1]]] && Exponent[expr,Variables[expr][[1]]]==2 && Coefficient[expr,Variables[expr][[1]]]^2- 4*Coefficient[expr,Variables[expr][[1]],2]* Coefficient[expr,Variables[expr][[1]],0]>=0, Return[True], Return[False], Return[False]] ] :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] Unprotect[Factor]; :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] Factor[expr_?RealFactorableQuadraticQ]:= (Variables[expr][[1]]- Together[(-Coefficient[expr,Variables[expr][[1]],1]+ Sqrt[Coefficient[expr,Variables[expr][[1]],1]^2- 4*Coefficient[expr,Variables[expr][[1]],2]* Coefficient[expr,Variables[expr][[1]],0]]/ 2*Coefficient[expr,Variables[expr][[1]],2])])* (Variables[expr][[1]]+ Together[(-Coefficient[expr,Variables[expr][[1]],1]+ Sqrt[Coefficient[expr,Variables[expr][[1]],1]^2- 4*Coefficient[expr,Variables[expr][[1]],2]* Coefficient[expr,Variables[expr][[1]],0]]/ 2*Coefficient[expr,Variables[expr][[1]],2])]) :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] Protect[Factor]; :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] By including this code, Mathematica will now factor all quadratic polynomials over the real numbers. For example, we return to the last example from above. ;[s] 3:0,0;24,1;35,2;157,-1; 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; :[font = input; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] Factor[x^2-6] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] (-6^(1/2) + x)*(6^(1/2) + x) ;[o] (-Sqrt[6] + x) (Sqrt[6] + x) :[font = section; inactive; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] PolarPlot :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] The Graphics`Graphics package contains Mathematica code which suppots several different types of plots: LogPlot, LogLogPlot, PolarPlot, etc. The code for these commands is rather simple, relying primarily on Mathematica's Plot and ParametricPlot functions. Here is Mathematica's code for PolarPlot: ;[s] 7:0,0;44,1;55,2;216,3;227,4;274,5;285,6;308,-1; 7: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;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = input; Cclosed; preserveAspect; startGroup] ??PolarPlot :[font = print; inactive; preserveAspect; endGroup] PolarPlot[r, {t, tmin, tmax}] generates a polar plot of r as a function of t. PolarPlot[{r1, r2, ...}, {t, tmin, tmax}] plots each of the ri as a function of t on the same graph. Attributes[PolarPlot] = {HoldAll} fix this***************** :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] Mathematica's code allows the user to plot a polar function r = f[q], but it doesn't really provide a polar plot of r per se. Rather it superimposes r = f[q]'s polar representation onto a Cartesian grid. Consequently, the Cartesian picture of r = f[q] eclipses the entire notion of a radius function dependent upon rotation about a pole. We tell our students not to think of polar functions as {x,y} coordinate pairs, but instead to visualize the sweep of q and the reach of the corresponding r. But how can we think to illustrate the fundamental differences between a Cartesian and polar plot when the PolarPlot command does nothing but convert a polar function to a parametric representation and proceed to plot the parametric equations on a Cartesian grid? Mathematica's succint code aids only those users for whom the general shape and visual appearance of the function is more important than the {r,q} relationship. Even though it has its disadvantages (for example, it is slower), our PolarPlot code results in generally superior graphics over Mathematica's original version. Notably, PolarPlot shows polar functions on a polar grid with radial lines at 0, Pi/4, Pi/2, 3Pi/4, 5Pi/4, and 3Pi/2. Furthermore, the AspectRatio is permanently fixed at 1 (not 1/GoldenRatio, the default for Mathematica's PolarPlot) and thus does not distort curvature. Below are two graphs of the same polar function r = 3*Cos[2*Sin[q]] over the interval 0 ² q ² 2Pi. ;[s] 30:0,0;16,1;71,2;72,3;123,4;129,5;161,6;162,7;256,8;257,9;464,10;465,11;612,12;621,13;774,14;785,15;918,16;919,17;1010,18;1020,19;1069,20;1080,21;1111,22;1120,23;1312,24;1323,25;1443,26;1444,27;1469,28;1470,29;1478,-1; 30:1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,10,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;1,0,0,Symbol,0,10,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,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;1,0,0,Symbol,0,10,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,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;1,10,8,Times,1,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;1,0,0,Symbol,0,10,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] CosTesFig.1.eps :[font = input; preserveAspect] << /Users/wellin/MathInEd/InitStuff.m :[font = input; preserveAspect] Needs["Graphics`Graphics`"] :[font = input; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] PolarPlot[3Cos[2Sin[q]],{q,0,2Pi}]; ;[s] 5:0,0;20,1;21,2;25,3;26,4;35,-1; 5:1,10,8,Courier,1,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,10,8,Courier,1,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,10,8,Courier,1,12,0,0,0; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 240; pictureHeight = 99; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: .41615 MathPictureStart %% Graphics /Helvetica findfont 6 scalefont setfont % Scaling calculations 0.5 0.15873 0.208073 0.15873 [ [(-3)] .02381 .20807 0 2 Msboxa [(-2)] .18254 .20807 0 2 Msboxa [(-1)] .34127 .20807 0 2 Msboxa [(1)] .65873 .20807 0 2 Msboxa [(2)] .81746 .20807 0 2 Msboxa [(3)] .97619 .20807 0 2 Msboxa [(-1)] .4875 .04934 1 0 Msboxa [(-0.5)] .4875 .12871 1 0 Msboxa [(0.5)] .4875 .28744 1 0 Msboxa [(1)] .4875 .3668 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .41715 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .02381 .20807 m .02381 .21432 L s P [(-3)] .02381 .20807 0 2 Mshowa p .002 w .18254 .20807 m .18254 .21432 L s P [(-2)] .18254 .20807 0 2 Mshowa p .002 w .34127 .20807 m .34127 .21432 L s P [(-1)] .34127 .20807 0 2 Mshowa p .002 w .65873 .20807 m .65873 .21432 L s P [(1)] .65873 .20807 0 2 Mshowa p .002 w .81746 .20807 m .81746 .21432 L s P [(2)] .81746 .20807 0 2 Mshowa p .002 w .97619 .20807 m .97619 .21432 L s P [(3)] .97619 .20807 0 2 Mshowa p .001 w .05556 .20807 m .05556 .21182 L s P p .001 w .0873 .20807 m .0873 .21182 L s P p .001 w .11905 .20807 m .11905 .21182 L s P p .001 w .15079 .20807 m .15079 .21182 L s P p .001 w .21429 .20807 m .21429 .21182 L s P p .001 w .24603 .20807 m .24603 .21182 L s P p .001 w .27778 .20807 m .27778 .21182 L s P p .001 w .30952 .20807 m .30952 .21182 L s P p .001 w .37302 .20807 m .37302 .21182 L s P p .001 w .40476 .20807 m .40476 .21182 L s P p .001 w .43651 .20807 m .43651 .21182 L s P p .001 w .46825 .20807 m .46825 .21182 L s P p .001 w .53175 .20807 m .53175 .21182 L s P p .001 w .56349 .20807 m .56349 .21182 L s P p .001 w .59524 .20807 m .59524 .21182 L s P p .001 w .62698 .20807 m .62698 .21182 L s P p .001 w .69048 .20807 m .69048 .21182 L s P p .001 w .72222 .20807 m .72222 .21182 L s P p .001 w .75397 .20807 m .75397 .21182 L s P p .001 w .78571 .20807 m .78571 .21182 L s P p .001 w .84921 .20807 m .84921 .21182 L s P p .001 w .88095 .20807 m .88095 .21182 L s P p .001 w .9127 .20807 m .9127 .21182 L s P p .001 w .94444 .20807 m .94444 .21182 L s P p .002 w 0 .20807 m 1 .20807 L s P p .002 w .5 .04934 m .50625 .04934 L s P [(-1)] .4875 .04934 1 0 Mshowa p .002 w .5 .12871 m .50625 .12871 L s P [(-0.5)] .4875 .12871 1 0 Mshowa p .002 w .5 .28744 m .50625 .28744 L s P [(0.5)] .4875 .28744 1 0 Mshowa p .002 w .5 .3668 m .50625 .3668 L s P [(1)] .4875 .3668 1 0 Mshowa p .001 w .5 .06522 m .50375 .06522 L s P p .001 w .5 .08109 m .50375 .08109 L s P p .001 w .5 .09696 m .50375 .09696 L s P p .001 w .5 .11284 m .50375 .11284 L s P p .001 w .5 .14458 m .50375 .14458 L s P p .001 w .5 .16045 m .50375 .16045 L s P p .001 w .5 .17633 m .50375 .17633 L s P p .001 w .5 .1922 m .50375 .1922 L s P p .001 w .5 .22395 m .50375 .22395 L s P p .001 w .5 .23982 m .50375 .23982 L s P p .001 w .5 .25569 m .50375 .25569 L s P p .001 w .5 .27157 m .50375 .27157 L s P p .001 w .5 .30331 m .50375 .30331 L s P p .001 w .5 .31918 m .50375 .31918 L s P p .001 w .5 .33506 m .50375 .33506 L s P p .001 w .5 .35093 m .50375 .35093 L s P p .001 w .5 .03347 m .50375 .03347 L s P p .001 w .5 .0176 m .50375 .0176 L s P p .001 w .5 .00172 m .50375 .00172 L s P p .001 w .5 .38268 m .50375 .38268 L s P p .001 w .5 .39855 m .50375 .39855 L s P p .001 w .5 .41442 m .50375 .41442 L s P p .002 w .5 0 m .5 .41615 L s P P 0 0 m 1 0 L 1 .41615 L 0 .41615 L closepath clip newpath p p .004 w .97619 .20807 m .97611 .21197 L .97587 .21586 L .97547 .21975 L .97492 .22362 L .9742 .22748 L .97333 .23133 L .97111 .23895 L .96827 .24647 L .96482 .25385 L .95612 .26812 L .94512 .28156 L .93194 .29399 L .91674 .30524 L .8997 .31517 L .88102 .32366 L .8609 .33058 L .85037 .33344 L .83957 .33588 L .82852 .3379 L .81726 .33948 L .81155 .34012 L .8058 .34064 L .80001 .34106 L .79419 .34137 L .78833 .34157 L .78245 .34166 L .77654 .34165 L .77061 .34152 L .76466 .34129 L .75869 .34095 L .75272 .34051 L .74674 .33996 L .73477 .33854 L .72282 .33672 L .69905 .33185 L .67565 .32544 L .6307 .30837 L .58931 .28639 L .55251 .26058 L .52106 .23208 L .49539 .20206 L .47566 .17164 L .46177 .14186 L .45693 .1275 L .45502 .12051 L .45343 .11364 L .45216 .10693 L .4512 .10037 L .45083 .09716 L Mistroke .45054 .09399 L .45032 .09086 L .45017 .08778 L .45009 .08474 L .45008 .08176 L .45014 .07882 L .45027 .07594 L .45046 .0731 L .45071 .07032 L .45103 .06759 L .45141 .06492 L .45234 .05974 L .4535 .05478 L .45646 .04559 L .4602 .03737 L .46461 .03018 L .46962 .02404 L .47511 .01898 L .48099 .01502 L .48404 .01346 L .48716 .01218 L .49033 .01119 L .49193 .0108 L .49353 .01048 L .49514 .01023 L .49676 .01005 L .49838 .00994 L .5 .00991 L .50162 .00994 L .50324 .01005 L .50486 .01023 L .50647 .01048 L .50967 .01119 L .51284 .01218 L .51596 .01346 L .51901 .01502 L .52489 .01898 L .53038 .02404 L .53539 .03018 L .5398 .03737 L .54354 .04559 L .5465 .05478 L .54766 .05974 L .54859 .06492 L .54897 .06759 L .54929 .07032 L .54954 .0731 L .54973 .07594 L .54986 .07882 L .54992 .08176 L Mistroke .54991 .08474 L .54983 .08778 L .54968 .09086 L .54946 .09399 L .5488 .10037 L .54784 .10693 L .54657 .11364 L .54307 .1275 L .53823 .14186 L .52434 .17164 L .50461 .20206 L .47894 .23208 L .44749 .26058 L .41069 .28639 L .3693 .30837 L .34719 .31758 L .32435 .32544 L .30095 .33185 L .2891 .33448 L .27718 .33672 L .26523 .33854 L .25924 .3393 L .25326 .33996 L .24728 .34051 L .24131 .34095 L .23534 .34129 L .22939 .34152 L .22346 .34165 L .21755 .34166 L .21167 .34157 L .20581 .34137 L .19999 .34106 L .1942 .34064 L .18274 .33948 L .17148 .3379 L .16043 .33588 L .1391 .33058 L .11898 .32366 L .1003 .31517 L .08326 .30524 L .06806 .29399 L .05488 .28156 L .04388 .26812 L .03923 .26108 L .03518 .25385 L .03173 .24647 L .02889 .23895 L .02667 .23133 L .0258 .22748 L .02508 .22362 L Mistroke .02453 .21975 L .02413 .21586 L .02389 .21197 L .02381 .20807 L .02389 .20418 L .02413 .20029 L .02453 .1964 L .02508 .19253 L .02667 .18482 L .02889 .1772 L .03173 .16968 L .03518 .16229 L .04388 .14802 L .05488 .13458 L .06806 .12216 L .08326 .1109 L .1003 .10097 L .11898 .09249 L .1391 .08556 L .16043 .08027 L .17148 .07825 L .18274 .07666 L .18845 .07603 L .1942 .0755 L .19999 .07509 L .20581 .07478 L .21167 .07458 L .21755 .07449 L .22346 .0745 L .22939 .07463 L .23534 .07486 L .24131 .07519 L .24728 .07564 L .25326 .07619 L .26523 .0776 L .27718 .07943 L .30095 .08429 L .32435 .09071 L .3693 .10778 L .41069 .12975 L .44749 .15556 L .47894 .18406 L .50461 .21408 L .52434 .2445 L .532 .25954 L .53823 .27429 L .54307 .28864 L .54657 .3025 L .54784 .30922 L .5488 .31577 L Mistroke .54917 .31899 L .54946 .32216 L .54968 .32529 L .54983 .32837 L .54991 .3314 L .54992 .33439 L .54986 .33732 L .54973 .34021 L .54954 .34304 L .54929 .34583 L .54897 .34855 L .54859 .35123 L .5465 .36136 L .54512 .36608 L .54354 .37056 L .5398 .37878 L .53539 .38597 L .53038 .39211 L .52489 .39717 L .522 .39929 L .51901 .40113 L .51596 .40268 L .51284 .40396 L .50967 .40496 L .50807 .40535 L .50647 .40567 L .50486 .40592 L .50324 .4061 L .50162 .4062 L .5 .40624 L .49838 .4062 L .49676 .4061 L .49514 .40592 L .49353 .40567 L .49033 .40496 L .48716 .40396 L .48404 .40268 L .48099 .40113 L .47511 .39717 L .46962 .39211 L .46461 .38597 L .4602 .37878 L .45646 .37056 L .45488 .36608 L .4535 .36136 L .45234 .35641 L .45141 .35123 L .45103 .34855 L .45071 .34583 L .45046 .34304 L Mistroke .45027 .34021 L .45014 .33732 L .45008 .33439 L .45009 .3314 L .45017 .32837 L .45032 .32529 L .45054 .32216 L .45083 .31899 L .4512 .31577 L .45343 .3025 L .45502 .29564 L .45693 .28864 L .46177 .27429 L .47566 .2445 L .49539 .21408 L .52106 .18406 L .55251 .15556 L .58931 .12975 L .6307 .10778 L .65281 .09857 L .67565 .09071 L .69905 .08429 L .7109 .08166 L .72282 .07943 L .73477 .0776 L .74076 .07684 L .74674 .07619 L .75272 .07564 L .75869 .07519 L .76466 .07486 L .77061 .07463 L .77654 .0745 L .78245 .07449 L .78833 .07458 L .79419 .07478 L .80001 .07509 L .8058 .0755 L .81155 .07603 L .81726 .07666 L .82852 .07825 L .83957 .08027 L .8609 .08556 L .88102 .09249 L .8997 .10097 L .91674 .1109 L .93194 .12216 L .94512 .13458 L .95612 .14802 L .96077 .15507 L .96482 .16229 L Mistroke .96827 .16968 L .97111 .1772 L .97333 .18482 L .9742 .18866 L .97492 .19253 L .97547 .1964 L .97587 .20029 L .97611 .20418 L .97619 .20807 L Mfstroke P P % End of Graphics MathPictureEnd :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] CosTesFig.2.eps :[font = input; preserveAspect] << /Users/wellin/MathInEd/Vol.2_No.4/L.Hall/CostangoTesman/DCPolarPlot.m :[font = input; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] DCPolarPlot[3Cos[2Sin[q]],{q,0,2Pi}]; ;[s] 5:0,0;22,1;23,2;27,3;28,4;37,-1; 5:1,10,8,Courier,1,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,10,8,Courier,1,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,10,8,Courier,1,12,0,0,0; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 34; pictureWidth = 240; pictureHeight = 240; endGroup] %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart %% Graphics /Helvetica findfont 6 scalefont setfont % Scaling calculations 0.5 0.15873 0.5 0.15873 [ [ -0.001 -0.001 0 0 ] [ 1.001 1.001 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w 0 0 m 1 0 L s P p .002 w 0 0 m 0 1 L s P P p p .002 w 0 1 m 1 1 L s P p .002 w 1 0 m 1 1 L s P P p P 0 0 m 1 0 L 1 1 L 0 1 L closepath clip newpath p p .559 .554 .434 r .001 w .5 .5 m 0 0 L s P p .559 .554 .434 r .001 w .5 .5 m 0 1 L s P p .559 .554 .434 r .001 w .5 .5 m 1 0 L s P p .559 .554 .434 r .001 w .5 .5 m 1 1 L s P p .559 .554 .434 r .001 w .5 0 m .5 1 L s 0 .5 m 1 .5 L s P p .559 .554 .434 r .001 w newpath .5 .5 0 0 365.72958 arc s P p .559 .554 .434 r .001 w newpath .5 .5 .15873 0 365.72958 arc s P p .559 .554 .434 r .001 w newpath .5 .5 .31746 0 365.72958 arc s P p .559 .554 .434 r .001 w newpath .5 .5 .47619 0 365.72958 arc s P p .046 .038 .025 r [(0.)] .5 .5 0 0 Mshowa [(0.)] .5 .5 0 0 Mshowa [(0.)] .5 .5 0 0 Mshowa [(0.)] .5 .5 0 0 Mshowa [(0.)] .5 .5 0 0 Mshowa [(0.)] .5 .5 0 0 Mshowa [(0.)] .5 .5 0 0 Mshowa [(0.)] .5 .5 0 0 Mshowa P p .046 .038 .025 r [(1.)] .61224 .61224 0 0 Mshowa [(1.)] .61224 .38776 0 0 Mshowa [(1.)] .38776 .61224 0 0 Mshowa [(1.)] .38776 .38776 0 0 Mshowa [(1.)] .65873 .5 0 0 Mshowa [(1.)] .34127 .5 0 0 Mshowa [(1.)] .5 .65873 0 0 Mshowa [(1.)] .5 .34127 0 0 Mshowa P p .046 .038 .025 r [(2.)] .72448 .72448 0 0 Mshowa [(2.)] .72448 .27552 0 0 Mshowa [(2.)] .27552 .72448 0 0 Mshowa [(2.)] .27552 .27552 0 0 Mshowa [(2.)] .81746 .5 0 0 Mshowa [(2.)] .18254 .5 0 0 Mshowa [(2.)] .5 .81746 0 0 Mshowa [(2.)] .5 .18254 0 0 Mshowa P p .046 .038 .025 r [(3.)] .83672 .83672 0 0 Mshowa [(3.)] .83672 .16328 0 0 Mshowa [(3.)] .16328 .83672 0 0 Mshowa [(3.)] .16328 .16328 0 0 Mshowa [(3.)] .97619 .5 0 0 Mshowa [(3.)] .02381 .5 0 0 Mshowa [(3.)] .5 .97619 0 0 Mshowa [(3.)] .5 .02381 0 0 Mshowa P p 0 0 0 r p .004 w .97619 .5 m .97611 .5039 L .97587 .50779 L .97547 .51167 L .97492 .51555 L .9742 .51941 L .97333 .52325 L .97111 .53088 L .96827 .5384 L .96482 .54578 L .95612 .56005 L .94512 .57349 L .93194 .58592 L .91674 .59717 L .8997 .6071 L .88102 .61558 L .8609 .62251 L .85037 .62537 L .83957 .62781 L .82852 .62982 L .81726 .63141 L .81155 .63204 L .8058 .63257 L .80001 .63299 L .79419 .6333 L .78833 .6335 L .78245 .63359 L .77654 .63357 L .77061 .63345 L .76466 .63322 L .75869 .63288 L .75272 .63244 L .74674 .63189 L .73477 .63047 L .72282 .62864 L .69905 .62378 L .67565 .61737 L .6307 .60029 L .58931 .57832 L .55251 .55251 L .52106 .52401 L .49539 .49399 L .47566 .46357 L .46177 .43379 L .45693 .41943 L .45502 .41243 L .45343 .40557 L .45216 .39885 L .4512 .3923 L .45083 .38908 L Mistroke .45054 .38591 L .45032 .38278 L .45017 .3797 L .45009 .37667 L .45008 .37369 L .45014 .37075 L .45027 .36786 L .45046 .36503 L .45071 .36225 L .45103 .35952 L .45141 .35685 L .45234 .35166 L .4535 .34671 L .45646 .33751 L .4602 .3293 L .46461 .3221 L .46962 .31596 L .47511 .3109 L .48099 .30695 L .48404 .30539 L .48716 .30411 L .49033 .30312 L .49193 .30272 L .49353 .3024 L .49514 .30216 L .49676 .30198 L .49838 .30187 L .5 .30183 L .50162 .30187 L .50324 .30198 L .50486 .30216 L .50647 .3024 L .50967 .30312 L .51284 .30411 L .51596 .30539 L .51901 .30695 L .52489 .3109 L .53038 .31596 L .53539 .3221 L .5398 .3293 L .54354 .33751 L .5465 .34671 L .54766 .35166 L .54859 .35685 L .54897 .35952 L .54929 .36225 L .54954 .36503 L .54973 .36786 L .54986 .37075 L .54992 .37369 L Mistroke .54991 .37667 L .54983 .3797 L .54968 .38278 L .54946 .38591 L .5488 .3923 L .54784 .39885 L .54657 .40557 L .54307 .41943 L .53823 .43379 L .52434 .46357 L .50461 .49399 L .47894 .52401 L .44749 .55251 L .41069 .57832 L .3693 .60029 L .34719 .6095 L .32435 .61737 L .30095 .62378 L .2891 .62641 L .27718 .62864 L .26523 .63047 L .25924 .63123 L .25326 .63189 L .24728 .63244 L .24131 .63288 L .23534 .63322 L .22939 .63345 L .22346 .63357 L .21755 .63359 L .21167 .6335 L .20581 .6333 L .19999 .63299 L .1942 .63257 L .18274 .63141 L .17148 .62982 L .16043 .62781 L .1391 .62251 L .11898 .61558 L .1003 .6071 L .08326 .59717 L .06806 .58592 L .05488 .57349 L .04388 .56005 L .03923 .55301 L .03518 .54578 L .03173 .5384 L .02889 .53088 L .02667 .52325 L .0258 .51941 L .02508 .51555 L Mistroke .02453 .51167 L .02413 .50779 L .02389 .5039 L .02381 .5 L .02389 .4961 L .02413 .49221 L .02453 .48833 L .02508 .48445 L .02667 .47675 L .02889 .46912 L .03173 .4616 L .03518 .45422 L .04388 .43995 L .05488 .42651 L .06806 .41408 L .08326 .40283 L .1003 .3929 L .11898 .38442 L .1391 .37749 L .16043 .37219 L .17148 .37018 L .18274 .36859 L .18845 .36796 L .1942 .36743 L .19999 .36701 L .20581 .3667 L .21167 .3665 L .21755 .36641 L .22346 .36643 L .22939 .36655 L .23534 .36678 L .24131 .36712 L .24728 .36756 L .25326 .36811 L .26523 .36953 L .27718 .37136 L .30095 .37622 L .32435 .38263 L .3693 .39971 L .41069 .42168 L .44749 .44749 L .47894 .47599 L .50461 .50601 L .52434 .53643 L .532 .55146 L .53823 .56621 L .54307 .58057 L .54657 .59443 L .54784 .60115 L .5488 .6077 L Mistroke .54917 .61092 L .54946 .61409 L .54968 .61722 L .54983 .6203 L .54991 .62333 L .54992 .62631 L .54986 .62925 L .54973 .63214 L .54954 .63497 L .54929 .63775 L .54897 .64048 L .54859 .64315 L .5465 .65329 L .54512 .65801 L .54354 .66249 L .5398 .6707 L .53539 .6779 L .53038 .68404 L .52489 .6891 L .522 .69121 L .51901 .69305 L .51596 .69461 L .51284 .69589 L .50967 .69688 L .50807 .69728 L .50647 .6976 L .50486 .69784 L .50324 .69802 L .50162 .69813 L .5 .69817 L .49838 .69813 L .49676 .69802 L .49514 .69784 L .49353 .6976 L .49033 .69688 L .48716 .69589 L .48404 .69461 L .48099 .69305 L .47511 .6891 L .46962 .68404 L .46461 .6779 L .4602 .6707 L .45646 .66249 L .45488 .65801 L .4535 .65329 L .45234 .64834 L .45141 .64315 L .45103 .64048 L .45071 .63775 L .45046 .63497 L Mistroke .45027 .63214 L .45014 .62925 L .45008 .62631 L .45009 .62333 L .45017 .6203 L .45032 .61722 L .45054 .61409 L .45083 .61092 L .4512 .6077 L .45343 .59443 L .45502 .58757 L .45693 .58057 L .46177 .56621 L .47566 .53643 L .49539 .50601 L .52106 .47599 L .55251 .44749 L .58931 .42168 L .6307 .39971 L .65281 .3905 L .67565 .38263 L .69905 .37622 L .7109 .37359 L .72282 .37136 L .73477 .36953 L .74076 .36877 L .74674 .36811 L .75272 .36756 L .75869 .36712 L .76466 .36678 L .77061 .36655 L .77654 .36643 L .78245 .36641 L .78833 .3665 L .79419 .3667 L .80001 .36701 L .8058 .36743 L .81155 .36796 L .81726 .36859 L .82852 .37018 L .83957 .37219 L .8609 .37749 L .88102 .38442 L .8997 .3929 L .91674 .40283 L .93194 .41408 L .94512 .42651 L .95612 .43995 L .96077 .44699 L .96482 .45422 L Mistroke .96827 .4616 L .97111 .46912 L .97333 .47675 L .9742 .48059 L .97492 .48445 L .97547 .48833 L .97587 .49221 L .97611 .4961 L .97619 .5 L Mfstroke P P P % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; endGroup] The DCPolarPlot output clearly shows that we graphed on a polar grid; the aspect ratio and the plot range do not distort the shape of the graph; and the graph reinforces the dependence of r on q and the importance of the pole. There are disadvantages with our code. Because the plot area must be square, our PolarPlot will sometimes return graphs with large areas of blank space while Mathematica's PolarPlot will usually restrict the graph area to the bare minimum (thus allowing for more detail). The only time this becomes a real factor, however, is when students need to plot several functions with radically different radii (e.g., r = 3*Cos[q] and r = 125 will look just like the graph of r = 125 because the r = 3Cos[q] will be too small to appear) or functions which are not centered around the pole. Although we think that such cases will rarely arise in our classes, the disadvantages can often result in useless graphs. To "correct" these problems we added an option called PolarGrid to the PolarPlot Option list. PolarGrid defaults to True, but when set to False, PolarPlot will return Mathematica's Cartesian version of the plot. Occasionally PolarGrid->False will result in the superior graph. Our PolarPlot code for plotting a single function, r = f[q], follows. We have similar code for plotting a list of polar functions. ;[s] 31:0,0;11,1;20,2;198,3;199,4;319,5;328,6;396,7;407,8;410,9;419,10;658,11;659,12;735,13;736,14;1002,15;1011,16;1019,17;1028,18;1043,19;1052,20;1094,21;1103,22;1116,23;1127,24;1175,25;1191,26;1236,27;1245,28;1289,29;1290,30;1363,-1; 31:1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,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;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,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;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,10,8,Times,1,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] DCPolarPlot (Dickinson College PolarPlot) code. :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] BeginPackage["DCPolarPlot`"]; :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] DCPolarPlot::usage="DCPolarPlot[f[q],{q,a,b}] gives a polar plot of r=f[q] over [a,b] where q is in radian measure."; PolarGrid::usage="PolarGrid is an option for DCPolarPlot. PolarGrid->True shows the function on a polar grid. PolarGrid->False shows the function on a Cartesian grid."; ;[s] 9:0,0;34,1;35,2;38,3;39,4;74,5;75,6;94,7;95,8;294,-1; 9:1,7,6,Courier,1,10,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,7,6,Courier,1,10,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,7,6,Courier,1,10,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,7,6,Courier,1,10,0,0,0;1,0,0,Symbol,0,10,0,0,0;1,7,6,Courier,1,10,0,0,0; :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] Options[DCPolarPlot]={PolarGrid->True,PlotStyle->RGBColor[0,0,0]}; :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] Begin["`Private`"]; :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] MakeLines[range_List]:= Module[{pd,pr,lines}, pd=range[[1]];pr=range[[2]]; lines={}; If[Max[pd]>0&&Max[pr]>0, lines=Union[lines, {Graphics[{RGBColor[0.559, 0.554, 0.434], Line[{{0,0},{Max[Max[pd],Max[pr]],Max[Max[pd],Max[pr]]}}]}] }] ]; If[Max[pd]>0&&Max[pr]>0, lines=Union[lines, {Graphics[{RGBColor[0.559, 0.554, 0.434], Line[{{0,0},{Max[Max[pd],Abs[Min[pr]]], -Max[Max[pd],Abs[Min[pr]]]}}]}] }] ]; If[Min[pd]<0&&Min[pr]<0, lines=Union[lines, {Graphics[{RGBColor[0.559, 0.554, 0.434], Line[{{0,0},{-Max[Abs[Min[pd]],Abs[Min[pr]]], -Max[Abs[Min[pd]],Abs[Min[pr]]]}}]}] }] ]; If[Min[pd]<0&&Max[pr]>0, lines=Union[lines, {Graphics[{RGBColor[0.559, 0.554, 0.434], Line[{{0,0},{-Max[Abs[Min[pd]],Max[pr]], Max[Abs[Min[pd]],Max[pr]]}}]}] }] ]; lines=Union[lines, {Graphics[{RGBColor[0.559, 0.554, 0.434], Line[{{0,Min[pr]},{0,Max[pr]}}], Line[{{Min[pd],0},{Max[pd],0}}]}] }]; Return[lines] ] :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] SortTicks[l_List]:= Module[{ticks,i}, ticks={}; fullticks={}; For[i=1,i<=Length[l[[1]]],i++, If[l[[1,i,2]]>=0 || l[[1,i,2]]<0, ticks=Union[ticks,{l[[1,i,1]]}] ] ]; ticks=Union[Map[Abs,ticks],Map[Abs,ticks]]; Return[ticks] ] :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] NotHeadListQ[k_List]:=False; NotHeadListQ[k_]:=True; :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] DCPolarPlot[r_?NotHeadListQ,{x_Symbol,a_,b_},opts___Rule]:= Module[{pstyle,p,square,ticks,lines,circles}, pstyle=PlotStyle/.{opts}/.Options[PolarPlot]; p=ParametricPlot[{r Cos[x],r Sin[x]},{x,a,b}, Axes->{False,False}, Ticks->{None,None}, Frame->True, FrameTicks->{Automatic,Automatic}, PlotStyle->pstyle, DisplayFunction->Identity]; square=Flatten[PlotRange[p]]; square={{Min[square],Max[square]}, {Min[square],Max[square]}}; p=Show[p,PlotRange->square]; ticks=SortTicks[FullOptions[p,FrameTicks]]; If[Flatten[ticks]=={}, ticks={Min[square],Max[square], (Min[square]+Max[square])/2} ]; lines=MakeLines[square]; circles={}; For[i=1,i<=Length[ticks],i++, {circles=Union[circles, {Graphics[{RGBColor[0.559, 0.554, 0.434], Circle[{0,0},ticks[[i]]]}], Graphics[{RGBColor[0.046, 0.038, 0.025], Text[N[ticks[[i]],3],{ticks[[i]]/Sqrt[2], ticks[[i]]/Sqrt[2]}], Text[N[ticks[[i]],3],{ticks[[i]]/Sqrt[2], -ticks[[i]]/Sqrt[2]}], Text[N[ticks[[i]],3],{-ticks[[i]]/Sqrt[2], ticks[[i]]/Sqrt[2]}], Text[N[ticks[[i]],3],{-ticks[[i]]/Sqrt[2], -ticks[[i]]/Sqrt[2]}], Text[N[ticks[[i]],3],{ticks[[i]],0}], Text[N[ticks[[i]],3],{-ticks[[i]],0}], Text[N[ticks[[i]],3],{0,ticks[[i]]}], Text[N[ticks[[i]],3],{0,-ticks[[i]]}]}] }]} ]; Show[lines,circles,p,DisplayFunction->$DisplayFunction, AspectRatio->1,Axes->{False,False},Frame->True, Ticks->{None,None},FrameTicks->{None,None}, PlotRange->square] ]/;(PolarGrid/.{opts}/.Options[PolarPlot]) :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] DCPolarPlot[r_,{x_,a_,b_},opts___]:= Module[{newopts}, newopts=Drop[{opts},{Position[{opts},PolarGrid][[1,1]], Position[{opts},PolarGrid][[1,1]]}]; If[newopts=={}, Return[ParametricPlot[{r Cos[x],r Sin[x]},{x,a,b}]], Return[ParametricPlot[{r Cos[x],r Sin[x]},{x,a,b}, Evaluate[newopts]]] ] ]/;(!PolarGrid/.{opts}/.Options[PolarPlot]) :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"] End[]; :[font = input; preserveAspect; fontSize = 10; fontName = "Courier"; endGroup; endGroup] EndPackage[]; :[font = section; inactive; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] Plot :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] Our most detailed revision of Mathematica's code concerned Mathematica's Plot command. We found that Mathematica cannot plot discontinuous functions very well. In fact, Mathematica would produce graphs of a quality which we would not accept from our students. We wanted to remedy this descrepancy. Consider the following discontinuous function: ;[s] 11:0,0;35,1;46,2;64,3;75,4;78,5;82,6;107,7;118,8;176,9;187,10;354,-1; 11: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;1,10,8,Times,1,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;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] CosTesFig.3.eps :[font = input; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] f[x_]:=Which[x<2, x, x>2, x+2] :[font = input; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] Plot[f[x], {x, -5, 5}]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; pictureLeft = 34; pictureWidth = 240; pictureHeight = 148; endGroup] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Helvetica findfont 6 scalefont setfont % Scaling calculations 0.5 0.095238 0.259967 0.04905 [ [(-4)] .11905 .25997 0 2 Msboxa [(-2)] .30952 .25997 0 2 Msboxa [(2)] .69048 .25997 0 2 Msboxa [(4)] .88095 .25997 0 2 Msboxa [(-4)] .4875 .06377 1 0 Msboxa [(-2)] .4875 .16187 1 0 Msboxa [(2)] .4875 .35807 1 0 Msboxa [(4)] .4875 .45617 1 0 Msboxa [(6)] .4875 .55427 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .11905 .25997 m .11905 .26622 L s P [(-4)] .11905 .25997 0 2 Mshowa p .002 w .30952 .25997 m .30952 .26622 L s P [(-2)] .30952 .25997 0 2 Mshowa p .002 w .69048 .25997 m .69048 .26622 L s P [(2)] .69048 .25997 0 2 Mshowa p .002 w .88095 .25997 m .88095 .26622 L s P [(4)] .88095 .25997 0 2 Mshowa p .001 w .15714 .25997 m .15714 .26372 L s P p .001 w .19524 .25997 m .19524 .26372 L s P p .001 w .23333 .25997 m .23333 .26372 L s P p .001 w .27143 .25997 m .27143 .26372 L s P p .001 w .34762 .25997 m .34762 .26372 L s P p .001 w .38571 .25997 m .38571 .26372 L s P p .001 w .42381 .25997 m .42381 .26372 L s P p .001 w .4619 .25997 m .4619 .26372 L s P p .001 w .5381 .25997 m .5381 .26372 L s P p .001 w .57619 .25997 m .57619 .26372 L s P p .001 w .61429 .25997 m .61429 .26372 L s P p .001 w .65238 .25997 m .65238 .26372 L s P p .001 w .72857 .25997 m .72857 .26372 L s P p .001 w .76667 .25997 m .76667 .26372 L s P p .001 w .80476 .25997 m .80476 .26372 L s P p .001 w .84286 .25997 m .84286 .26372 L s P p .001 w .08095 .25997 m .08095 .26372 L s P p .001 w .04286 .25997 m .04286 .26372 L s P p .001 w .00476 .25997 m .00476 .26372 L s P p .001 w .91905 .25997 m .91905 .26372 L s P p .001 w .95714 .25997 m .95714 .26372 L s P p .001 w .99524 .25997 m .99524 .26372 L s P p .002 w 0 .25997 m 1 .25997 L s P p .002 w .5 .06377 m .50625 .06377 L s P [(-4)] .4875 .06377 1 0 Mshowa p .002 w .5 .16187 m .50625 .16187 L s P [(-2)] .4875 .16187 1 0 Mshowa p .002 w .5 .35807 m .50625 .35807 L s P [(2)] .4875 .35807 1 0 Mshowa p .002 w .5 .45617 m .50625 .45617 L s P [(4)] .4875 .45617 1 0 Mshowa p .002 w .5 .55427 m .50625 .55427 L s P [(6)] .4875 .55427 1 0 Mshowa p .001 w .5 .08339 m .50375 .08339 L s P p .001 w .5 .10301 m .50375 .10301 L s P p .001 w .5 .12263 m .50375 .12263 L s P p .001 w .5 .14225 m .50375 .14225 L s P p .001 w .5 .18149 m .50375 .18149 L s P p .001 w .5 .20111 m .50375 .20111 L s P p .001 w .5 .22073 m .50375 .22073 L s P p .001 w .5 .24035 m .50375 .24035 L s P p .001 w .5 .27959 m .50375 .27959 L s P p .001 w .5 .29921 m .50375 .29921 L s P p .001 w .5 .31883 m .50375 .31883 L s P p .001 w .5 .33845 m .50375 .33845 L s P p .001 w .5 .37769 m .50375 .37769 L s P p .001 w .5 .39731 m .50375 .39731 L s P p .001 w .5 .41693 m .50375 .41693 L s P p .001 w .5 .43655 m .50375 .43655 L s P p .001 w .5 .47579 m .50375 .47579 L s P p .001 w .5 .49541 m .50375 .49541 L s P p .001 w .5 .51503 m .50375 .51503 L s P p .001 w .5 .53465 m .50375 .53465 L s P p .001 w .5 .04415 m .50375 .04415 L s P p .001 w .5 .02453 m .50375 .02453 L s P p .001 w .5 .00491 m .50375 .00491 L s P p .001 w .5 .57389 m .50375 .57389 L s P p .001 w .5 .59351 m .50375 .59351 L s P p .001 w .5 .61313 m .50375 .61313 L s P p .002 w .5 0 m .5 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .001 w .02381 .01472 m .06349 .03515 L .10317 .05559 L .14286 .07603 L .18254 .09647 L .22222 .1169 L .2619 .13734 L .30159 .15778 L .34127 .17822 L .38095 .19865 L .42063 .21909 L .46032 .23953 L .5 .25997 L .53968 .2804 L .57937 .30084 L .61905 .32128 L .63889 .3315 L .65873 .34172 L .66865 .34683 L .67857 .35194 L .68353 .35449 L .68601 .35577 L .68725 .35641 L .68849 .35705 L .68973 .35768 L .69097 .45642 L .69345 .4577 L .69841 .46026 L .7381 .48069 L .77778 .50113 L .81746 .52157 L .85714 .54201 L .89683 .56244 L .93651 .58288 L .97619 .60332 L s P P % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; endGroup] From this graph it is impossible to determine the behavior of the function near the point x = 2. The results clearly do not aid the student with concepts such as continuity or differentiability, for which graphs of discontinuous functions should be quite useful. Our attempt to create a plot command which would produce more accurate results turned into a very large project which still needs some fine-tuning. Here is our version of the plot of the above function: :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] CosTesFig.4.eps :[font = input; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] plot[{{x,x<2},{Undefined,x==2},{x+2,x>2}},{x,-5,5}] :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; pictureLeft = 34; pictureWidth = 240; pictureHeight = 147; endGroup] %! %%Creator: Mathematica %%AspectRatio: 0.61803 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.0907029 0.264426 0.0445912 [ [(-4)] 0.13719 0.26443 0 2 Msboxa [(-2)] 0.31859 0.26443 0 2 Msboxa [(2)] 0.68141 0.26443 0 2 Msboxa [(4)] 0.86281 0.26443 0 2 Msboxa [(-4)] 0.4875 0.08606 1 0 Msboxa [(-2)] 0.4875 0.17524 1 0 Msboxa [(2)] 0.4875 0.35361 1 0 Msboxa [(4)] 0.4875 0.44279 1 0 Msboxa [(6)] 0.4875 0.53197 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 0.61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave gsave 0.002 setlinewidth 0.13719 0.26443 moveto 0.13719 0.27068 lineto stroke grestore [(-4)] 0.13719 0.26443 0 2 Mshowa gsave 0.002 setlinewidth 0.31859 0.26443 moveto 0.31859 0.27068 lineto stroke grestore [(-2)] 0.31859 0.26443 0 2 Mshowa gsave 0.002 setlinewidth 0.68141 0.26443 moveto 0.68141 0.27068 lineto stroke grestore [(2)] 0.68141 0.26443 0 2 Mshowa gsave 0.002 setlinewidth 0.86281 0.26443 moveto 0.86281 0.27068 lineto stroke grestore [(4)] 0.86281 0.26443 0 2 Mshowa gsave 0.001 setlinewidth 0.17347 0.26443 moveto 0.17347 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.20975 0.26443 moveto 0.20975 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.24603 0.26443 moveto 0.24603 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.28231 0.26443 moveto 0.28231 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.35488 0.26443 moveto 0.35488 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.39116 0.26443 moveto 0.39116 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.42744 0.26443 moveto 0.42744 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.46372 0.26443 moveto 0.46372 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.53628 0.26443 moveto 0.53628 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.57256 0.26443 moveto 0.57256 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.60884 0.26443 moveto 0.60884 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.64512 0.26443 moveto 0.64512 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.71769 0.26443 moveto 0.71769 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.75397 0.26443 moveto 0.75397 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.79025 0.26443 moveto 0.79025 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.82653 0.26443 moveto 0.82653 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.10091 0.26443 moveto 0.10091 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.06463 0.26443 moveto 0.06463 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.02834 0.26443 moveto 0.02834 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.89909 0.26443 moveto 0.89909 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.93537 0.26443 moveto 0.93537 0.26818 lineto stroke grestore gsave 0.001 setlinewidth 0.97166 0.26443 moveto 0.97166 0.26818 lineto stroke grestore gsave 0.002 setlinewidth 0 0.26443 moveto 1 0.26443 lineto stroke grestore gsave 0.002 setlinewidth 0.5 0.08606 moveto 0.50625 0.08606 lineto stroke grestore [(-4)] 0.4875 0.08606 1 0 Mshowa gsave 0.002 setlinewidth 0.5 0.17524 moveto 0.50625 0.17524 lineto stroke grestore [(-2)] 0.4875 0.17524 1 0 Mshowa gsave 0.002 setlinewidth 0.5 0.35361 moveto 0.50625 0.35361 lineto stroke grestore [(2)] 0.4875 0.35361 1 0 Mshowa gsave 0.002 setlinewidth 0.5 0.44279 moveto 0.50625 0.44279 lineto stroke grestore [(4)] 0.4875 0.44279 1 0 Mshowa gsave 0.002 setlinewidth 0.5 0.53197 moveto 0.50625 0.53197 lineto stroke grestore [(6)] 0.4875 0.53197 1 0 Mshowa gsave 0.001 setlinewidth 0.5 0.01472 moveto 0.50375 0.01472 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.03255 moveto 0.50375 0.03255 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.05039 moveto 0.50375 0.05039 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.06822 moveto 0.50375 0.06822 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.1039 moveto 0.50375 0.1039 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.12173 moveto 0.50375 0.12173 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.13957 moveto 0.50375 0.13957 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.15741 moveto 0.50375 0.15741 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.19308 moveto 0.50375 0.19308 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.21092 moveto 0.50375 0.21092 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.22875 moveto 0.50375 0.22875 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.24659 moveto 0.50375 0.24659 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.28226 moveto 0.50375 0.28226 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.3001 moveto 0.50375 0.3001 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.31794 moveto 0.50375 0.31794 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.33577 moveto 0.50375 0.33577 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.37144 moveto 0.50375 0.37144 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.38928 moveto 0.50375 0.38928 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.40712 moveto 0.50375 0.40712 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.42495 moveto 0.50375 0.42495 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.46063 moveto 0.50375 0.46063 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.47846 moveto 0.50375 0.47846 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.4963 moveto 0.50375 0.4963 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.51414 moveto 0.50375 0.51414 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.54981 moveto 0.50375 0.54981 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.56765 moveto 0.50375 0.56765 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.58548 moveto 0.50375 0.58548 lineto stroke grestore gsave 0.001 setlinewidth 0.5 0.60332 moveto 0.50375 0.60332 lineto stroke grestore gsave 0.002 setlinewidth 0.5 0 moveto 0.5 0.61803 lineto stroke grestore grestore 0 0 moveto 1 0 lineto 1 0.61803 lineto 0 0.61803 lineto closepath clip newpath gsave gsave gsave gsave 0.004 setlinewidth 0.68164 0.4429 moveto 0.68279 0.44347 lineto 0.68511 0.44461 lineto 0.69436 0.44916 lineto 0.71287 0.45826 lineto 0.73139 0.46736 lineto 0.7499 0.47646 lineto 0.76841 0.48556 lineto 0.78692 0.49466 lineto 0.80543 0.50376 lineto 0.82394 0.51286 lineto 0.84245 0.52196 lineto 0.86096 0.53106 lineto 0.87947 0.54016 lineto 0.89798 0.54926 lineto 0.91649 0.55836 lineto 0.935 0.56746 lineto 0.95351 0.57656 lineto stroke grestore grestore grestore gsave gsave gsave 0.004 setlinewidth 0.04649 0.04147 moveto 0.065 0.05057 lineto 0.08351 0.05967 lineto 0.10202 0.06877 lineto 0.12053 0.07787 lineto 0.13904 0.08697 lineto 0.15755 0.09607 lineto 0.17606 0.10517 lineto 0.19457 0.11427 lineto 0.21308 0.12337 lineto 0.23159 0.13247 lineto 0.2501 0.14157 lineto 0.26861 0.15067 lineto 0.28713 0.15977 lineto 0.30564 0.16887 lineto 0.32415 0.17797 lineto 0.34266 0.18707 lineto 0.36117 0.19617 lineto 0.37968 0.20527 lineto 0.39819 0.21437 lineto 0.4167 0.22347 lineto 0.43521 0.23257 lineto 0.45372 0.24168 lineto 0.47223 0.25078 lineto 0.49074 0.25988 lineto 0.50926 0.26898 lineto 0.52777 0.27808 lineto 0.54628 0.28718 lineto 0.56479 0.29628 lineto 0.5833 0.30538 lineto 0.60181 0.31448 lineto 0.62032 0.32358 lineto 0.63883 0.33268 lineto 0.65734 0.34178 lineto 0.67585 0.35088 lineto 0.68048 0.35315 lineto 0.68106 0.35344 lineto stroke grestore grestore grestore gsave 0.0149 0.02594 moveto 0.05409 0.026 lineto 0.03888 0.05694 lineto fill grestore gsave 0.9851 0.59209 moveto 0.96112 0.56109 lineto 0.94591 0.59204 lineto fill grestore gsave gsave 0.096 0.091 1 setrgbcolor 0.015 setlinewidth 0.68141 0.35361 Mdot 1 1 1 setrgbcolor 0.008 setlinewidth 0.68141 0.35361 Mdot grestore grestore gsave gsave 0.096 0.091 1 setrgbcolor 0.015 setlinewidth 0.68141 0.44279 Mdot 1 1 1 setrgbcolor 0.008 setlinewidth 0.68141 0.44279 Mdot grestore grestore grestore % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; endGroup] Certainly, this output shows in much clearer detail how our function behaves around the point of discontinuity. The arrowheads indicate that the function continues on to the left and the right in a similar fashion, and the presence of the two open circles at x=2 indicate that the function remains undefined at that point. We also decided to improve Mathematica's ability to plot functions whose graphs contain asymptopes. Consider the Mathematica output for the following function: ;[s] 5:0,0;356,1;367,2;443,3;454,4;490,-1; 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; :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] CosTesFig.5.eps :[font = input; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] g[x_] := Which[x<2, (x^2-2)/(x-2), x>2, Cos[x]/(x-2)]; Plot[g[x], {x,0,2Pi}, PlotRange -> {-10,1}]; :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; pictureLeft = 34; pictureWidth = 240; pictureHeight = 148; endGroup; endGroup] %! %%Creator: Mathematica %%AspectRatio: .61803 MathPictureStart %% Graphics /Helvetica findfont 6 scalefont setfont % Scaling calculations 0.02381 0.151576 0.561849 0.056185 [ [(1)] .17539 .56185 0 2 Msboxa [(2)] .32696 .56185 0 2 Msboxa [(3)] .47854 .56185 0 2 Msboxa [(4)] .63011 .56185 0 2 Msboxa [(5)] .78169 .56185 0 2 Msboxa [(6)] .93327 .56185 0 2 Msboxa [(-10)] .01131 0 1 0 Msboxa [(-8)] .01131 .11237 1 0 Msboxa [(-6)] .01131 .22474 1 0 Msboxa [(-4)] .01131 .33711 1 0 Msboxa [(-2)] .01131 .44948 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 .61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p p .002 w .17539 .56185 m .17539 .5681 L s P [(1)] .17539 .56185 0 2 Mshowa p .002 w .32696 .56185 m .32696 .5681 L s P [(2)] .32696 .56185 0 2 Mshowa p .002 w .47854 .56185 m .47854 .5681 L s P [(3)] .47854 .56185 0 2 Mshowa p .002 w .63011 .56185 m .63011 .5681 L s P [(4)] .63011 .56185 0 2 Mshowa p .002 w .78169 .56185 m .78169 .5681 L s P [(5)] .78169 .56185 0 2 Mshowa p .002 w .93327 .56185 m .93327 .5681 L s P [(6)] .93327 .56185 0 2 Mshowa p .001 w .05412 .56185 m .05412 .5656 L s P p .001 w .08444 .56185 m .08444 .5656 L s P p .001 w .11476 .56185 m .11476 .5656 L s P p .001 w .14507 .56185 m .14507 .5656 L s P p .001 w .2057 .56185 m .2057 .5656 L s P p .001 w .23602 .56185 m .23602 .5656 L s P p .001 w .26633 .56185 m .26633 .5656 L s P p .001 w .29665 .56185 m .29665 .5656 L s P p .001 w .35728 .56185 m .35728 .5656 L s P p .001 w .38759 .56185 m .38759 .5656 L s P p .001 w .41791 .56185 m .41791 .5656 L s P p .001 w .44822 .56185 m .44822 .5656 L s P p .001 w .50885 .56185 m .50885 .5656 L s P p .001 w .53917 .56185 m .53917 .5656 L s P p .001 w .56948 .56185 m .56948 .5656 L s P p .001 w .5998 .56185 m .5998 .5656 L s P p .001 w .66043 .56185 m .66043 .5656 L s P p .001 w .69074 .56185 m .69074 .5656 L s P p .001 w .72106 .56185 m .72106 .5656 L s P p .001 w .75137 .56185 m .75137 .5656 L s P p .001 w .81201 .56185 m .81201 .5656 L s P p .001 w .84232 .56185 m .84232 .5656 L s P p .001 w .87264 .56185 m .87264 .5656 L s P p .001 w .90295 .56185 m .90295 .5656 L s P p .001 w .96358 .56185 m .96358 .5656 L s P p .001 w .9939 .56185 m .9939 .5656 L s P p .002 w 0 .56185 m 1 .56185 L s P p .002 w .02381 0 m .03006 0 L s P [(-10)] .01131 0 1 0 Mshowa p .002 w .02381 .11237 m .03006 .11237 L s P [(-8)] .01131 .11237 1 0 Mshowa p .002 w .02381 .22474 m .03006 .22474 L s P [(-6)] .01131 .22474 1 0 Mshowa p .002 w .02381 .33711 m .03006 .33711 L s P [(-4)] .01131 .33711 1 0 Mshowa p .002 w .02381 .44948 m .03006 .44948 L s P [(-2)] .01131 .44948 1 0 Mshowa p .001 w .02381 .02247 m .02756 .02247 L s P p .001 w .02381 .04495 m .02756 .04495 L s P p .001 w .02381 .06742 m .02756 .06742 L s P p .001 w .02381 .0899 m .02756 .0899 L s P p .001 w .02381 .13484 m .02756 .13484 L s P p .001 w .02381 .15732 m .02756 .15732 L s P p .001 w .02381 .17979 m .02756 .17979 L s P p .001 w .02381 .20227 m .02756 .20227 L s P p .001 w .02381 .24721 m .02756 .24721 L s P p .001 w .02381 .26969 m .02756 .26969 L s P p .001 w .02381 .29216 m .02756 .29216 L s P p .001 w .02381 .31464 m .02756 .31464 L s P p .001 w .02381 .35958 m .02756 .35958 L s P p .001 w .02381 .38206 m .02756 .38206 L s P p .001 w .02381 .40453 m .02756 .40453 L s P p .001 w .02381 .42701 m .02756 .42701 L s P p .001 w .02381 .47195 m .02756 .47195 L s P p .001 w .02381 .49443 m .02756 .49443 L s P p .001 w .02381 .5169 m .02756 .5169 L s P p .001 w .02381 .53938 m .02756 .53938 L s P p .001 w .02381 .58432 m .02756 .58432 L s P p .001 w .02381 .6068 m .02756 .6068 L s P p .002 w .02381 0 m .02381 .61803 L s P P 0 0 m 1 0 L 1 .61803 L 0 .61803 L closepath clip newpath p p .001 w .02381 .61803 m 0 0 rlineto .02381 .61803 m .02381 .61803 L s s s s s s s s s s s s s s s s s s s s s s s s s s s s s .17513 .61803 m .18254 .61512 L s .18254 .61512 m .19246 .6101 L .20238 .60369 L .2123 .59554 L .22222 .58515 L .23214 .57181 L .24206 .5545 L .25198 .53163 L .2619 .50066 L .26687 .48089 L .27183 .45723 L .27679 .42853 L .28175 .39313 L .28671 .34855 L .29167 .29093 L .29663 .21386 L .29911 .16478 L .30159 .10593 L s .30485 0 m .30159 .10593 L s s s s s s s s s s s s s s s s s s s s s .3339 0 m .33507 .07429 L s .33507 .07429 m .33631 .13238 L .33879 .21209 L .34003 .24063 L .34127 .26424 L .34375 .30106 L .34623 .32845 L .34871 .34966 L .35119 .36657 L .35615 .3919 L .36111 .41003 L .36607 .42371 L .37103 .43443 L .38095 .45031 L .39087 .46166 L .40079 .47034 L .42063 .48311 L .44048 .49254 L .46032 .50016 L .5 .51263 L .53968 .52318 L .57937 .53263 L .61905 .54123 L .65873 .54901 L .69841 .55592 L .7381 .56185 L .77778 .56674 L .81746 .57053 L .8373 .57201 L .85714 .57321 L .87698 .57413 L .8869 .5745 L .89683 .57479 L .90675 .57502 L .91171 .57512 L .91667 .57519 L .92163 .57525 L .92411 .57528 L .92659 .5753 L .92907 .57532 L .93155 .57533 L .93279 .57533 L .93403 .57534 L .93527 .57534 L .93651 .57534 L .93775 .57535 L .93899 .57535 L .94023 .57535 L .94147 .57535 L .94271 .57534 L Mistroke .94395 .57534 L .94643 .57533 L .94767 .57533 L .94891 .57532 L .95139 .57531 L .95635 .57526 L .96131 .57521 L .96627 .57514 L .97619 .57497 L Mfstroke P P % End of Graphics MathPictureEnd :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] CosTesFig.6.eps :[font = input; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] plot[{{(x^2-2)/(x-2), x<2}, {Undefined, x==2}, {Cos[x]/(x-2), x>2}}, {x,0,2Pi}, plotRange -> {-10,1}] :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; pictureLeft = 34; pictureWidth = 240; pictureHeight = 148; endGroup] %! %%Creator: Mathematica %%AspectRatio: 0.61803 MathPictureStart /Courier findfont 10 scalefont setfont % Scaling calculations 0.0464853 0.144358 0.538864 0.0510772 [ [(1)] 0.19084 0.53886 0 2 Msboxa [(2)] 0.3352 0.53886 0 2 Msboxa [(3)] 0.47956 0.53886 0 2 Msboxa [(4)] 0.62392 0.53886 0 2 Msboxa [(5)] 0.76828 0.53886 0 2 Msboxa [(6)] 0.91263 0.53886 0 2 Msboxa [(-10)] 0.03399 0.02809 1 0 Msboxa [(-8)] 0.03399 0.13025 1 0 Msboxa [(-6)] 0.03399 0.2324 1 0 Msboxa [(-4)] 0.03399 0.33456 1 0 Msboxa [(-2)] 0.03399 0.43671 1 0 Msboxa [ -0.001 -0.001 0 0 ] [ 1.001 0.61903 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath %%Object: Graphics [ ] 0 setdash 0 setgray gsave gsave 0.002 setlinewidth 0.19084 0.53886 moveto 0.19084 0.54511 lineto stroke grestore [(1)] 0.19084 0.53886 0 2 Mshowa gsave 0.002 setlinewidth 0.3352 0.53886 moveto 0.3352 0.54511 lineto stroke grestore [(2)] 0.3352 0.53886 0 2 Mshowa gsave 0.002 setlinewidth 0.47956 0.53886 moveto 0.47956 0.54511 lineto stroke grestore [(3)] 0.47956 0.53886 0 2 Mshowa gsave 0.002 setlinewidth 0.62392 0.53886 moveto 0.62392 0.54511 lineto stroke grestore [(4)] 0.62392 0.53886 0 2 Mshowa gsave 0.002 setlinewidth 0.76828 0.53886 moveto 0.76828 0.54511 lineto stroke grestore [(5)] 0.76828 0.53886 0 2 Mshowa gsave 0.002 setlinewidth 0.91263 0.53886 moveto 0.91263 0.54511 lineto stroke grestore [(6)] 0.91263 0.53886 0 2 Mshowa gsave 0.001 setlinewidth 0.07536 0.53886 moveto 0.07536 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.10423 0.53886 moveto 0.10423 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.1331 0.53886 moveto 0.1331 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.16197 0.53886 moveto 0.16197 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.21972 0.53886 moveto 0.21972 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.24859 0.53886 moveto 0.24859 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.27746 0.53886 moveto 0.27746 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.30633 0.53886 moveto 0.30633 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.36407 0.53886 moveto 0.36407 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.39295 0.53886 moveto 0.39295 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.42182 0.53886 moveto 0.42182 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.45069 0.53886 moveto 0.45069 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.50843 0.53886 moveto 0.50843 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.5373 0.53886 moveto 0.5373 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.56617 0.53886 moveto 0.56617 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.59505 0.53886 moveto 0.59505 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.65279 0.53886 moveto 0.65279 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.68166 0.53886 moveto 0.68166 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.71053 0.53886 moveto 0.71053 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.7394 0.53886 moveto 0.7394 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.79715 0.53886 moveto 0.79715 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.82602 0.53886 moveto 0.82602 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.85489 0.53886 moveto 0.85489 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.88376 0.53886 moveto 0.88376 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.01761 0.53886 moveto 0.01761 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.94151 0.53886 moveto 0.94151 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.97038 0.53886 moveto 0.97038 0.54261 lineto stroke grestore gsave 0.001 setlinewidth 0.99925 0.53886 moveto 0.99925 0.54261 lineto stroke grestore gsave 0.002 setlinewidth 0 0.53886 moveto 1 0.53886 lineto stroke grestore gsave 0.002 setlinewidth 0.04649 0.02809 moveto 0.05274 0.02809 lineto stroke grestore [(-10)] 0.03399 0.02809 1 0 Mshowa gsave 0.002 setlinewidth 0.04649 0.13025 moveto 0.05274 0.13025 lineto stroke grestore [(-8)] 0.03399 0.13025 1 0 Mshowa gsave 0.002 setlinewidth 0.04649 0.2324 moveto 0.05274 0.2324 lineto stroke grestore [(-6)] 0.03399 0.2324 1 0 Mshowa gsave 0.002 setlinewidth 0.04649 0.33456 moveto 0.05274 0.33456 lineto stroke grestore [(-4)] 0.03399 0.33456 1 0 Mshowa gsave 0.002 setlinewidth 0.04649 0.43671 moveto 0.05274 0.43671 lineto stroke grestore [(-2)] 0.03399 0.43671 1 0 Mshowa gsave 0.001 setlinewidth 0.04649 0.04852 moveto 0.05024 0.04852 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.06895 moveto 0.05024 0.06895 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.08939 moveto 0.05024 0.08939 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.10982 moveto 0.05024 0.10982 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.15068 moveto 0.05024 0.15068 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.17111 moveto 0.05024 0.17111 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.19154 moveto 0.05024 0.19154 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.21197 moveto 0.05024 0.21197 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.25283 moveto 0.05024 0.25283 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.27326 moveto 0.05024 0.27326 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.29369 moveto 0.05024 0.29369 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.31412 moveto 0.05024 0.31412 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.35499 moveto 0.05024 0.35499 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.37542 moveto 0.05024 0.37542 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.39585 moveto 0.05024 0.39585 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.41628 moveto 0.05024 0.41628 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.45714 moveto 0.05024 0.45714 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.47757 moveto 0.05024 0.47757 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.498 moveto 0.05024 0.498 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.51843 moveto 0.05024 0.51843 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.00766 moveto 0.05024 0.00766 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.5593 moveto 0.05024 0.5593 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.57973 moveto 0.05024 0.57973 lineto stroke grestore gsave 0.001 setlinewidth 0.04649 0.60016 moveto 0.05024 0.60016 lineto stroke grestore gsave 0.002 setlinewidth 0.04649 0 moveto 0.04649 0.61803 lineto stroke grestore grestore 0 0 moveto 1 0 lineto 1 0.61803 lineto 0 0.61803 lineto closepath clip newpath gsave gsave gsave gsave 0.004 setlinewidth 0.04649 0.58994 moveto 0.065 0.59299 lineto 0.08351 0.59553 lineto 0.09276 0.59657 lineto 0.10202 0.59743 lineto 0.10665 0.59778 lineto 0.11127 0.59809 lineto 0.1159 0.59833 lineto 0.12053 0.59852 lineto 0.12284 0.59859 lineto 0.124 0.59862 lineto 0.12516 0.59865 lineto 0.12631 0.59867 lineto 0.12747 0.59868 lineto 0.12863 0.59869 lineto 0.12921 0.5987 lineto 0.12978 0.5987 lineto 0.13036 0.5987 lineto 0.13094 0.5987 lineto 0.13152 0.5987 lineto 0.1321 0.5987 lineto 0.13268 0.5987 lineto 0.13325 0.5987 lineto 0.13383 0.59869 lineto 0.13441 0.59869 lineto 0.13557 0.59867 lineto 0.13673 0.59865 lineto 0.13904 0.59859 lineto 0.14135 0.59851 lineto 0.14367 0.59841 lineto 0.14829 0.59814 lineto 0.15292 0.59778 lineto 0.15755 0.59731 lineto 0.16681 0.59602 lineto 0.17606 0.5942 lineto 0.18532 0.59175 lineto 0.19457 0.58855 lineto 0.20383 0.58444 lineto 0.21308 0.57921 lineto 0.22234 0.57258 lineto 0.23159 0.56418 lineto 0.24085 0.55349 lineto 0.2501 0.53977 lineto 0.25936 0.5219 lineto 0.26861 0.49815 lineto 0.27787 0.46567 lineto 0.2825 0.44472 lineto 0.28713 0.41942 lineto 0.29175 0.38839 lineto 0.29638 0.34957 lineto Mistroke 0.30101 0.29979 lineto 0.30564 0.23392 lineto 0.31026 0.143 lineto 0.31258 0.08334 lineto 0.31489 0.00989 lineto Mfstroke 0.31514 0 moveto 0.31489 0.00989 lineto stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke grestore grestore grestore gsave gsave gsave 0.004 setlinewidth stroke stroke stroke stroke stroke stroke stroke stroke stroke stroke 0.34143 0 moveto 0.3415 0.00581 lineto stroke 0.3415 0.00581 moveto 0.34266 0.08148 lineto 0.34382 0.13684 lineto 0.34497 0.17912 lineto 0.34613 0.21246 lineto 0.34729 0.23944 lineto 0.3496 0.28044 lineto 0.35191 0.31014 lineto 0.35423 0.33268 lineto 0.35654 0.35037 lineto 0.35886 0.36464 lineto 0.36117 0.37641 lineto 0.3658 0.39472 lineto 0.37042 0.40834 lineto 0.37505 0.41892 lineto 0.37968 0.42741 lineto 0.38894 0.44029 lineto 0.39819 0.44973 lineto 0.4167 0.46304 lineto 0.43521 0.47244 lineto 0.45372 0.47982 lineto 0.47223 0.48605 lineto 0.49074 0.49156 lineto 0.50926 0.49659 lineto 0.52777 0.50128 lineto 0.54628 0.50571 lineto 0.56479 0.50993 lineto 0.5833 0.51396 lineto 0.60181 0.51781 lineto 0.62032 0.52148 lineto 0.63883 0.52497 lineto 0.65734 0.52828 lineto 0.67585 0.53139 lineto 0.69436 0.5343 lineto 0.71287 0.53699 lineto 0.73139 0.53946 lineto 0.7499 0.5417 lineto 0.76841 0.54371 lineto 0.78692 0.54547 lineto 0.80543 0.54699 lineto 0.82394 0.54827 lineto 0.84245 0.54931 lineto 0.86096 0.5501 lineto 0.87022 0.55041 lineto 0.87947 0.55067 lineto 0.88873 0.55087 lineto 0.89335 0.55094 lineto 0.89798 0.55101 lineto 0.90261 0.55106 lineto 0.90492 0.55108 lineto Mistroke 0.90724 0.5511 lineto 0.90955 0.55111 lineto 0.91071 0.55112 lineto 0.91187 0.55112 lineto 0.91302 0.55113 lineto 0.91418 0.55113 lineto 0.91476 0.55113 lineto 0.91534 0.55113 lineto 0.91591 0.55113 lineto 0.91649 0.55113 lineto 0.91707 0.55113 lineto 0.91765 0.55114 lineto 0.91823 0.55114 lineto 0.91881 0.55114 lineto 0.91939 0.55113 lineto 0.91996 0.55113 lineto 0.92054 0.55113 lineto 0.92112 0.55113 lineto 0.92228 0.55113 lineto 0.92343 0.55113 lineto 0.92575 0.55112 lineto 0.92806 0.55111 lineto 0.93038 0.55109 lineto 0.935 0.55106 lineto 0.93963 0.55101 lineto 0.94426 0.55095 lineto 0.95351 0.55079 lineto Mfstroke grestore grestore grestore gsave 1 setgray 0.004 setlinewidth 0.3352 0.53886 moveto 1 0.53886 lineto stroke grestore gsave 1 0 0 setrgbcolor [ 0.05 0.05 ] 0 setdash 0.004 setlinewidth 0.3352 0.53886 moveto 1 0.53886 lineto stroke grestore gsave 1 setgray 0.004 setlinewidth 0.3352 0.61803 moveto 0.3352 0 lineto stroke grestore gsave 1 0 0 setrgbcolor [ 0.05 0.05 ] 0 setdash 0.004 setlinewidth 0.3352 0.61803 moveto 0.3352 0 lineto stroke grestore gsave 1 0 0 setrgbcolor [ 0.05 0.05 ] 0 setdash 0.004 setlinewidth stroke stroke stroke grestore gsave 0.01182 0.58381 moveto 0.04992 0.57051 lineto 0.04305 0.60937 lineto fill grestore gsave 0.98871 0.55011 moveto 0.95312 0.53048 lineto 0.95391 0.5711 lineto fill grestore grestore % End of Graphics MathPictureEnd :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; endGroup; endGroup] The asymptotes (on a color monitor they appear in red) clearly illustrate the behavior of the function near certain points in the domain and as x approaches ±°. :[font = section; inactive; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] Conclusion :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; endGroup] The work we did with Mathematica's code detracts from its generality. Mathematica's designers wanted Mathematica to be able to give general responses to a general problem, and it was designed accordingly. We found that this generality could be confusing to the student of calculus who didn't understand the logic behind the system or who was unable to interpret the results. It seems that Mathematica should be able to factor quadratic polynomials, and for our purposes we felt that it should. Mathematica's version of PolarPlot follows the same rules as Plot does: the command is designed to show you as much of the graph as possible, with the least amount of "blank space." Our version may have "blank space" at times, but we feel that students will appreciate the polar grid and understand more completely the r, q dependency. Finally, our reworkings of the Plot command give our students a more complete picture of function behavior. If a computer algebra system is to be used as an education tool, rather than a research tool, educators must expect to adapt the environment for the benefit of new users who at first understand neither the system nor the mathematics involved. Mathematica's interest in generality (which was in many cases the "problem" for our students) was also the strength that allowed us to reorganize the system to suit our needs and the needs of our students. ;[s] 15:0,0;26,1;37,2;76,3;87,4;107,5;118,6;397,7;408,8;503,9;514,10;827,11;828,12;1199,13;1210,14;1405,-1; 15: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;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;1,10,8,Times,2,12,0,0,0;1,11,8,Times,0,12,0,0,0;1,0,0,Symbol,0,10,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; :[font = section; inactive; Cclosed; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46; startGroup] About the Authors :[font = text; inactive; preserveAspect; leftWrapOffset = 45; leftNameWrapOffset = 46] John Costango is a senior at Dickinson College. He is double majoring in Mathematics and English. The Knight Foundation and Dickinson College provided funding for his work on this project. Barry Tesman is an Assistant Professor in the department of Mathematics and Computer Science at Dickinson College. He, along with Jack Stodghill and Lee Baric, were supervisors for John's work. :[font = input; preserveAspect; endGroup; endGroup] John Costango and Barry Tesman Department of Mathematics and Computer Science Dickinson College Carlisle, PA 17013 ;[s] 1:0,0;115,-1; 1:1,11,8,Times,0,12,0,0,0; ^*)