(************** Content-type: application/mathematica ************** Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 54595, 1408]*) (*NotebookOutlinePosition[ 55365, 1434]*) (* CellTagsIndexPosition[ 55321, 1430]*) (*WindowFrame->Normal*) Notebook[{ Cell["Lab 2: Parametric Equations and the TNB Frame", "Title", Background->RGBColor[0, 0, 1]], Cell[TextData[{ "Math 233\tFall 2002\t", StyleBox["Chapter 10, Sections 10.5, 10.6, 10.7", FontFamily->"Arial", FontSize->16, FontWeight->"Bold"], " \n", StyleBox["(ideas based upon labs written by Marie Vanisko)", FontSize->14] }], "Subtitle", TextAlignment->Left, TextJustification->0], Cell[TextData[StyleBox["", FontWeight->"Bold"]], "Subsubtitle"], Cell[CellGroupData[{ Cell["Initialization Cells", "SmallText"], Cell[BoxData[{ \(\(BeginPackage["\"];\)\[IndentingNewLine]\ \[IndentingNewLine] (*\ Author : \ \ Bradford\ Kline\ *) \n (*\ Last\ \(Revision : \ \ October\ 1998\)\ *) \n (*\ Rewritten\ by\ Mark\ Parker\ *) \[IndentingNewLine] (*\ September\ 2001\ *) \n\), "\n", \(\(Off[General::spell];\)\), "\n", \(\(\(Off[General::spell1];\)\(\n\) \)\), "\n", \(Needs["\"]\), "\n", \(\(\(Needs["\"]\)\(\n\) \)\), "\n", \(\(\(DirectedCurvePlot::usage = \n"\";\)\(\n\) \)\), "\n", \(\(\(PositionPlot::usage = \n"\";\)\(\n\) \)\), "\n", \(\(\(VelocityPlot::usage = \n"\";\)\(\n\) \)\), "\n", \(\(\(AccelerationPlot::usage = \n"\";\)\(\n\) \)\), "\n", \(\(\(FieldCurvePlot::usage = \n"\";\)\(\n\) \)\), "\n", \(\(\(Begin["\<`Private`\>"];\)\(\n\) \)\), "\n", \(\(\(DirectedCurvePlot[position_, \ {t_, \ t0_, \ t1_}, \ num_Integer, \ opts___]\ := \ \n\ \ Module[{curveplot, \ arrow, \ arrows, \ tail, \ tip, \ j, \ a, \ dt}, \n\ \ \ \ curveplot = \n\ \ \ \ \ \ ParametricPlot[ position, \ {t, \ t0, \ t1}, \ DisplayFunction -> Identity, \ opts]; \n\n\ \ \ \ Do[ a\ = \ N[ t0\ + \ \((t1\ - \ t0)\)* j/num]; \n\ \ \ \ \ \ \ dt\ = \ \((t1\ - \ t0)\)/ 100; \n\ \ \ \ \ \ \ tail\ = \ position /. t -> a; \n\ \ \ \ \ \ \ tip\ = \ position /. t -> \((a\ + \ dt)\); \n\ \ \ \ \ \ \ arrow[ j]\ = \ \n\ \ \ \ \ \ \ \ \ Graphics[{Hue[0], Arrow[tail, tip, \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ HeadScaling -> Absolute, HeadWidth -> .75]}], \n\ \ \ \ {j, 1, num}]; \n\t\t\n\ \ \ \ arrows = Table[arrow[j], {j, 1, num}]; \n\n\ \ \ \ Show[curveplot, \ arrows, \ FilterOptions[Graphics, \ opts], \ DisplayFunction -> $DisplayFunction]\n\ \ ]\)\(\n\) \)\), "\n", \(\(\(DirectedCurvePlot[position_, \ tRange_List, \ opts___Rule]\ := \n\ \ \ DirectedCurvePlot[position, \ tRange, \ 5, \ opts]\)\(\n\) \)\), "\n", \(\(\(PositionPlot[position_, \ {t_, \ t0_, \ t1_}, \ num_Integer, \ opts___]\ := \ \n\ \ Module[{curveplot, \ arrow, \ arrows, \ tail, \ tip, \ j, \ a, \ velocity}, \n\ \ \ \ curveplot = \n\ \ \ \ \ \ ParametricPlot[ position, \ {t, \ t0, \ t1}, \ DisplayFunction -> Identity, \ opts]; \n\n\ \ \ \ Do[ a\ = \ N[ t0\ + \ \((t1\ - \ t0)\)* j/num]; \n\ \ \ \ \ \ \ tail\ = \ {0, 0}; \n\ \ \ \ \ \ \ tip\ = \ position /. t -> a; \n\ \ \ \ \ \ \ arrow[ j]\ = \ \n\ \ \ \ \ \ \ \ \ Graphics[{Hue[0.4], Arrow[tail, tip, \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ HeadScaling -> Absolute, HeadWidth -> .75]}], \n\ \ \ \ {j, 1, num}]; \n\t\t\n\ \ \ \ arrows = Table[arrow[j], {j, 1, num}]; \n\n\ \ \ \ Show[curveplot, \ arrows, \ FilterOptions[Graphics, \ opts], \ DisplayFunction -> $DisplayFunction]\n\ \ ]\)\(\n\) \)\), "\n", \(\(\(PositionPlot[position_, \ tRange_List, \ opts___Rule]\ := \n\ \ \ PositionPlot[position, \ tRange, \ 5, \ opts]\)\(\n\) \)\), "\n", \(\(\(VelocityPlot[position_, \ {t_, \ t0_, \ t1_}, \ num_Integer, \ opts___]\ := \ \n\ \ Module[{curveplot, \ arrow, \ arrows, \ tail, \ tip, \ j, \ a, \ velocity}, \n\ \ \ \ curveplot = \n\ \ \ \ \ \ ParametricPlot[ position, \ {t, \ t0, \ t1}, \ DisplayFunction -> Identity, \ opts]; \n\n\t\tvelocity\ = \ D[position, t]; \n\t\t\n\ \ \ \ Do[ a\ = \ N[ t0\ + \ \((t1\ - \ t0)\)*j/num]; \n\ \ \ \ \ \ \ tail\ = \ position /. t -> a; \n\ \ \ \ \ \ \ tip\ = \ position + velocity /. t -> a; \n\ \ \ \ \ \ \ arrow[ j]\ = \ \n\ \ \ \ \ \ \ \ \ Graphics[{Hue[0], Arrow[tail, tip, \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ HeadScaling -> Absolute, HeadWidth -> .75]}], \n\ \ \ \ {j, 1, num}]; \n\t\t\n\ \ \ \ arrows = Table[arrow[j], {j, 1, num}]; \n\n\ \ \ \ Show[curveplot, \ arrows, \ FilterOptions[Graphics, \ opts], \ DisplayFunction -> $DisplayFunction]\n\ \ ]\)\(\n\) \)\), "\n", \(\(\(VelocityPlot[position_, \ tRange_List, \ opts___Rule]\ := \n\ \ \ VelocityPlot[position, \ tRange, \ 5, \ opts]\)\(\n\) \)\), "\n", \(\(\(AccelerationPlot[position_, \ {t_, \ t0_, \ t1_}, \ num_Integer, \ opts___]\ := \ \n\ \ Module[{curveplot, \ arrow, \ arrows, \ tail, \ tip, \ j, \ a, \ acceleration}, \n\ \ \ \ curveplot = \n\ \ \ \ \ \ ParametricPlot[ position, \ {t, \ t0, \ t1}, \ DisplayFunction -> Identity, \ opts]; \n\n\t\tacceleration\ = \ D[position, {t, 2}]; \n\t\t\n\ \ \ \ Do[ a\ = \ N[ t0\ + \ \((t1\ - \ t0)\)*j/num]; \n\ \ \ \ \ \ \ tail\ = \ position /. t -> a; \n\ \ \ \ \ \ \ tip\ = \ position + acceleration /. t -> a; \n\ \ \ \ \ \ \ arrow[ j]\ = \ \n\ \ \ \ \ \ \ \ \ Graphics[{Hue[0.7], Arrow[tail, tip, \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ HeadScaling -> Absolute, HeadWidth -> .75]}], \n\ \ \ \ {j, 1, num}]; \n\t\t\n\ \ \ \ arrows = Table[arrow[j], {j, 1, num}]; \n\n\ \ \ \ Show[curveplot, \ arrows, \ FilterOptions[Graphics, \ opts], \ DisplayFunction -> $DisplayFunction]\n\ \ ]\)\(\n\) \)\), "\n", \(\(\(AccelerationPlot[position_, \ tRange_List, \ opts___Rule]\ := \n\ \ \ AccelerationPlot[position, \ tRange, \ 5, \ opts]\)\(\n\) \)\), "\n", \(\(\(FieldCurvePlot[position_, \ {t_, \ t0_, \ t1_}, vectorfield_, {x_, y_}, \ num_Integer, \ opts___]\ := \ \n\ \ Module[{curveplot, \ arrow, \ arrows, \ tail, \ tip, \ j, \ a, fieldvector}, \n\ \ \ \ curveplot = \n\ \ \ \ \ \ DirectedCurvePlot[ position, \ {t, \ t0, \ t1}, 3, \ DisplayFunction -> Identity, \ opts]; \n\n\t\ fieldvector = vectorfield /. {x -> position[\([1]\)], y -> position[\([2]\)]}; \n\t\t\n\ \ \ \ Do[ a\ = \ N[ t0\ + \ \((t1\ - \ t0)\)*j/num]; \n\ \ \ \ \ \ \ tail\ = \ position /. t -> a; \n\ \ \ \ \ \ \ tip\ = \ position + fieldvector /. t -> a; \n\ \ \ \ \ \ \ arrow[ j]\ = \ \n\ \ \ \ \ \ \ \ \ Graphics[{Hue[0.9], Arrow[tail, tip, \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ HeadScaling -> Absolute, HeadWidth -> .75]}], \n\ \ \ \ {j, 1, num}]; \n\t\t\n\ \ \ \ arrows = Table[arrow[j], {j, 1, num}]; \n\n\ \ \ \ Show[curveplot, \ arrows, \ FilterOptions[Graphics, \ opts], \ DisplayFunction -> $DisplayFunction]\n\ \ ]\)\(\n\) \)\), "\n", \(\(\(FieldCurvePlot[position_, \ tRange_List, \ vectorfield_, vars_List, \ opts___Rule]\ := \n\ \ \ FieldCurvePlot[position, \ tRange, \ vectorfield, \ vars, \ \ 5, \ opts]\)\(\n\) \)\), "\n", \(\(\(End[\ ];\)\(\n\) \)\), "\n", \(\(\(Protect[DirectedCurvePlot, \ PositionPlot, \ VelocityPlot, \ AccelerationPlot, \ FieldCurvePlot];\)\(\n\) \)\), "\n", \(EndPackage[\ ]\)}], "Input", InitializationCell->True] }, Closed]], Cell[CellGroupData[{ Cell[TextData[StyleBox["Instructions!", FontColor->RGBColor[1, 0, 0]]], "Section"], Cell[TextData[{ "Work in your assigned group for this lab and to get through the homework. \ If you have difficulties with some of the lab, try to work it out within your \ group. We'll talk about the lab on Monday (23 Sept), but you should be able \ to work through most of it on your own. I'll have you hand in a group report \ on the lab that will be ", StyleBox["due on Thursday (26 Sept)", FontWeight->"Bold"], ". ", StyleBox["You should work on this Wednesday, Thursday, and Friday (during \ class time might work best) - be prepared to discuss what you have learned on \ Monday (23 Sept).", FontWeight->"Bold"], "\n\n", StyleBox["Group Report:", FontWeight->"Bold"], "\n", StyleBox["The heart of the report should be a summary of your observations \ - you may cut and paste from ", FontWeight->"Bold"], StyleBox["Mathematica", FontWeight->"Bold", FontSlant->"Italic"], StyleBox[" to help clarify your explanations. Since this is still a \ learning experience for most of you, I've included a few questions in this \ lab to give you an idea of what type of analysis and reflection I'm looking \ for. For this labe, you should work ", FontWeight->"Bold"], StyleBox["through all parts of this lab and anwer all questions posed. \ Focus on the mathematics used and be able to explain the mathematics in each \ Part. Your written report ", FontWeight->"Bold"], StyleBox["must", FontWeight->"Bold", FontVariations->{"Underline"->True}], StyleBox[" include plots, formula results, and your own summary of what you \ see. Your report should provide a coherent path through your lab, not just \ be a set of bullets. Separate your report into the appropriate parts.", FontWeight->"Bold"], " ", StyleBox["Use your experiences in the ", FontWeight->"Bold"], StyleBox["You Try It", FontWeight->"Bold", FontVariations->{"Underline"->True}], StyleBox[" section (along with the questions you answered from the previous \ section) to write a write a summary of your observations. Bottom Line: I \ don't want just a few words written. Reflect on what you have seen in each \ section. For this lab, your report should be more than a page or two.\n\n", FontWeight->"Bold"], "The easiest way to create a group report is to open up a Word document \ while doing the lab. When you come to a question, you can highlight the text \ and copy and paste it into the Word document. Your group can then type your \ answers into the Word document. If you want to use a graph in your report to \ help clarify an idea or to answer a question, you can click on the graph (so \ that it is surrounded by a box) and then copy and paste it into the Word \ document. Once you've finished the You Try It section, go back to your \ report and write a summary of your experiences - this summary can either go \ in front of or behind the questions you've already answered. \n\n\n" }], "Subsubtitle"] }, Closed]], Cell[CellGroupData[{ Cell["Introduction", "Section"], Cell[TextData[{ "OBJECTIVE: Learn to use ", StyleBox["Mathematica", FontSlant->"Italic"], " to analyze vector-valued functions in 3-dimensions and develop an \ intuition for the properties of a curve given the tangential and normal \ components of acceleration, the TNB reference frame, and curvature and \ torsion. " }], "Text"], Cell[CellGroupData[{ Cell["Technology Guidelines", "Subsection", CellDingbat->"\[LightBulb]"], Cell[TextData[{ StyleBox["NOTE: If you have just finished a module, restart ", CellFrame->True, Background->None], StyleBox["Mathematica", CellFrame->True, FontSlant->"Italic", Background->None], StyleBox[" before executing a new module.\nTO OPEN CELLS, put your cursor \ on the right cell bracket and double click.", CellFrame->True, Background->None], "\nTO STOP AN EXECUTION\n\tSelect the ", StyleBox["Kernel", FontSlant->"Italic"], " pull-down menu and click on ", StyleBox["Abort Evaluation.\n", FontSlant->"Italic"], "ORDER OF EXECUTION\n\tExecute cells in the order given. Do not skip any \ Input cells within a given notebook.\nSAVING NOTEBOOKS\n\tYou can save \ anytime to any directory you choose, and it is wise to save often.\n\t\ However, before you do your final save, delete all your output by selecting \ the \n\t ", StyleBox["Delete All Output", FontSlant->"Italic"], " selection under the ", StyleBox["Kernel", FontSlant->"Italic"], " pull-down menu.\nEXPERIENCING MAJOR PROBLEMS\n\tSave if appropriate, and \ then shut down ", StyleBox["Mathematica", FontSlant->"Italic"], " and start it up again." }], "Text"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["Part I: Parametric Equations of a Curve in 3-Space", "Section"], Cell[TextData[{ "First, let's turn off a couple of ", StyleBox["Mathematica'", FontSlant->"Italic"], "s ", "error warnings. I'll be defining some functions whose names are similar \ to other ", StyleBox["Mathematica ", FontSlant->"Italic"], "functions... this normally gives us a warning, but I'll turn off that \ feature with the following commands:" }], "Text"], Cell[TextData[{ "Note: When you execute this cell, you'll be asked if you want to execute \ the initialization cells - ", StyleBox["SAY YES!", FontWeight->"Bold"] }], "Commentary", FontSize->12, FontColor->RGBColor[0, 0, 1]], Cell[BoxData[{ \(Off[General::spell]\), "\n", \(Off[General::spell1]\)}], "Input"], Cell[TextData[{ "Last week, we looked at parametric equations of a curve in 2 dimensions. \ Today, we'll make the jump to 3-space. First, we define the ", StyleBox["x", FontSlant->"Italic"], ", ", StyleBox["y", FontSlant->"Italic"], ", and ", StyleBox["z", FontSlant->"Italic"], " coordinates for motion parametrically. " }], "Text"], Cell[BoxData[{ \(Clear[x, y, z, t]\), "\n", \(x[t_] = Cos[t]\), "\n", \(y[t_] = Sin[t]\), "\n", \(z[t_] = 4 - t\^2/25\)}], "Input"], Cell[TextData[{ "Next, we plot the resulting curve in red. Here, instead of ", StyleBox["ParametricPlot", FontWeight->"Bold"], ", we can use ", StyleBox["ParametricPlot3D", FontWeight->"Bold"], " for 3-dimensional plots." }], "Text"], Cell[BoxData[ \(\(plotf = ParametricPlot3D[{x[t], y[t], z[t], RGBColor[0, 0, 1]}, {t, 0, 10}, AxesLabel -> {"\", "\", "\"}];\)\)], "Input"], Cell[TextData[{ StyleBox["Question 1:\tAs ", FontWeight->"Bold"], StyleBox["t", FontWeight->"Bold", FontSlant->"Italic"], StyleBox[" increases, what direction are you moving?", FontWeight->"Bold"] }], "Text", Background->RGBColor[0, 1, 1]], Cell["\<\ As before, the derivative of the position vector gives us the velocity \ vector, and the its second derivative is the acceleration vector. Recall \ that we differentiate component by component. Here are the velocity and \ acceleration vectors:\ \>", "Text"], Cell[BoxData[{ \(\ \ Print["\", {\(x'\)[t], \(y'\)[t], \(z'\)[ t]}]\), "\n", \(\(plotf' = ParametricPlot3D[{\(x'\)[t], \(y'\)[t], \(z'\)[t], RGBColor[1, 0, 0]}, {t, 0, 10}, AxesLabel -> {x, y, z}];\)\), "\n", \(Print["\", {\(\(x'\)'\)[t], \(\(y'\)'\)[ t], \(\(z'\)'\)[t]}]\), "\n", \(\(\(plotf'\)' = ParametricPlot3D[{\(\(x'\)'\)[t], \(\(y'\)'\)[t], \(\(z'\)'\)[t], RGBColor[0, 1, 1]}, {t, 0, 10}, AxesLabel -> {x, y, z}];\)\)}], "Input"], Cell[TextData[{ "The following command plots all three functions together, with the \ position in blue, the velocity in red, and the acceleration in aqua. You can \ see that the acceleration in the vertical direction is a negative constant, \ so the velocity in that direction is decreasing at a linear rate, causing the \ motion to spiral down at a rate proportion to ", Cell[BoxData[ \(TraditionalForm\`t\^2\)]], ". The motion, velocity, and acceleration in the ", StyleBox["x ", FontSlant->"Italic"], "and ", StyleBox["y", FontSlant->"Italic"], " directions are circular." }], "Text"], Cell[BoxData[ \(\(Show[plotf, plotf', \(plotf'\)'];\)\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["You Try It: Part I", "Section"], Cell[TextData[{ "Define your own functions for x(t), y(t), and z(t) - we call these the \ equations of motion by changing the entries in red. Make sure that you \ select an appropriate time interval for ", StyleBox["t", FontSlant->"Italic"], " in your plots!" }], "Text"], Cell[BoxData[{\(Clear[x, y, z, t]\), "\n", StyleBox[\(x[ t_] = \ \n\(y[ t_] = \n\(z[t_] = \n\(\(timeinterval\)\(=\)\)\)\);\), FontColor->RGBColor[1, 0, 0]], "\n", \(plotf = ParametricPlot3D[{x[t], y[t], z[t], RGBColor[0, 0, 1]}, {t, 0, timeinterval}, AxesLabel -> {"\", "\", "\"}];\)}], "Input"], Cell["Now check out the velocity and acceleration:", "Text"], Cell[BoxData[{ \(Print["\", {\(x'\)[t], \(y'\)[t], \(z'\)[ t]}]\), "\n", \(\(plotf' = ParametricPlot3D[{\(x'\)[t], \(y'\)[t], \(z'\)[t], RGBColor[1, 0, 0]}, {t, 0, timeinterval}, AxesLabel -> {x, y, z}];\)\), "\n", \(Print["\", {\(\(x'\)'\)[t], \(\(y'\)'\)[ t], \(\(z'\)'\)[t]}]\), "\n", \(\(\(plotf'\)' = ParametricPlot3D[{\(\(x'\)'\)[t], \(\(y'\)'\)[t], \(\(z'\)'\)[t], RGBColor[0, 1, 1]}, {t, 0, timeinterval}, AxesLabel -> {x, y, z}];\)\), "\n", \(\(Show[plotf, plotf', \(plotf'\)'];\)\)}], "Input"], Cell["\<\ The plot of all three together may or may not be instructive.... So.... \ compare your results with those of a few of your classmates in other groups. \ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ Part II: Equations of Motion Velocity \[Rule] Position Velocity \[Rule] Acceleration\ \>", "Section"], Cell["\<\ If you are given the velocity, you can differentiate to find the acceleration \ and integrate to find the position vector. \ \>", "Text"], Cell[TextData[StyleBox["Question 2:\tHow many constants of integration do we \ need to get the general form of the position vector? Explain... ", FontWeight->"Bold"]], "Text", Background->RGBColor[0, 1, 1]], Cell[BoxData[{ \(Clear[position, \ velocity, \ acceleration, t, a, b, c]\), "\n", \(Print["\", velocity = {3/2 \((t + 1)\)\^\(1/2\), E\^\(-t\), 1/\((t + 1)\)}]\), "\n", \(Print["\", acceleration = D[velocity, t]]\), "\n", \(Print["\", rgeneral = Integrate[velocity, t] + {a, b, c}]\)}], "Input"], Cell[TextData[{ "To evaluate the constants of integration in the formula for position (", StyleBox["rgeneral", FontWeight->"Bold"], "), we need to apply the initial conditions. The following command computes \ those constants for an initial position of", Cell[BoxData[ \(TraditionalForm\`\(\(\ \ \)\((1, 1, 0)\)\)\)]], ". The ", StyleBox["Solve", FontWeight->"Bold"], " command is solving the equation rgeneral (at time t=0) = initial. The \ /.t->0 says to evaluate rgeneral for t=0. The values in curly brackets \ {a,b,c} tell ", StyleBox["Mathematica", FontSlant->"Italic"], " to solve for the variables a, b, and c." }], "Text", FontColor->RGBColor[0, 0, 1]], Cell[BoxData[{ \(\(initial = {1, 1, 0};\)\), "\n", \(constants = Solve[\((rgeneral /. t -> 0)\) == initial, {a, b, c}]\)}], "Input"], Cell[TextData[{ "Here is some more info on the ", StyleBox["Solve ", FontWeight->"Bold"], "command:" }], "Text"], Cell[BoxData[ \(\(?Solve\)\)], "Input"], Cell["\<\ We evaluate our position vector with the constants replaced by the values \ just determined.\ \>", "Text"], Cell[BoxData[ \(r = rgeneral /. constants\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["You Try It: Part II", "Section"], Cell["\<\ Go ahead and pick another function to test out... specify a velocity vector \ and initial conditions tor it (e.g. what coordinates in space are you \ starting at?)... then take a derivative to find the acceleration vector and \ integrate and solve the initial value problem to find the position vector.\ \>", "Text"], Cell[BoxData[{\(Clear[a, b, c, t]\), "\n", RowBox[{ StyleBox["velocity", FontColor->RGBColor[1, 0, 0]], "=", \({\ \ }\)}], "\n", RowBox[{ StyleBox["acceleration", FontColor->RGBColor[1, 0, 0]], "=", \(D[\ ]\)}], "\n", RowBox[{ StyleBox["rgeneral", FontColor->RGBColor[1, 0, 0]], "=", \(Integrate[\ ] + {a, b, c}\)}], "\n", RowBox[{ RowBox[{ StyleBox["initial", FontColor->RGBColor[1, 0, 0]], "=", \({\ \ \ }\)}], ";"}], "\n", \(constants = Solve[\((rgeneral /. t -> 0)\) == initial, {a, b, c}]\), "\n", \(r = rgeneral /. constants\)}], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ Part III: Finding Tangential and Normal Components of Acceleration\ \>", "Section"], Cell[TextData[{ "Since it seems that the acceleration vector acts to change the direction \ of the velocity vector, it leads to the idea of rewriting the acceleration \ vector in terms of components that are parallel to velocity (which, you will \ recall is tangent to the path) and perpendicular (or orthogonal or ", StyleBox["normal", FontWeight->"Bold"], ") to the path). In this module, we'll look at how to find these \ components. " }], "Text"], Cell[TextData[{ "You can get a visual perspective of the tangential and normal components \ of the acceleration vector in two dimensions by exploring the Java applet, \ \"Tangent and Normal Vectors.\" ", StyleBox["This Java applet is available on your book's CD or at the website \ ", FontColor->RGBColor[1, 0, 0]], ButtonBox["http://occawlonline.pearsoned.com/bookbind/pubbooks/thomas_awl/\ chapter1/medialib/custom2/b_visch_10.html", ButtonData:>{ URL[ "http://occawlonline.pearsoned.com/bookbind/pubbooks/thomas_awl/\ chapter1/medialib/custom2/b_visch_10.html"], None}, ButtonStyle->"Hyperlink"] }], "Text", FontWeight->"Bold", Background->RGBColor[1, 1, 0]], Cell[TextData[{ "Before we get started, I'm going to define a new function that will find \ the magnitude of a vector - we'll call it ", StyleBox["mag", FontWeight->"Bold"], ". Note that in the definition, I use := rather than =. This tells ", StyleBox["Mathematica", FontSlant->"Italic"], " not to make an assignment right now (e.g. a literal substitution, like \ x=7 or something like that), but to remember that anytime ", StyleBox["mag[ ]", FontWeight->"Bold"], " is used in the future we should take the SquareRoot of the dot product of \ its argument." }], "Text", FontColor->RGBColor[0, 0, 1]], Cell[BoxData[ \(mag[vector_] := \@\(vector . vector\)\)], "Input"], Cell[TextData[{ "Here is our function ", StyleBox["du jour", FontSlant->"Italic"], ":" }], "Text"], Cell[BoxData[{ \(Clear[x, y, z, t, \ r, \ v, \ a]\), "\n", \(\(x[t_] = Cos[t];\)\), "\n", \(\(y[t_] = Sin[t];\)\), "\n", \(\(z[t_] = 4 - t\^2/25;\)\), "\[IndentingNewLine]", \(Print["\", r[t_] = {x[t], y[t], z[t]}]\), "\[IndentingNewLine]", \(Print["\", v[t_] = \(r'\)[t]]\), "\n", \(Print["\", a[t_] = \(v'\)[t]]\)}], "Input"], Cell["\<\ Let's visualize some of these quantities. We'll start with the path of \ motion and then give the velocity and acceleration plots:\ \>", "Text"], Cell[BoxData[ \(\(plotf = ParametricPlot3D[{x[t], y[t], z[t]}, {t, 0, 10}, AxesLabel -> {"\", "\", "\"}];\)\)], "Input"], Cell[BoxData[ \(\(plotv = ParametricPlot3D[{\(x'\)[t], \(y'\)[t], \(z'\)[t], RGBColor[1, 0, 1]}, {t, 0, 10}, AxesLabel -> {"\", "\", "\"}];\)\)], "Input"], Cell[BoxData[ \(\(plota = ParametricPlot3D[{\(x''\)[t], \(y''\)[t], \(z''\)[t], RGBColor[0, 0, 1]}, {t, 0, 10}, AxesLabel -> {"\", "\", "\"}];\)\)], "Input"], Cell["And we can put them all together! ", "Text"], Cell[BoxData[ \(\(Show[plotf, \ plotv, \ plota];\)\)], "Input"], Cell[TextData[{ "Remember that the velocity vector is tangent to the path... so it points \ in the direction of instantaneous motion. Suppose we are interested in the \ ", StyleBox["component of acceleration in the direction of motion (velocity)", FontWeight->"Bold"], ". We could find this by our standard vector projection: ", Cell[BoxData[ \(TraditionalForm\`\(acceleration\ \[FilledCircle]velocity\)\/\(\(\ \[VerticalSeparator]\)\(velocity\)\(\[VerticalSeparator]\)\)\)]], " ", Cell[BoxData[ \(TraditionalForm\`velocity\/\(\(\[VerticalSeparator]\)\(velocity\)\(\ \[VerticalSeparator]\)\)\)]], " , where the first component is the magnitude and the second is the \ direction. We'll give a special name to the direction - it is the ", StyleBox["Unit Tangent Vector", FontWeight->"Bold"], ". Let's go ahead and calculate it now (using our cool new function ", StyleBox["mag", FontWeight->"Bold"], " to find the magnitude):" }], "Text"], Cell[BoxData[ \(Print["\", utan[t_] = v[t]/mag[v[t]] // Simplify]\)], "Input"], Cell["\<\ What is the magnitude of the acceleration in the direction of velocity?\ \>", "Text"], Cell[BoxData[ \(atmag[t_] = \((a[t] . v[t])\)/mag[v[t]] // Simplify\)], "Input"], Cell[TextData[{ StyleBox["Question 3:\tBut think about what we just did... what if we \ rewrite this calculation as ", FontWeight->"Bold", Background->RGBColor[0, 1, 1]], Cell[BoxData[ \(TraditionalForm\`a[t]\ \[FilledCircle] v[t]\/\(\(\[VerticalSeparator]\)\(v[t]\)\(\[VerticalSeparator]\)\)\)]\ , FontWeight->"Bold", Background->RGBColor[0, 1, 1]], StyleBox[". Can you find an equivalent way to find the magnitude? Hint: \ it involves a dot product of acceleration with another vector that we found \ recently...", FontWeight->"Bold", Background->RGBColor[0, 1, 1]] }], "Text", Background->RGBColor[0, 1, 1]], Cell["Go ahead and try it ", "Text"], Cell[BoxData[ \(\ \)], "Input"], Cell[TextData[StyleBox["Question 4:\tDid your results match?", FontWeight->"Bold"]], "Text", Background->RGBColor[0, 1, 1]], Cell["\<\ Here is the Tangential Component of Acceleration (and its graph):\ \>", "Text"], Cell[BoxData[ \(accelt[t_] = atmag[t]\ utan[t]\)], "Input"], Cell[BoxData[ \(\(plotat = ParametricPlot3D[Evaluate[accelt[t]], {t, 0, 10}, AxesLabel -> {"\", "\", "\"}];\)\)], "Input"], Cell["\<\ ... and the acceleration (blue) combined with the tangential component \ (black):\ \>", "Text"], Cell[BoxData[ \(\(Show[plota, plotat];\)\)], "Input"], Cell[TextData[{ "The logical \"mate\" for a tangential component of acceleration would be \ one that is perpendicular, or ", StyleBox["normal", FontWeight->"Bold"], " to the direction of motion. We could find this by subtracting \ accelerationtangential from acceleration, but there is another way that leads \ us to discover another vector for out collection - the ", StyleBox["Unit Normal Vector", FontWeight->"Bold"], ", which is defined to be a unit vector in the direction of the ", StyleBox["derivative", FontSlant->"Italic"], " of the unit tangent vector:" }], "Text"], Cell[BoxData[ \(\(\(Print["\", un[t_] = \(utan'\)[t]/mag[\(utan'\)[t]] // Simplify]\)\(\n\) \)\)], "Input"], Cell[TextData[{ "Now we can find the magnitude of the ", StyleBox["Normal component of acceleration:", FontWeight->"Bold"] }], "Text"], Cell[BoxData[ \(accelnmag[t_] = a[t] . un[t] // Simplify\)], "Input"], Cell["... and the full vector is:", "Text"], Cell[BoxData[ \(acceln[t_] = accelnmag[t]\ un[t]\)], "Input"], Cell["...here is its plot...", "Text"], Cell[BoxData[ \(\(plotan = ParametricPlot3D[Evaluate[acceln[t]], {t, 0, 10}, AxesLabel -> {"\", "\", "\"}];\)\)], "Input"], Cell["Which we can compare with the acceleration plot (blue):", "Text"], Cell[BoxData[ \(\(Show[plota, plotan];\)\)], "Input"], Cell[TextData[StyleBox["Question 5:\tDescribe what you see in the plots of \ tangential and normal components of acceleration, especially in \ comparison/contrast with the full acceleration vector. Think about what each \ of the components means - acceleration in the direction of velocity increases \ your velocity, while the normal components contributes to the \"curvature\" \ of the path.", FontWeight->"Bold"]], "Text", Background->RGBColor[0, 1, 1]], Cell[TextData[{ "Since we have two unit vectors that are perpendicular to each other... we \ could take their cross product... and get a set of 3 vectors that are all \ mutually perpendicular (kind of like the ", StyleBox["i, j, ", FontSlant->"Italic"], "and ", StyleBox["k", FontSlant->"Italic"], " vectors). " }], "Text"], Cell[TextData[{ StyleBox["Question 6:\t What is the magnitude", FontWeight->"Bold"], StyleBox[" ", FontWeight->"Bold", FontSlant->"Italic"], StyleBox["of a vector that is the result of the cross product of 2 unit \ vectors? Recall that the ", FontWeight->"Bold"], StyleBox["magnitude", FontWeight->"Bold", FontVariations->{"Underline"->True}], StyleBox[" of the cross product is the product of the magnitude of the 2 \ vectors and the sin of the angle between them.", FontWeight->"Bold"] }], "Text", Background->RGBColor[0, 1, 1]], Cell[TextData[{ "This vector has a special name - it is the ", StyleBox["Unit Binormal vector", FontWeight->"Bold"], ". This vector, as we will see in ", StyleBox["Part IV", FontWeight->"Bold"], ", measures the tendency of motion to ", StyleBox["twist", FontSlant->"Italic"], " out of the plane defined by the tangential and normal vectors. " }], "Text"], Cell[BoxData[ \(Print["\", ubn[t_] = Cross[utan[t], un[t]] // Simplify]\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Part IV: Computing Curvature and Torsion for a Space Curve", "Section"], Cell[TextData[{ "We'll explore two other concepts that will help us describe motion along a \ curve in space. ", StyleBox["Curvature", FontWeight->"Bold"], " is a measure of how much we turn to the left or right as we move along \ the path traced by the curve. The definition given in the book (page 848) is \ ", Cell[BoxData[ \(TraditionalForm\`\(\(|\)\(\(d \( T\& \[RightVector] \)\)\/ds\)\(|\)\)\)]], " - the magnitude of the rate of change of the ", StyleBox["unit", FontWeight->"Bold"], " ", "tangential vector ", StyleBox["T", FontWeight->"Bold"], " (remember: this is the ", StyleBox["direction of motion) ", FontSlant->"Italic"], "per unit length along the path. What you should see is that when the \ numerical quanitity of curvature is large, ", StyleBox["T", FontWeight->"Bold"], " will turn sharply; if curvature is close to 0, the ", StyleBox["T ", FontWeight->"Bold"], "will turn more slowly.\n", StyleBox["Torsion", FontWeight->"Bold"], " is related to the ", StyleBox["unit binormal vector", FontWeight->"Bold"], " and measures how much we twist out of the plane defined by the tangential \ and normal vectors as we move along the path traced by the curve." }], "Text", FontWeight->"Plain"], Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " simplifies the process of finding curvature and torsion (section 10.7). \ The computations below use formulas directly from your text, and we \ graphically explore the interpretations of the curvature and torsion \ functions." }], "Text"], Cell[BoxData[{ \(Clear[r, v, t, speed]\), "\n", \(mag[vector_] := \@\(vector . vector\)\), "\n", \(Print["\", r[t_] = {10 Sin[t], 10 Exp[\(-t\)], t\^\(10/3\)\/100}]\), "\n", \(Print["\", v[t_] = \(r'\)[t]]\), "\n", \(Print["\", a[t_] = \(v'\)[t]]\), "\n", \(Print["\", speed[t_] = mag[v[t]]]\), "\n", \(Print["\", utan[t_] = v[t]/speed[t] // Simplify]\), "\n", \(Print["\", curvature[t_] = mag[Cross[v[t], a[t]]]/speed[t]\^3 // Simplify]\), "\n", \(Print["\", torsion[t_] = Det[{v[t], a[t], \(a'\)[t]}]/\((Cross[v[t], a[t]] . Cross[v[t], a[t]])\) // Simplify]\)}], "Input"], Cell["\<\ Let's visualize some of these quantities. We will begin by drawing the path \ of motion.\ \>", "Text"], Cell[BoxData[ \(\(ParametricPlot3D[Evaluate[r[t]], {t, 0, 10}, AxesLabel -> {x, y, z}];\)\)], "Input"], Cell[BoxData[{ \(Print["\", speed[t]]\), "\n", \(\(ps = Plot[Evaluate[speed[t]], {t, 0, 10}, AxesLabel -> {t, speed}, PlotStyle -> RGBColor[1, 0, 0]];\)\)}], "Input"], Cell[BoxData[{ \(Print["\", curvature[t]]\), "\n", \(\(pc = Plot[Evaluate[curvature[t]], {t, 0, 10}, AxesLabel -> {t, curvature}, PlotRange -> All, PlotStyle -> RGBColor[0, 1, 0]];\)\)}], "Input"], Cell[BoxData[{ \(Print["\", torsion[t]]\), "\n", \(\(pt = Plot[Evaluate[torsion[t]], {t, 0, 10}, AxesLabel -> {t, torsion}, PlotStyle -> RGBColor[0, 0, 1], PlotRange -> All];\)\)}], "Input"], Cell[BoxData[{ \(\(Show[ps, pc, pt];\)\), "\n", \(Print["\"]\)}], \ "Input"], Cell[TextData[StyleBox["Question 7:\tLook at your space curve, and see if you \ can identify the points on your space curve at which the curvature or torsion \ spike. What has caused these events? Do they seem to be related at all to the \ speed?", FontWeight->"Bold"]], "Text", Background->RGBColor[0, 1, 1]], Cell[TextData[StyleBox["Question 8:\tFrom the definition of curvature that \ relates it to the cross product of the velocity and acceleration, recall that \ the curvature is smallest when the velocity and acceleration are in the same \ direction. The curvature is largest when the velocity and acceleration are \ perpendicular to one another. Explain why this is true and what it has to do \ with what you see above.", FontWeight->"Bold"]], "Text", Background->RGBColor[0, 1, 1]], Cell[BoxData[ \(\(ParametricPlot3D[Evaluate[r[t]], {t, 0, 10}, AxesLabel -> {x, y, z}];\)\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["You Try It: Part IV", "Section"], Cell[TextData[{ StyleBox["Redefine your position function (in red) and compute the \ quantities listed below. ", FontColor->RGBColor[1, 0, 0]], "I've already cut and pasted the cells you need to get the picture. I want \ you to focus more on the ", StyleBox["concepts", FontSlant->"Italic"], " rather than getting bogged down in the calculation of or ", StyleBox["Mathematica", FontSlant->"Italic"], " ", "notation for these quantities. Note that the computations here are not \ trivial, so it may take some time to complete the calculations if you have a \ complicated function." }], "Text"], Cell[BoxData[{\(Clear[r, v, t, speed]\), "\n", \(mag[vector_] := \@\(vector . vector\)\), "\n", RowBox[{"Print", "[", RowBox[{"\"\\"", ",", RowBox[{ StyleBox[\(r[t_]\), FontColor->RGBColor[1, 0, 0]], "=", \({\ }\)}]}], "]"}], "\n", \(Print["\", v[t_] = \(r'\)[t]]\), "\n", \(Print["\", a[t_] = \(v'\)[t]]\), "\n", \(Print["\", speed[t_] = mag[v[t]]]\), "\n", \(Print["\", unittangent[t_] = v[t]/speed[t] // Simplify]\), "\n", \(Print["\", curvature[t_] = mag[Cross[v[t], a[t]]]/Abs[speed[t]\^3] // Simplify]\), "\n", \(Print["\", torsion[t_] = Det[{v[t], a[t], \(a'\)[t]}]/mag[Cross[v[t], a[t]]]\^2 // Simplify]\), "\n", \(ParametricPlot3D[Evaluate[r[t]], {t, 0, 5}, AxesLabel -> {x, y, z}];\)}], "Input"], Cell[BoxData[{ \(speed[t]\), "\n", \(\(ps = Plot[Evaluate[speed[t]], {t, 0, 10}, AxesLabel -> {t, speed}, PlotStyle -> RGBColor[1, 0, 0]];\)\), "\n", \(curvature[t]\), "\n", \(\(pc = Plot[Evaluate[curvature[t]], {t, 0, 10}, AxesLabel -> {t, curvature}, PlotRange -> All, PlotStyle -> RGBColor[0, 1, 0]];\)\), "\n", \(torsion[t]\), "\n", \(\(pt = Plot[Evaluate[torsion[t]], {t, 0, 10}, AxesLabel -> {t, torsion}, PlotStyle -> RGBColor[0, 0, 1], PlotRange -> All];\)\), "\n", \(\(Show[ps, pc, pt];\)\), "\n", \(Print["\"]\)}], \ "Input"] }, Closed]], Cell[CellGroupData[{ Cell[TextData[{ "Part V: TNB Frame", Cell[BoxData[ \(TraditionalForm\`-\)]], "Computation and Visualization" }], "Section"], Cell["\<\ The TNB Frame gives a local reference frame (or coordinate system) that is \ useful in studying the physics of motion. We'll occasionally refer to it \ again in this class, but you'll be seeing a lot of it in other classes. The \ idea is to create a reference frame that is \"recentered\" at each point on a \ curve. We will define one axis to be in the direction of the velocity vector \ (T), one axis that is perpendicular to that vector (N), and another that is \ the cross product of T and N (B). If nothing else, executing these commands \ will allow you to visualize this reference frame. \ \>", "Text"], Cell[BoxData[{ \(Clear[r, v, a, t, speed, curvature, torsion]\), "\n", \(mag[vector_] := \@\(vector . vector\)\), "\n", \(Print["\", r[t_] = {Sin[2 t], Cos[2 t], t\^2\/10}]\), "\n", \(Print["\", v[t_] = \(r'\)[t]]\), "\n", \(Print["\", a[t_] = \(v'\)[t]]\), "\n", \(Print["\", speed[t_] = mag[v[t]] // Simplify]\), "\n", \(Print["\", utan[t_] = v[t]/speed[t] // Simplify]\), "\n", \(Print["\", curvature[t_] = mag[Cross[v[t], a[t]]]/speed[t]\^3 // Simplify]\), "\n", \(Print["\", torsion[t_] = Det[{v[t], a[t], \(a'\)[t]}]/mag[Cross[v[t], a[t]]]\^2 // Simplify]\), "\n", \(\(top = \(utan'\)[t] // Simplify;\)\), "\n", \(\(bottom = mag[top] // Simplify;\)\), "\n", \(Print["\", un[t_] = top/bottom // Simplify]\), "\n", \(Print["\", ubn[t_] = Cross[utan[t], un[t]] // Simplify]\)}], "Input"], Cell["\<\ Let's find the tangential and normal components of the accelerations.\ \>", "Text"], Cell[BoxData[{ \(Print["\", at[t_] = a[t] . utan[t] // Simplify]\), "\n", \(Print["\", an[t_] = a[t] . un[t] // Simplify]\)}], "Input"], Cell["\<\ If you compare the tangential and normal components of acceleration found by \ the dot products I use above to the formulas given in your book (page 854), \ you will see that they agree (once the absolute value sign is removed from \ the curvature formula).\ \>", "Text"], Cell[TextData[{ "The commands below with double equal signs are ", StyleBox["logical tests", FontVariations->{"Underline"->True}], StyleBox[" in ", FontVariations->{"CompatibilityType"->0}], StyleBox["Mathematica. Mathematica", FontSlant->"Italic", FontVariations->{"CompatibilityType"->0}], StyleBox[" returns ", FontVariations->{"CompatibilityType"->0}], StyleBox["true ", FontWeight->"Bold", FontVariations->{"CompatibilityType"->0}], StyleBox["or ", FontVariations->{"CompatibilityType"->0}], StyleBox["false", FontWeight->"Bold", FontVariations->{"CompatibilityType"->0}], StyleBox[" depending upon whether or not the left-hand-side of the equation \ is equivalent to the right-hand-side. ", FontVariations->{"CompatibilityType"->0}] }], "Text", FontColor->RGBColor[0, 0, 1]], Cell[BoxData[{ \(at[t] == \(speed'\)[t] // Simplify\), "\n", \(an[t] == curvature[t]\ speed[t]\^2 // Simplify\)}], "Input"], Cell[TextData[{ "The equality of the tangential components is verified by ", StyleBox["Mathematica", FontSlant->"Italic"], ". For the normal vector, ", StyleBox["Mathematica", FontSlant->"Italic"], " does not completely simplify the results to the point where it can verify \ the validity of the equality. However, you should be able to simplify \ further to see that the normal components agaree also." }], "Text"], Cell[TextData[{ "The following set of commands will plot the unit tangent, unit normal, and \ unit binormal vectors as you move along the curve.\n", StyleBox["After the plots are generated, double click on any one to see the \ animation. Control the playback (speed up, slow down, pause) by clicking on \ the buttons in the bottom left corner of the notebook screen.", FontColor->RGBColor[1, 0, 0]] }], "Text"], Cell[BoxData[{ \(\(Off[ParametricPlot3D::"\"];\)\), "\n", \(\(Do[\[IndentingNewLine]p1 = ParametricPlot3D[r[t], {t, 0, 2. \[Pi]}, PlotRange \[Rule] {{\(-1.5\), 1.5}, {\(-1.5\), 1.5}, {0, 4}}, DisplayFunction \[Rule] Identity]; \n p2 = Show[ Graphics3D[{Thickness[0.02], RGBColor[1, 0, 0], Line[{r[t], r[t] + utan[t]} /. t \[Rule] ta]}], DisplayFunction \[Rule] Identity]; \[IndentingNewLine]p3 = Show[Graphics3D[{Thickness[0.02], RGBColor[0, 1, 0], Line[{r[t], r[t] + un[t]} /. t \[Rule] ta]}], DisplayFunction \[Rule] Identity]; \n p4 = Show[ Graphics3D[{Thickness[0.02], RGBColor[0, 0, 1], Line[{r[t], r[t] + ubn[t]} /. t \[Rule] ta]}], DisplayFunction \[Rule] Identity]; \n p5 = Show[ Graphics3D[{Dashing[0.01, 0.01], Line[{r[t] + 0.20*utan[t], r[t] + 0.20*utan[t] + 0.20*ubn[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*ubn[t], r[t] + 0.20*ubn[t] + 0.20*utan[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*utan[t], r[t] + 0.20*utan[t] + 0.20*un[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*un[t], r[t] + 0.20*un[t] + 0.20*utan[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*un[t], r[t] + 0.20*un[t] + 0.20*ubn[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*ubn[t], r[t] + 0.20*ubn[t] + 0.20*un[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*utan[t] + 0.20*ubn[t], r[t] + 0.20*utan[t] + 0.20*ubn[t] + 0.2*un[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*utan[t] + 0.20*un[t], r[t] + 0.20*utan[t] + 0.20*ubn[t] + 0.20*un[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*un[t] + 0.20*ubn[t], r[t] + 0.20*utan[t] + 0.20*ubn[t] + 0.20*un[t]} /. t \[Rule] ta]}], DisplayFunction \[Rule] Identity]; \n\(Show[p1, p2, p3, p4, p5, DisplayFunction \[Rule] $DisplayFunction];\), {ta, 0, 2. \[Pi], \[Pi]/4. }];\)\), "\n", \(Print["\"]\)}], "Input", AnimationDisplayTime->0.815731] }, Closed]], Cell[CellGroupData[{ Cell["You Try It: Part V", "Section"], Cell[TextData[{ StyleBox["Here is the code from Part V; all you need to do is change the ", FontColor->RGBColor[1, 0, 0]], StyleBox["position vector ", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], StyleBox["and possibly the ", FontColor->RGBColor[1, 0, 0]], StyleBox["domain", FontWeight->"Bold", FontColor->RGBColor[1, 0, 0]], StyleBox[" for the parametric plot (in the second cell). Pick a function \ to analyze and once you've finished it, you can use the template to work \ through your homework. ", FontColor->RGBColor[1, 0, 0]], "\nNotice that the function I've typed in here is ", StyleBox["different ", FontWeight->"Bold"], "than the one you were given in Part V. It might be worth playing with \ this example before exploring your own vector function. You will also have \ to wait a few minutes for the computations with this functions.... at least I \ did on my computer!" }], "Text"], Cell[BoxData[{\(Clear[r, v, t, speed]\), "\n", \(mag[vector_] := \@\(vector . vector\)\), "\n", RowBox[{"Print", "[", RowBox[{"\"\\"", ",", RowBox[{\(r[t_]\), "=", RowBox[{"{", RowBox[{ StyleBox[\(2 t\), FontColor->RGBColor[1, 0, 0]], ",", StyleBox[\(Cos[t - 1]\), FontColor->RGBColor[1, 0, 0]], ",", StyleBox[\(Exp[\(-t\)]\), FontColor->RGBColor[1, 0, 0]]}], "}"}]}]}], "]"}], "\n", \(Print["\", v[t_] = \(r'\)[t]]\), "\n", \(Print["\", a[t_] = \(v'\)[t]]\), "\n", \(Print["\", speed[t_] = mag[v[t]]]\), "\n", \(Print["\", utan[t_] = v[t]/speed[t] // Simplify]\), "\n", \(Print["\", curvature[t_] = mag[Cross[v[t], a[t]]]/speed[t]\^3 // Simplify]\), "\n", \(Print["\", torsion[t_] = Det[{v[t], a[t], \(a'\)[t]}]/mag[Cross[v[t], a[t]]]\^2 // Simplify]\), "\n", \(top = \(utan'\)[t] // Simplify;\), "\n", \(bottom = mag[top] // Simplify;\), "\n", \(Print["\", un[t_] = \((top/bottom)\) // Simplify]\), "\n", \(Print["\", ubn[t_] = Cross[utan[t], un[t]] // Simplify]\)}], "Input"], Cell["\<\ The following set of commands will plot the unit tangent, unit normal, and \ unit binormal vectors as you move along the curve. After the plots are generated, double click on any one to see the animation. \ Slow it down by clicking on the button in the bottom left corner of the \ notebook screen.\ \>", "Text"], Cell[BoxData[{ RowBox[{\(Off[ParametricPlot3D::"\"]\), ";", "\n", RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"p1", "=", RowBox[{"ParametricPlot3D", "[", RowBox[{\(r[t]\), ",", RowBox[{"{", RowBox[{"t", ",", "0", ",", StyleBox["10", FontColor->RGBColor[1, 0, 0]]}], "}"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", StyleBox[\({\(-1\), 21}, {\(-2\), 2}, {\(-1\), 2}\), FontColor->RGBColor[1, 0, 0]], "}"}]}], ",", \(DisplayFunction \[Rule] Identity\)}], "]"}]}], ";", "\n", \(p2 = Show[Graphics3D[{Thickness[0.02], RGBColor[1, 0, 0], Line[{r[t], r[t] + utan[t]} /. t \[Rule] ta]}], DisplayFunction \[Rule] Identity]\), ";", "\[IndentingNewLine]", \(p3 = Show[Graphics3D[{Thickness[0.02], RGBColor[0, 1, 0], Line[{r[t], r[t] + un[t]} /. t \[Rule] ta]}], DisplayFunction \[Rule] Identity]\), ";", "\n", \(p4 = Show[Graphics3D[{Thickness[0.02], RGBColor[0, 0, 1], Line[{r[t], r[t] + ubn[t]} /. t \[Rule] ta]}], DisplayFunction \[Rule] Identity]\), ";", "\n", \(p5 = Show[Graphics3D[{Dashing[0.01, 0.01], Line[{r[t] + 0.20*utan[t], r[t] + 0.20*utan[t] + 0.20*ubn[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*ubn[t], r[t] + 0.20*ubn[t] + 0.20*utan[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*utan[t], r[t] + 0.20*utan[t] + 0.20*un[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*un[t], r[t] + 0.20*un[t] + 0.20*utan[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*un[t], r[t] + 0.20*un[t] + 0.20*ubn[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*ubn[t], r[t] + 0.20*ubn[t] + 0.20*un[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*utan[t] + 0.20*ubn[t], r[t] + 0.20*utan[t] + 0.20*ubn[t] + 0.2*un[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*utan[t] + 0.20*un[t], r[t] + 0.20*utan[t] + 0.20*ubn[t] + 0.20*un[t]} /. t \[Rule] ta], Line[{r[t] + 0.20*un[t] + 0.20*ubn[t], r[t] + 0.20*utan[t] + 0.20*ubn[t] + 0.20*un[t]} /. t \[Rule] ta]}], DisplayFunction \[Rule] Identity]\), ";", "\n", \(Show[p1, p2, p3, p4, p5, DisplayFunction \[Rule] $DisplayFunction];\)}], ",", RowBox[{"{", RowBox[{"ta", ",", "0", ",", StyleBox["10", FontColor->RGBColor[1, 0, 0]], StyleBox[",", FontColor->RGBColor[1, 0, 0]], StyleBox["1", FontColor->RGBColor[1, 0, 0]]}], "}"}]}], "]"}], ";"}], "\n", \(Print["\"]\)}], "Input"], Cell[TextData[StyleBox["Try at least one problem other than the above from \ your text.", FontColor->RGBColor[1, 0, 0]]], "Text"] }, Closed]] }, FrontEndVersion->"4.1 for Microsoft Windows", ScreenRectangle->{{0, 1024}, {0, 677}}, AutoGeneratedPackage->None, WindowToolbars->{"RulerBar", "EditBar"}, CellGrouping->Manual, WindowSize->{1000, 644}, WindowMargins->{{0, Automatic}, {Automatic, 0}}, StyleDefinitions -> "DemoText.nb" ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[1705, 50, 96, 1, 70, "Title"], Cell[1804, 53, 317, 11, 61, "Subtitle"], Cell[2124, 66, 65, 1, 58, "Subsubtitle"], Cell[CellGroupData[{ Cell[2214, 71, 41, 0, 28, "SmallText"], Cell[2258, 73, 9354, 173, 70, "Input", InitializationCell->True] }, Closed]], Cell[CellGroupData[{ Cell[11649, 251, 84, 1, 34, "Section"], Cell[11736, 254, 2973, 59, 454, "Subsubtitle"] }, Closed]], Cell[CellGroupData[{ Cell[14746, 318, 31, 0, 34, "Section"], Cell[14780, 320, 340, 8, 48, "Text"], Cell[CellGroupData[{ Cell[15145, 332, 74, 1, 44, "Subsection"], Cell[15222, 335, 1206, 33, 70, "Text"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[16477, 374, 69, 0, 34, "Section"], Cell[16549, 376, 384, 11, 48, "Text"], Cell[16936, 389, 236, 7, 25, "Commentary"], Cell[17175, 398, 91, 2, 60, "Input"], Cell[17269, 402, 361, 12, 48, "Text"], Cell[17633, 416, 150, 4, 100, "Input"], Cell[17786, 422, 253, 8, 29, "Text"], Cell[18042, 432, 175, 3, 40, "Input"], Cell[18220, 437, 263, 9, 45, "Text"], Cell[18486, 448, 269, 5, 48, "Text"], Cell[18758, 455, 599, 12, 100, "Input"], Cell[19360, 469, 615, 15, 67, "Text"], Cell[19978, 486, 70, 1, 40, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[20085, 492, 37, 0, 34, "Section"], Cell[20125, 494, 282, 7, 48, "Text"], Cell[20410, 503, 384, 8, 140, "Input"], Cell[20797, 513, 60, 0, 29, "Text"], Cell[20860, 515, 669, 13, 120, "Input"], Cell[21532, 530, 175, 4, 60, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[21744, 539, 114, 4, 80, "Section"], Cell[21861, 545, 147, 3, 29, "Text"], Cell[22011, 550, 212, 3, 45, "Text"], Cell[22226, 555, 442, 8, 101, "Input"], Cell[22671, 565, 703, 18, 67, "Text"], Cell[23377, 585, 148, 3, 60, "Input"], Cell[23528, 590, 122, 5, 29, "Text"], Cell[23653, 597, 43, 1, 40, "Input"], Cell[23699, 600, 116, 3, 29, "Text"], Cell[23818, 605, 58, 1, 40, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[23913, 611, 38, 0, 34, "Section"], Cell[23954, 613, 326, 5, 48, "Text"], Cell[24283, 620, 658, 17, 160, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[24978, 642, 93, 2, 34, "Section"], Cell[25074, 646, 462, 9, 67, "Text"], Cell[25539, 657, 696, 16, 83, "Text"], Cell[26238, 675, 630, 15, 67, "Text"], Cell[26871, 692, 70, 1, 42, "Input"], Cell[26944, 695, 108, 5, 29, "Text"], Cell[27055, 702, 450, 8, 160, "Input"], Cell[27508, 712, 155, 3, 29, "Text"], Cell[27666, 717, 156, 3, 40, "Input"], Cell[27825, 722, 203, 4, 40, "Input"], Cell[28031, 728, 206, 4, 40, "Input"], Cell[28240, 734, 51, 0, 29, "Text"], Cell[28294, 736, 67, 1, 40, "Input"], Cell[28364, 739, 987, 22, 91, "Text"], Cell[29354, 763, 119, 2, 40, "Input"], Cell[29476, 767, 95, 2, 29, "Text"], Cell[29574, 771, 84, 1, 40, "Input"], Cell[29661, 774, 661, 17, 69, "Text"], Cell[30325, 793, 36, 0, 29, "Text"], Cell[30364, 795, 35, 1, 40, "Input"], Cell[30402, 798, 127, 2, 45, "Text"], Cell[30532, 802, 89, 2, 29, "Text"], Cell[30624, 806, 63, 1, 40, "Input"], Cell[30690, 809, 158, 3, 40, "Input"], Cell[30851, 814, 105, 3, 29, "Text"], Cell[30959, 819, 57, 1, 40, "Input"], Cell[31019, 822, 602, 14, 67, "Text"], Cell[31624, 838, 144, 3, 60, "Input"], Cell[31771, 843, 142, 4, 29, "Text"], Cell[31916, 849, 73, 1, 40, "Input"], Cell[31992, 852, 43, 0, 29, "Text"], Cell[32038, 854, 65, 1, 40, "Input"], Cell[32106, 857, 38, 0, 29, "Text"], Cell[32147, 859, 158, 3, 40, "Input"], Cell[32308, 864, 71, 0, 29, "Text"], Cell[32382, 866, 57, 1, 40, "Input"], Cell[32442, 869, 460, 7, 83, "Text"], Cell[32905, 878, 341, 10, 48, "Text"], Cell[33249, 890, 571, 16, 64, "Text"], Cell[33823, 908, 382, 11, 48, "Text"], Cell[34208, 921, 119, 2, 40, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[34364, 928, 77, 0, 34, "Section"], Cell[34444, 930, 1309, 37, 142, "Text"], Cell[35756, 969, 310, 7, 48, "Text"], Cell[36069, 978, 848, 16, 220, "Input"], Cell[36920, 996, 112, 3, 29, "Text"], Cell[37035, 1001, 115, 2, 40, "Input"], Cell[37153, 1005, 211, 4, 60, "Input"], Cell[37367, 1011, 245, 4, 60, "Input"], Cell[37615, 1017, 237, 4, 60, "Input"], Cell[37855, 1023, 137, 3, 60, "Input"], Cell[37995, 1028, 313, 5, 64, "Text"], Cell[38311, 1035, 483, 7, 83, "Text"], Cell[38797, 1044, 115, 2, 40, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[38949, 1051, 38, 0, 34, "Section"], Cell[38990, 1053, 620, 15, 67, "Text"], Cell[39613, 1070, 1000, 19, 224, "Input"], Cell[40616, 1091, 686, 15, 180, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[41339, 1111, 135, 5, 34, "Section"], Cell[41477, 1118, 623, 9, 86, "Text"], Cell[42103, 1129, 1139, 22, 301, "Input"], Cell[43245, 1153, 93, 2, 29, "Text"], Cell[43341, 1157, 248, 4, 60, "Input"], Cell[43592, 1163, 281, 5, 48, "Text"], Cell[43876, 1170, 845, 23, 48, "Text"], Cell[44724, 1195, 132, 2, 60, "Input"], Cell[44859, 1199, 436, 10, 48, "Text"], Cell[45298, 1211, 418, 7, 79, "Text"], Cell[45719, 1220, 2461, 45, 400, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[48217, 1270, 37, 0, 34, "Section"], Cell[48257, 1272, 951, 22, 98, "Text"], Cell[49211, 1296, 1442, 29, 284, "Input"], Cell[50656, 1327, 322, 7, 91, "Text"], Cell[50981, 1336, 3463, 65, 400, "Input"], Cell[54447, 1403, 132, 2, 29, "Text"] }, Closed]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)