(*^ ::[ 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, L1, e8, 24, "Times"; ; fontset = subtitle, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, bold, L1, e6, 18, "Times"; ; fontset = subsubtitle, inactive, noPageBreakBelow, noPageBreakInGroup, nohscroll, preserveAspect, groupLikeTitle, center, M7, italic, L1, e6, 14, "Times"; ; fontset = section, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, grayBox, M22, bold, L1, a20, 18, "Times"; ; fontset = subsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, blackBox, M19, bold, L1, a15, 14, "Times"; ; fontset = subsubsection, inactive, noPageBreakBelow, nohscroll, preserveAspect, groupLikeSection, whiteBox, M18, bold, L1, a12, 12, "Times"; ; fontset = text, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = smalltext, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 10, "Times"; ; fontset = input, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeInput, M42, N23, bold, L1, 12, "Times"; ; fontset = output, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L-5, 12, "Courier"; ; fontset = message, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1, 12, "Courier"; ; fontset = print, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1, 12, "Courier"; ; fontset = info, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeOutput, M42, N23, L1, 12, "Courier"; ; fontset = postscript, PostScript, formatAsPostScript, output, inactive, noPageBreakInGroup, nowordwrap, preserveAspect, groupLikeGraphics, M7, l34, w282, h287, L1, 12, "Courier"; ; fontset = name, inactive, noPageBreakInGroup, nohscroll, preserveAspect, M7, italic, B65535, L1, 10, "Times"; ; fontset = header, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, italic, L1, 12, "Times"; ; fontset = leftheader, L0, 12; fontset = footer, inactive, nohscroll, noKeepOnOnePage, preserveAspect, center, M7, italic, L1, 12, "Times"; ; fontset = leftfooter, L0, 12; fontset = help, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = clipboard, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = completions, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12, "Courier"; ; fontset = special1, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special2, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special3, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special4, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; fontset = special5, inactive, nohscroll, noKeepOnOnePage, preserveAspect, M7, L1, 12; automaticGrouping; currentKernel; ] :[font = title; inactive; preserveAspect; startGroup] MALLED :[font = section; inactive; preserveAspect; startGroup] BRIEF ABSTRACT :[font = subsection; inactive; preserveAspect; endGroup] Determine the one hour driving neighborhood about a shopping mall when a high speed highway is put in place. Optimization of a function of one variable will help. :[font = section; inactive; Cclosed; preserveAspect; startGroup] GENERAL INFORMATION :[font = subsection; inactive; preserveAspect; endGroup] FileName: MALLED Full title: Getting Malled - Determining the geographical region for which travel to a mall is one hour or less given a road configuration. Last Revision Date: 31 May 1996. Developer: Brian J. Winkel, Department of Mathematical Sciences, United States Military Academy, West Point NY 10996 USA. Phone: 914-938-3200. Email: ab3646@usma2.usma.edu. FAX: 914-938-2409. Contact: Brian J. Winkel, Department of Mathematical Sciences, United States Military Academy, West Point NY 10996 USA. Phone: 914-938-3200. Email: ab3646@usma2.usma.edu. FAX: 914-938-2409. Aaron D. Klebanoff, Department of Mathematics, Rose-Hulman Institute of Technology, Terre Haute IN 47803 USA. Phone: 812-877-8151. Email: Aaron.Klebanoff@Rose-Hulman.Edu. FAX: 812-877-3198. Support: The production of this material is supported by the National Science Foundation under Division of Undergraduate Education grant DUE-9352849: Development Site for Complex, Technology-Based Problems in Calculus with Applications in Science and Engineering and the Arvin Foundation of Columbus IN. :[font = section; inactive; Cclosed; preserveAspect; startGroup] STATEMENT OF PROBLEM :[font = subsection; inactive; preserveAspect] The average driving time per mile to reach a shopping mall in a suburban area through unimproved roads is uniformly 3 min/mile. People seem to be willing to spend no more than 1 hour driving time to reach the mall. Hence the ``hinterland of the mall determined by this transportation time constraint'' is a circular region centered at the mall and having a 20 mile radius. Suppose a new improved East-West road is built, passing 10 miles due North of the shopping mall and that travel time on the new road is 1.5 min/mile. Determine the new hinterland for the shopping mall in view of the option to take this road. :[font = subsection; inactive; preserveAspect; startGroup] (a) Place the mall at (0, 0). Find a distance w (measured along the new road from a point of intersection with the new road and a North-South line through the Mall) such that for distances x greater than w, along the new road the path of least time to the mall is basically the same for each starting point (x,10) along the improved road, i.e. no matter how far out along this new road we start (beyond a certain w) we always travel the same route to the mall for the shortest trip time to the mall. Indeed, that route is to travel along the improved road from (x,0) to (w,0) and thence directly to the mall on unimproved roads. :[font = postscript; PostScript; formatAsPostScript; output; inactive; preserveAspect; pictureLeft = 100; pictureWidth = 300; pictureHeight = 300] %! %%Creator: Mathematica %%AspectRatio: 1 MathPictureStart %% Graphics /Courier findfont 10 scalefont setfont % Scaling calculations 0.5 0.0238095 0.5 0.0238095 [ [ 0 0 0 0 ] [ 1 1 0 0 ] ] MathScale % Start of Graphics 1 setlinecap 1 setlinejoin newpath [ ] 0 setdash 0 g p P 0 0 m 1 0 L 1 1 L 0 1 L closepath clip newpath p p .02 w .5 .5 Mdot .59524 .7381 Mdot .83333 .7381 Mdot .004 w .08761 .7381 m .91239 .7381 L s .5 .5 m .59524 .7381 L s [(\(w,10\))] .59524 .75476 0 0 Mshowa [(\(x,10\))] .83333 .75476 0 0 Mshowa P p p .004 w .97619 .5 m .97617 .5039 L .97613 .50779 L .97605 .51169 L .97594 .51558 L .97579 .51947 L .97562 .52337 L .97517 .53114 L .9746 .53891 L .9739 .54667 L .97212 .56216 L .96983 .57757 L .96704 .5929 L .95996 .62325 L .95092 .65307 L .93994 .68223 L .91239 .7381 L .87779 .78989 L .83672 .83672 L .78989 .87779 L .7381 .91239 L .71061 .92708 L .68223 .93994 L .65307 .95092 L .62325 .95996 L .5929 .96704 L .57757 .96983 L .56216 .97212 L .54667 .9739 L .53891 .9746 L .53114 .97517 L .52337 .97562 L .51947 .97579 L .51558 .97594 L .51169 .97605 L .50779 .97613 L .5039 .97617 L .5 .97619 L .4961 .97617 L .49221 .97613 L .48831 .97605 L .48442 .97594 L .47663 .97562 L .46886 .97517 L .46109 .9746 L .45333 .9739 L .43784 .97212 L .42243 .96983 L .4071 .96704 L .37675 .95996 L Mistroke .34693 .95092 L .31777 .93994 L .2619 .91239 L .21011 .87779 L .16328 .83672 L .12221 .78989 L .08761 .7381 L .07292 .71061 L .06006 .68223 L .04908 .65307 L .04004 .62325 L .03296 .5929 L .03017 .57757 L .02788 .56216 L .0261 .54667 L .0254 .53891 L .02483 .53114 L .02438 .52337 L .02421 .51947 L .02406 .51558 L .02395 .51169 L .02387 .50779 L .02383 .5039 L .02381 .5 L .02383 .4961 L .02387 .49221 L .02395 .48831 L .02406 .48442 L .02421 .48053 L .02438 .47663 L .02483 .46886 L .0254 .46109 L .0261 .45333 L .02788 .43784 L .03017 .42243 L .03296 .4071 L .04004 .37675 L .04908 .34693 L .06006 .31777 L .08761 .2619 L .12221 .21011 L .16328 .16328 L .21011 .12221 L .2619 .08761 L .28939 .07292 L .31777 .06006 L .34693 .04908 L .37675 .04004 L .4071 .03296 L .42243 .03017 L Mistroke .43784 .02788 L .45333 .0261 L .46109 .0254 L .46886 .02483 L .47663 .02438 L .48053 .02421 L .48442 .02406 L .48831 .02395 L .49221 .02387 L .4961 .02383 L .5 .02381 L .5039 .02383 L .50779 .02387 L .51169 .02395 L .51558 .02406 L .52337 .02438 L .53114 .02483 L .53891 .0254 L .54667 .0261 L .56216 .02788 L .57757 .03017 L .5929 .03296 L .62325 .04004 L .65307 .04908 L .68223 .06006 L .7381 .08761 L .78989 .12221 L .83672 .16328 L .87779 .21011 L .91239 .2619 L .92708 .28939 L .93994 .31777 L .95092 .34693 L .95996 .37675 L .96704 .4071 L .96983 .42243 L .97212 .43784 L .9739 .45333 L .9746 .46109 L .97517 .46886 L .97562 .47663 L .97579 .48053 L .97594 .48442 L .97605 .48831 L .97613 .49221 L .97617 .4961 L .97619 .5 L Mfstroke P P P % End of Graphics MathPictureEnd :[font = subsubsection; inactive; Cclosed; preserveAspect; startGroup] These cells contain the code for generating the above figure. :[font = input; preserveAspect] p = ParametricPlot[{20 Cos[t], 20 Sin[t]},{t,0, 2 Pi}, AspectRatio->Automatic, Axes->False] :[font = input; preserveAspect; startGroup] sol = FindRoot[20 Sin[t] == 10,{t, Pi/4}] :[font = output; output; inactive; preserveAspect; endGroup] {t -> 0.5235987755982988} ;[o] {t -> 0.523599} :[font = input; preserveAspect; startGroup] t1 = t/.sol[[1]] :[font = output; output; inactive; preserveAspect; endGroup] 0.5235987755982988 ;[o] 0.523599 :[font = input; preserveAspect] l = Show[Graphics[{PointSize[.02],Point[{0,0}], Point[{4,10}], Point[{14,10}], Line[{{20 Cos[Pi - t1],20 Sin[Pi - t1]}, {20 Cos[t1],20 Sin[t1]}}], Line[{{0,0},{4,10}}], Text["(w,10)",{4,10.7}], Text["(x,10)",{14,10.7}]}]] :[font = input; preserveAspect; endGroup; endGroup] Show[l,p,AspectRatio->Automatic] :[font = subsection; inactive; preserveAspect] (b) Using results from (a), find out how far out along the new road folks can be in order that travel time to the mall is 1 hour or less. :[font = subsection; inactive; preserveAspect] (c) Now consider folks North of the new road and ascertain a path of least time they should take to get to the mall. :[font = subsection; inactive; preserveAspect] (d) Using the results from (c), determine a boundary North of the new road such that all folks who are within that boundary can get to the mall in 1 hour or less. :[font = subsection; inactive; preserveAspect] (e) What path should folks take if they live within the 20 mile circle and South of the new road to get to the mall in the shortest time? if they live outside the 20 mile circle and South of the new road? :[font = subsection; inactive; preserveAspect; endGroup] (f) Now offer up a new hinterland for the shopping mall such that all people can get to the mall in 1 hour or less, using normal suburban roads and the new road. :[font = section; inactive; Cclosed; preserveAspect; startGroup] KEYWORDS :[font = subsection; inactive; preserveAspect; endGroup] Optimization, function of one variable, two-step process, geometry, distance, time. :[font = section; inactive; Cclosed; preserveAspect; startGroup] TEACHER NOTES :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] ISSUES RELATED TO THE PROBLEM :[font = subsubsection; inactive; preserveAspect] The problem is intriguing for by adding the road one sees that some folks who cannot get to the mall in one hour can now actually make it to the mall. Students may trial and error several points for timing to the mall, but this takes a good model to be in place first. :[font = subsubsection; inactive; preserveAspect] We have found that if they do not get the idea of determining the point along the new highway at which one should cut off and go directly to the mall that the teacher suggest that to them, else they will be in to a function of two variables early on with no foreseeable way out. :[font = subsubsection; inactive; preserveAspect; endGroup] It might be appropriate to encourage conjectures on the shape of the new region before analysis. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Prerequisites :[font = subsubsection; inactive; preserveAspect; endGroup] Optimization of functions of one variable. Formulation of distance, rate, time optimization problems. Construction of functions (linear) perhaps parametrically and in rectangular coordinates. Some experience with argument by symmetry. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Time allotment - time management :[font = subsubsection; inactive; preserveAspect] We have used this problem in a calculus course in which students have just completed optimization of a function of one variable. :[font = subsubsection; inactive; preserveAspect] We have devoted one entire class to this problem with students working in groups and sharing insights. Further, we gave them a week to write it up. Unless proper time (reduced homework assignments for example ) is allotted the students cannot concentrate on the formulation and analysis. :[font = subsubsection; inactive; preserveAspect; endGroup] We suggest somewhere around two nights worth of homework on this problem and its write-up in addition to the class hour on getting into the problem in groups. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Expectations :[font = subsubsection; inactive; preserveAspect; endGroup] Students will do a good bit of doodling before arriving at reasonable figure to help them determine objective function for oprimization. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Future payoffs :[font = subsubsection; inactive; preserveAspect; endGroup] Students will be able to formulat objective functions from complex situation, indeed, recognize then optimization is an appropriate tool. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] Extensions :[font = subsubsection; inactive; preserveAspect] Ask for the additional area which is added to the region by virtue of use of the new road. :[font = subsubsection; inactive; preserveAspect] Ask for the additional area as a function of the speed permitted on the new road. :[font = subsubsection; inactive; preserveAspect] Find the other new isotime borders, e.g. what do all the points for which you can get to them in 50 minutes look like in this new situation; in 45 minutes; in 30 minutes, etc. Are there any changes in the original regions if they are small? :[font = subsubsection; inactive; preserveAspect] Consider the original problem with a more realistic square grid of roads. First the student must find out how to determine distances between points. As an additional alternative to this square grid of roads, suppose the new road does not run parallel to the roads in the existing road grid. :[font = subsubsection; inactive; preserveAspect] Consider different shaped new roads, e.g., section of a circular road with specific radius but not centered at mall, perhaps centered around down town. This could be a beltway around the city. :[font = subsubsection; inactive; preserveAspect] Introduce another road with yet a different speed. :[font = subsubsection; inactive; preserveAspect; endGroup] Consider cost to move materials to be different in various sections of the region and find all the equicost lines for a fixed cost. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] References and Sources :[font = subsubsection; inactive; preserveAspect] From a presentation by the late Professor Don Koehler, Department of Mathematics, Miami University, Oxford OH. Based on material found in Geographic Studies of Urban Transportation, in Studies in Geography. Number 16. 1968. Frank Horton Ed. Northwestern University. pp. 128-170. :[font = subsubsection; inactive; preserveAspect; endGroup; endGroup] The Solution presented below is modelled after that of Frank Volkers, BS Chemical Engineering, Class of 1994, Rose-Hulman Institute of Technology. Mr. Volkers completed the analysis for this problem when he was a student in the Integrated, First-Year Curriculum in Science, Engineering, and Mathematics in the Fall 1990. :[font = section; inactive; Cclosed; preserveAspect; startGroup] POSSIBLE SOLUTION(S) :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] (a) Place the mall at (0, 0). Find a distance w (measured along the new road from a point of intersection with the new road and a North-South line through the Mall) such that for distances x greater than w, along the new road the path of least time to the mall is basically the same for each starting point (x,10) along the improved road, i.e. no matter how far out along this new road we start (beyond a certain w) we always travel the same route to the mall for the shortest trip time to the mall. And that route is to travel along the improved road from (x,0) to (w,0) and thence directly to the mall on unimproved roads. :[font = subsubsection; inactive; preserveAspect; startGroup] We take some point farther out along the new road, say P = (20,10) and ask where along the new road (w, 10) would we cut off to head toward the mall? We seek to minimize the total time from P through (w, 10) to the mall as a function of w. :[font = input; preserveAspect] T[wn_] = (20 - wn)/(2/3) + Sqrt[10^2 + wn^2]/(1/3); :[font = input; preserveAspect; startGroup] sol = Solve[T'[wn]==0,wn]//N :[font = output; output; inactive; preserveAspect; endGroup] {{wn -> 5.773502691896258}} ;[o] {{wn -> 5.7735}} :[font = input; preserveAspect; endGroup] w = wn/.sol[[1]]; :[font = subsubsection; inactive; preserveAspect; endGroup] Thus when traveling along the new road we should cut off at the point (5.7735, 10). If we are further "in" i.e. our x-coordinate is less than 5.7735 we should head directly for the mall. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] (b) Using results from (a), find out how far out along the new road folks can be in order that travel time to the mall is 1 hour or less. :[font = subsubsection; inactive; preserveAspect; startGroup] We need to determine how far out beyond w on the new road we can be and still get to the mall (ion this through (w, 10) path) in exactly one hour. To find this distance we subtract from 1 hour the time it takes to get from (w, 10) to the mall and then divide that time by the rate we can travel on the new road. Call this addw and then add it to w to find the extreme point along the new road we can now reach - ept which is 22.6795 mi out on the new road. :[font = input; preserveAspect; startGroup] addw = (60 - Sqrt[w^2 + 10^2]/(1/3)) 2/3 :[font = output; output; inactive; preserveAspect; endGroup] 16.90598923241497 ;[o] 16.906 :[font = input; preserveAspect; startGroup] ept = w + addw :[font = output; output; inactive; preserveAspect; endGroup; endGroup; endGroup] 22.67949192431123 ;[o] 22.6795 :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] (c) Now consider folks North of the new road and ascertain a path of least time they should take to get to the mall. :[font = subsubsection; inactive; preserveAspect] People should travel from their home to the new highway on a path which is parallel to the route from (w, 0) to the mall at (0, 0). :[font = subsubsection; inactive; preserveAspect] For consider the case of a person living beyond the point (w, 10) i.e. at (w + d, 10 + a) where a > 0 and d > 0. Now what value of x is such that w + x is the point on the new road to which they head in order to minimize their total time to get to the mall? Or what angle does the path from their home to the new road make with the vertical? We claim it is the same as the angle by symmetry. But we confirm this by analysis. :[font = subsubsection; inactive; preserveAspect; startGroup] Again we need to minimize travel time to the mall and so we compute the time to get to the mall (0, 0) through (w, 10) from ( w+d, 10 +a). :[font = input; preserveAspect] timex[x_] = Sqrt[a^2 + (d-x)^2]/(1/3) + (x-w)/(2/3) + Sqrt[w^2 + 10^2]/(1/3); :[font = input; preserveAspect; startGroup] sol = Solve[timex'[x] ==0,x] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] {{x -> (-2*3^(1/2)*a + 6*d)/6}, {x -> (2*3^(1/2)*a + 6*d)/6}} ;[o] -2 Sqrt[3] a + 6 d 2 Sqrt[3] a + 6 d {{x -> ------------------}, {x -> -----------------}} 6 6 :[font = subsubsection; inactive; preserveAspect; startGroup] We try out some values to determine which of these two solutions gives rise to a minimum time. :[font = input; preserveAspect; startGroup] timex1[x_] = timex[x]/.sol[[1]]/.{a->20,d->15}//N :[font = output; output; inactive; preserveAspect; endGroup] 100.4422863405995 ;[o] 100.442 :[font = input; preserveAspect; startGroup] timex2[x_] = timex[x]/.sol[[2]]/.{a->20,d->15}//N :[font = output; output; inactive; preserveAspect; endGroup; endGroup] 135.083302491977 ;[o] 135.083 :[font = subsubsection; inactive; preserveAspect; startGroup] Thus we should choose solution 1 to minimize the time of travel. :[font = input; preserveAspect; endGroup] xs = x/.sol[[1]]; :[font = subsubsection; inactive; preserveAspect; startGroup] This means the angle between the path from their home ( w+d, 10 + a) to (w+x, 10) and the vertical is to be angle. theta (theta(a)?) :[font = input; preserveAspect; startGroup] theta = Simplify[ArcTan[(d-xs)/(a)]]//N :[font = output; output; inactive; preserveAspect; endGroup; endGroup] 0.5235987755982988 ;[o] 0.523599 :[font = subsubsection; inactive; preserveAspect; startGroup] Notice this is a constant and that says no matter what a is the angle between the road from their home to the new road and the vertical is always the same. This angle is the same as the angle formed by the vertical at (0, 0) and the road from (0, 0) to (w, 10) :[font = input; preserveAspect; startGroup] ArcTan[w/10] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] 0.5235987755982988 ;[o] 0.523599 :[font = subsubsection; inactive; preserveAspect; endGroup] Now consider a line through the origin (0, 0 ) and (w, 10). Any resident to the right (East) of that line should take a path with an angle of 0.523599 with the vertical until they hit the new rod, go to the point (w, 10) on the new road, and then turn directly to the mall. Any resident to the left (West) of that line should take a path directly to the mall. This then does not change the geometry of the border for points above this line. :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] (d) Using the results from (c), determine a boundary North of the new road such that all folks who are within that boundary can get to the mall in 1 hour or less. :[font = subsubsection; inactive; preserveAspect; startGroup] So if we are at a point (say (w + d, a + 10)) to the right of the extended line from (0, 0) to (w, 10) (a > 0 and d > 0) then we should hit the new road at the point :[font = input; preserveAspect; startGroup] newpt[d_,a_] = {w + d,a+10} - {a Tan[theta],a} :[font = output; output; inactive; preserveAspect; endGroup; endGroup] {5.773502691896258 - 0.5773502691896258*a + d, 10} ;[o] {5.7735 - 0.57735 a + d, 10} :[font = subsubsection; inactive; preserveAspect; startGroup] and travel the following distance from the residence to the new road: :[font = input; preserveAspect; endGroup] dist[d_,a_] = a/Cos[theta]; :[font = subsubsection; inactive; preserveAspect; startGroup] We now offer the newtime to go from the resident to the new road over to (w, 10) and then down to the mall is given by the following equation: :[font = input; preserveAspect; startGroup] newtime[d_,a_] = Simplify[Sqrt[w^2 + 10^2]/(1/3) + dist[d,a]/(1/3) + (newpt[d,a][[1]] - w)/(2/3)] :[font = output; output; inactive; preserveAspect; endGroup] 34.64101615137754 + 2.598076211353316*a + (3*d)/2 ;[o] 3 d 34.641 + 2.59808 a + --- 2 :[font = input; preserveAspect; endGroup] solpu = Solve[60 == newtime[d,a],a]; :[font = subsubsection; inactive; preserveAspect; startGroup] Then the points on the new border fall on this line, given parametrically - but from where to where? :[font = input; preserveAspect; endGroup] pn[d_] = {w+d,a + 10}/.solpu[[1]]; :[font = subsubsection; inactive; preserveAspect; startGroup] We convert the parametric form to rectangular form. :[font = input; preserveAspect; startGroup] sol = Solve[(pn[1][[2]] - pn[0][[2]])/ (pn[1][[1]] - pn[0][[1]]) == (y - pn[0][[2]])/(x - pn[0][[1]]),y] :[font = output; output; inactive; preserveAspect; endGroup] {{y -> 23.09401076758501 - 0.5773502691896227*x}} ;[o] {{y -> 23.094 - 0.57735 x}} :[font = input; preserveAspect; endGroup] pu[x_] = y/.sol[[1]]; :[font = subsubsection; inactive; preserveAspect; startGroup] We first figure out where the new border line actually touches the circular border x^2 + y^2 = 20^2 by forcing the x and y coordinates (each functions of d) to satisfy x^2 + y^2 = 20^2. I.e. we discover the starting value of d for which the new border line touches the circular border. :[font = input; preserveAspect; startGroup] sols = Solve[x^2 + pu[x]^2 == 20^2,x] :[font = output; output; inactive; preserveAspect; endGroup] {{x -> 9.99999999999958}, {x -> 10.00000000000035}} ;[o] {{x -> 10.}, {x -> 10.}} :[font = input; preserveAspect; endGroup] xus = x/.sols[[1]]; :[font = subsubsection; inactive; preserveAspect; startGroup] We next figure out where the new border line actually touches the new road, at least the x value of the intercept. :[font = input; preserveAspect; startGroup] sole = Solve[pu[x]== 10,x] :[font = output; output; inactive; preserveAspect; endGroup] {{x -> 22.67949192431132}} ;[o] {{x -> 22.6795}} :[font = input; preserveAspect; endGroup] xue = x/.sole[[1]]; :[font = subsubsection; inactive; preserveAspect; startGroup] And finally we plot the new boundary line of the extended reachable region. :[font = input; preserveAspect; startGroup] ru = Plot[pu[x],{x,xus,xue}] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] Graphics["<<>>"] ;[o] -Graphics- :[font = subsubsection; inactive; preserveAspect; startGroup] We have by symmetry on the left side upper region border: :[font = input; preserveAspect] qu[x_] = 23.094 + 0.57735 x; :[font = input; preserveAspect; startGroup] lu = Plot[qu[x],{x,-xue,-xus}] :[font = output; output; inactive; preserveAspect; endGroup; endGroup; endGroup] Graphics["<<>>"] ;[o] -Graphics- :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] (e) What path should folks take if they live within the 20 mile circle and South of the new road to get to the mall in the shortest time? if they live outside the 20 mile circle and South of the new road? :[font = subsubsection; inactive; preserveAspect; startGroup] To define the corresponding reachable region below the road, but not in the circular region, we need the slope. of the upper border line . And the slope of the lower border is just the negative of that slope while the lower border line goes through the same point. :[font = input; preserveAspect] slope = (pu[2] - pu[1])/(2 - 1); :[font = input; preserveAspect; startGroup] sol = Solve[(y -pu[xue])/(x - xue) == -slope,y] :[font = output; output; inactive; preserveAspect; endGroup] {{y -> -3.094010767585011 + 0.5773502691896227*x}} ;[o] {{y -> -3.09401 + 0.57735 x}} :[font = input; preserveAspect; endGroup] pl[x_]= y/.sol[[1]]; :[font = subsubsection; inactive; preserveAspect; startGroup] Now we need to ascertain the intersection of the circular boundary and this lower new boundary line. :[font = input; preserveAspect; startGroup] sol = Solve[x^2 + pl[x]^2 == 20^2, x] :[font = output; output; inactive; preserveAspect; endGroup] {{x -> -15.82461369006166}, {x -> 18.50410561437287}} ;[o] {{x -> -15.8246}, {x -> 18.5041}} :[font = input; preserveAspect; startGroup] xs = x/.sol[[2]] :[font = output; output; inactive; preserveAspect; endGroup] 18.50410561437287 ;[o] 18.5041 :[font = input; preserveAspect; startGroup] rl = Plot[pl[x],{x,xs,xue}] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] Graphics["<<>>"] ;[o] -Graphics- :[font = subsubsection; inactive; preserveAspect; startGroup] And we have by symmetry on the left side lower region border: :[font = input; preserveAspect] ql[x_]= -0.57735 x - 3.09401; :[font = input; preserveAspect; startGroup] ll = Plot[ql[x],{x,-xs,-xue}] :[font = output; output; inactive; preserveAspect; endGroup; endGroup; endGroup] Graphics["<<>>"] ;[o] -Graphics- :[font = subsection; inactive; Cclosed; preserveAspect; startGroup] (f) Now offer up a new hinterland for the shopping mall such that all people can get to the mall in 1 hour or less, using normal suburban roads and the new road. :[font = subsubsection; inactive; preserveAspect] As a reference we plot the circular boarder and the new road. :[font = subsubsection; inactive; preserveAspect; startGroup] Plot of 1 hour circular (old) boundary of mall. :[font = input; preserveAspect; startGroup] circle = ParametricPlot[{20 Cos[t], 20 Sin[t]},{t,0,2 Pi}, AspectRatio->Automatic] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] Graphics["<<>>"] ;[o] -Graphics- :[font = subsubsection; inactive; preserveAspect; startGroup] Line of the new road. :[font = input; preserveAspect; startGroup] rline = Graphics[Line[{{-xue, 10}, {xue, 10}}]] :[font = output; output; inactive; preserveAspect; endGroup] Graphics["<<>>"] ;[o] -Graphics- :[font = input; preserveAspect; startGroup] Show[rline] :[font = output; output; inactive; preserveAspect; endGroup; endGroup] Graphics["<<>>"] ;[o] -Graphics- :[font = subsubsection; inactive; preserveAspect; startGroup] Thus the outline of the new region is given by the added "triangular" regions depicted below with the section of the new road going from "vertex" to vertex.. :[font = input; preserveAspect; startGroup] Show[circle,ru,rl,rline,ll,lu] :[font = output; output; inactive; preserveAspect; endGroup; endGroup; endGroup; endGroup] Graphics["<<>>"] ;[o] -Graphics- :[font = section; inactive; Cclosed; preserveAspect; startGroup] ISSUES IN SOLUTION :[font = subsection; inactive; preserveAspect] This problem is complex and keeping track of what one wants to accomplish just in one quadrant of the problem is notationally and mathematically hard at times. Arguing from symmetry (weakly!) and not defending with analysis is common. :[font = subsection; inactive; preserveAspect; endGroup; endGroup] If students are able to accomplish one quadrant of the problem they may well wish to just draw in the other regions. That is just fine for the analysis after this is tedious and filled with accounting and symmetry arguments. But is would be wise to at least do one of the lower quadrants to ascertain the different nature of the lower regions. ^*)