{VERSION 5 0 "IBM INTEL NT" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "Hyperlink" -1 17 "" 0 1 0 128 128 1 2 0 1 0 0 0 0 0 0 1 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 256 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 261 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 263 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 264 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 266 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 267 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 268 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 270 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 271 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 272 "" 1 14 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 273 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 274 "" 0 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 }{CSTYLE "" -1 275 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 276 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 278 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 279 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 2" -1 4 1 {CSTYLE "" -1 -1 "Times" 1 14 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 8 2 1 0 1 0 2 2 0 1 }{PSTYLE "Heading 3" -1 5 1 {CSTYLE "" -1 -1 "Times " 1 12 0 0 0 1 1 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Normal" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 10 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 257 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 257 "" 0 "" {TEXT -1 0 "" }{TEXT 269 0 "" }{TEXT 270 23 "Calculus IV with Maple\n" }{TEXT 271 32 "Copyright 2002, Dr. J ack Wagner\n" }{TEXT -1 30 "j.wagner@intelligentsearch.com" }}}{EXCHG {PARA 4 "" 0 "" {TEXT -1 11 "\nLesson 5: " }{TEXT 272 37 "Basic Differ ential Geometry of Curves" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 5 "" 0 "" {TEXT -1 8 "Topics: " }{TEXT 273 242 "Construction of \+ the tangent, normal and binormal (Frenet trihedron). Curvature and to rsion. The osculating circle. Construction of a moving Frenet trihedro n and a moving osculating circle. Projection of a spacecurve onto coo rdinate planes.\n" }}}{EXCHG {PARA 5 "" 0 "" {TEXT 261 27 "Maple comma nds introduced: " }{TEXT 274 26 "Norm, Normalize, transform" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 255 "A side from the intrinsic interest in knowing the length of a particular curve, arc length is important as a parameter. The formulas of differ ential geometry take a particularly simple form when the curves involv ed are parameterized by arc length. Because" }{XPPEDIT 18 0 "ds/dt = \+ sqrt(Sum(diff(x[i](t),t)^2,i = 0 .. 3)):" "6#/*&%#dsG\"\"\"%#dtG!\"\"- %%sqrtG6#-%$SumG6$*$-%%diffG6$-&%\"xG6#%\"iG6#%\"tGF9\"\"#/F7;\"\"!\" \"$" }{TEXT -1 66 " , the computation of the derivative with respect \+ to arc length, " }{XPPEDIT 18 0 "dx/ds = `dx/dt`/`ds/dt`;" "6#/*&%#dxG \"\"\"%#dsG!\"\"*&%&dx/dtGF&%&ds/dtGF(" }{TEXT -1 33 "is the equivalen t of normalizing " }{XPPEDIT 18 0 "dx/dt;" "6#*&%#dxG\"\"\"%#dtG!\"\" " }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 " " 0 "" {TEXT -1 332 "In reading the code that follows, observe the us e of forward quotes (the upper left hand key on your keyboard). The u se of forward quotes creates a symbol. Entries which otherwise would \+ not be acceptable on the left side of an assignment operator may be us ed to create notation which resembles what we are accustomed to seeing . " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 256 13 "\nExample 5.1\n" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 25 "Find the arc length for " } {XPPEDIT 18 0 "x(t)=[t*cos(t), t*sin(t), t]" "6#/-%\"xG6#%\"tG7%*&F'\" \"\"-%$cosG6#F'F**&F'F*-%$sinG6#F'F*F'" }{TEXT -1 33 " between the poi nts t=a and t=b. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 51 "restar t:with(VectorCalculus): with(LinearAlgebra): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "h := ;\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "dh[t] := diff(h, t);\n" }}}{EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 "Norm" 2 "Norm" "" }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "ds[t] := Norm(dh[t], 2);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "s := int(ds[t], t=a..b); \n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 40 "Here we see a difficulty with using the " }{TEXT 275 4 "Norm" } {TEXT -1 99 " function. Because of the absolute value functions (put \+ in to accommodate complex variables), the " }{TEXT 276 3 "int" }{TEXT -1 82 " function returns unevaluated. We can get around this by telli ng Maple to assume " }{TEXT 277 1 "t" }{TEXT -1 20 " is a real variabl e." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "s := int(ds[t], t=a..b) assuming t::real;" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 " Normalize" 2 "Normalize" "" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 61 "If you prefer to do this more directly without using M aple's " }{TEXT 278 4 "Norm" }{TEXT -1 25 " function, you can enter " }{XPPEDIT 18 0 "ds[t]" "6#&%#dsG6#%\"tG" }{TEXT -1 53 " using the defi nition of the norm of dh[t], which is " }{XPPEDIT 18 0 "sqrt(dh[t].dh[ t])" "6#-%%sqrtG6#-%\".G6$&%#dhG6#%\"tG&F*6#F," }{TEXT -1 1 "\n" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "ds[t] := sqrt(dh[t].dh[t]); \n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "s := int(ds[t], t=a.. b);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 61 "Maple's built-in function for arc length confirms the res ult." }}}{EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 "ArcLength" 2 "ArcLength " "" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "A rcLength(h, t=a..b);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 257 11 "Example 5.2" }}{PARA 0 "" 0 "" {TEXT -1 0 "" } }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 297 "We will now construct the Frene t trihedron to the same curve as in Example 5.1 at the point where t=5 . That is, we will construct an orthogonal set of axes consisting of t he unit tangent, the unit normal and the unit binormal to the curve at the point in question. We need the unit tangent first." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "restart: with(LinearAlgebra): with( VectorCalculus):with(plots):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 62 "Let Maple know we are dealing with real positive values of t. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 " assume( t > 0 ): interface(showassumed=0):" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 30 "h := ;\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "dh[t] := diff(h, t);\n" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 24 "ds[t] := Norm(dh[t], 2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "ds[t] := simplify( % );\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 17 "The unit tangen t." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "dh[s] := dh[t]/ds[t]; \n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "T := eval(h+u*dh [s], t=5); \n\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 19 "The Maple f unction " }{TEXT 279 7 "Tangent" }{TEXT -1 4 " or " }{TEXT 280 11 "Tan gentLine" }{TEXT -1 15 " would compute " }{XPPEDIT 18 0 "h+u*dh[t];" " 6#,&%\"hG\"\"\"*&%\"uGF%&%#dhG6#%\"tGF%F%" }{TEXT -1 1 " " }}}{EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 "Tangent" 2 "Tangent" "" }{MPLTEXT 1 0 4 " " }}}{EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 "TangentLine" 2 "Tangent Line" "" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "Tangent(h, t=5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "eva l(h+u*dh[t], t=5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "Tange ntLine(h, t=5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "P1 := sp acecurve(evalm(h), t=1..10, axes=boxed, color=blue):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "P2 := spacecurve(evalm(T), u=-3..3, axes= boxed, color=red, labels=[x, y, z]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "display(P1, P2);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 87 "We have actually drawn the tangent three times unit length for \+ ease of visualization. " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 227 "Now \+ for the normal. This is no different than the planar case except it i s three dimensional. The derivative of dh/ds which is a unit tangent \+ vector, will be orthogonal to dh/ds. The unit normal is the normalized derivative. " }{XPPEDIT 18 0 "`d/ds`*`dh/ds`/abs(`d/ds`*`dh/ds`):" "6 #*(%%d/dsG\"\"\"%&dh/dsGF%-%$absG6#*&F$F%F&F%!\"\"" }{TEXT -1 52 " .Th e curvature of h at the point t, is defined by " }{XPPEDIT 18 0 "kapp a(t) = abs(`d/ds`*`dh/ds`);" "6#/-%&kappaG6#%\"tG-%$absG6#*&%%d/dsG\" \"\"%&dh/dsGF-" }{TEXT -1 2 " =" }{XPPEDIT 18 0 "abs(`d/dt`*`dh/ds`)/a bs(ds/dt);" "6#*&-%$absG6#*&%%d/dtG\"\"\"%&dh/dsGF)F)-F%6#*&%#dsGF)%#d tG!\"\"F0" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "dT[t] := simpl ify(diff(dh[s], t));\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 61 "This non-normalized vector is produced by the Maple function." }}}{EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 "Principa lNormal" 2 "PrincipalNormal" "" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 22 "PrincipalNormal(h, t);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "n := simplify(Normalize(dT[t], 2, inplace)); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 39 "N := eval(h+u*n, t=5.0) ; \n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "P3 := \+ spacecurve(evalm(N), u=-3..3, axes=boxed, color=red, labels=[x, y, z]) :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "display(P1, P2, P3, sc aling=constrained);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 41 "We easil y calculate the curvature at t=5." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 52 "kappa(5) := evalf(Norm(subs(t=5, dT[t]/ds[t]), 2));\n " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 15 "Alternatively, " }}}{EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 "Curvature " 2 "Curvature" "" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "kappa(5) := eval(Curvature(h, t), t=5.0);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 194 "Now we need the binormal; the unit vect or orthogonal to both the tangent and normal and forming with them a r ight handed coordinate system i.e. the cross product. Note the order o f the factors!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "b := simp lify(dh[s] &x n);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 43 "There is no need for normalization because " } {XPPEDIT 18 0 "abs(B) = abs(N*T*sin(N,T));" "6#/-%$absG6#%\"BG-F%6#*(% \"NG\"\"\"%\"TGF,-%$sinG6$F+F-F," }{TEXT -1 49 " and N and T are bot h unit orthogonal vectors. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "B := evalf(subs(t=5, h+u*b));\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 43 "Using the Maple built-in functi on Binormal:" }}}{EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 "Binormal" 2 "Bin ormal" "" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "B := eval(h+u*Binormal(h, t), t=5.0);" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 59 "P4 := spacecurve(evalm(B), u=-3..3, axes=boxed, col or=red):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "display(P1, P2, P3, P4);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 267 "Here we have the \+ Frenet trihedron at t=5. Referred to this set of coordinates the curv e takes its simplest form in a neighborhood of t=5. In fact, at a giv en point, p, the plane of the tangent and normal (the osculating plane ) is the plane in which the curve lies. " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 115 "Having exerted ourselves thusfar it is good to know that Maple has a built-in function to compute the Frenet frame." }}} {EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 "TNBFrame" 2 "TNBFrame" "" } {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "TNB := eval(TNBFrame(h, t), \+ t=5.0);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "p1 := eval(h, t= 5.0);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "Tngt := evalm(p1+u *TNB[1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "Nml := evalm(p 1+u*TNB[2]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "Bnml := eva lm(p1+u*TNB[3]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "P5 := s pacecurve(\{Tngt, Nml, Bnml\}, u=-2..2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "display(P1, P5);" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 258 12 "Example 5.3" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 85 "We will find the equation of the c urve in Example 6.2 in a neighborhood of the point " }{XPPEDIT 18 0 "p = gamma(5);" "6#/%\"pG-%&gammaG6#\"\"&" }{TEXT -1 1 "." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 28 "In the adapted coordinates, " }{XPPEDIT 18 0 "gamma(a+h);" "6#-%&gammaG6#,&%\"aG\"\"\"%\"hGF(" }{TEXT -1 1 "= " }{XPPEDIT 18 0 "gamma;" "6#%&gammaG" }{TEXT -1 3 "''(" }{TEXT 264 2 "a)" }{XPPEDIT 18 0 "h^2/2!;" "6#*&%\"hG\"\"#-%*factorialG6#F%!\"\"" } {TEXT -1 1 "+" }{XPPEDIT 18 0 "gamma;" "6#%&gammaG" }{TEXT -1 4 "'''( " }{TEXT 265 1 "a" }{TEXT -1 1 ")" }{XPPEDIT 18 0 "h^3/3!;" "6#*&%\"hG \"\"$-%*factorialG6#F%!\"\"" }{TEXT -1 290 "... For small values of h, the second degree term will dominate the form of the curve. This mea ns that at any point, p= g(a), any curve referred to a local system of coordinates consisting of the Frenet trihedron will be almost a parab ola in the osculating plane, in a neighborhood of p. " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 25 "We are go ing to omit the " }{TEXT 259 9 "restart: " }{TEXT -1 105 "that ordinar ily precedes each new problem because we are going to need some of the results just obtained." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 " h := ;\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 36 "We will work at the point where t=0." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "p := eval(h, t=0);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "dh[t] := diff(h, t);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "dh[t=0] := subs(t=0, dh[t]);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 57 "The tangent lies in the x-z plane and makes an angle of " }{XPPEDIT 18 0 "Pi/4;" "6#*&%#PiG\"\"\"\"\"%!\"\"" }{TEXT -1 17 " with the x axis." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "dh [tt] := diff(h, t$2);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 " dh[tt=0] := subs(t=0, dh[tt]);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 78 "The normal is parallel to the y axis. The osculating plane makes \+ an angle of " }{XPPEDIT 18 0 "Pi/4;" "6#*&%#PiG\"\"\"\"\"%!\"\"" } {TEXT -1 121 " with the x-y plane. First we calculate the first three \+ terms of the Taylor expansion. Remember, the first term is zero." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "g := dh[t=0]*t+dh[tt=0]*t^2/ 2;\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 49 "Now we will rotate the eq uation for the curve by " }{XPPEDIT 18 0 "-Pi/4;" "6#,$*&%#PiG\"\"\"\" \"%!\"\"F(" }{TEXT -1 285 " so that the osculating plane will be paral lel to the x-y plane, and the Taylor expansion approximation, \"g\", \+ will also be rotated by the same amount. This has the effect of maki ng the Frenet trihedron the coordinate axis vectors. We will need the rotation matrix about the y-axis." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "R := <, <0|1|0>, >;\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "R := subs(theta=-Pi/4, R);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 152 "The \+ reader familiar with the elements of linear algebra will recognize thi s as the rotation matrix which, when applied to a vector, will rotate it by " }{XPPEDIT 18 0 "-Pi/4;" "6#,$*&%#PiG\"\"\"\"\"%!\"\"F(" } {TEXT -1 105 " around the y axis. Those who do not have the pleasure o f this familiarity will have to take it on faith." }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 32 "ht := <, , >;\n" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "H := R.ht;\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "g := <, , >;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "g2 := R.g;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "S1 := spacecurve(evalm(H), t=-.05..0.05, \+ color=blue):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 53 "S2 := space curve(evalm(g2), t=-.05..0.05, color=red):" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 49 "display(S1, S2, labels=[x, y, z], axes=normal); \n " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 174 "This illustrates the fact th at in a local coordinate system, there is a neighborhood of the origin in which the curve is approximated by a parabola in the osculating pl ane. " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 306 "In addition to the cur vature, there is another important invariant of the curve, the torsion , which, as its name implies, measures the twisting of the curve in sp ace. Torsion is computed from the derivative of the binormal vector. \+ It is, in fact, parallel to, but oppositely oriented from, the normal . \n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 9 "That is " }{XPPEDIT 18 0 "db/ds = -tau(t)*n(t);" "6#/*&%#dbG\"\"\"%#dsG!\"\",$*&-%$tauG6#%\"t GF&-%\"nG6#F.F&F(" }{TEXT -1 21 ", where the torsion, " }{XPPEDIT 18 0 "tau(t);" "6#-%$tauG6#%\"tG" }{TEXT -1 60 ", is a differentiable fun ction. The torsion is computed as: " }{XPPEDIT 18 0 "tau(t) = -`<,>`(d b/ds,n(t));" "6#/-%$tauG6#%\"tG,$-%$<,>G6$*&%#dbG\"\"\"%#dsG!\"\"-%\"n G6#F'F0" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "d b[s] := simplify(diff(b, t)/ds[t]);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "tau(5) := -eval(db[s].n, t=5.0); \n" }}}{EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 "Torsion" 2 "Torsion" "" }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "eval(Torsion(h, t), t=5.0); " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 154 "More generally, we may refer a curve to axes formed by the Frenet frame at any given point. Consid er the Taylor expansion, to third order, of a function " }{TEXT 266 1 "f" }{TEXT 267 0 "" }{TEXT 268 3 ". " }{XPPEDIT 18 0 "f(s) = f(0)+d iff(f(0),s)*s+diff(f(0),`$`(s,2))*x^2/2+diff(f(0),`$`(s,3))*s^3/6;" "6 #/-%\"fG6#%\"sG,*-F%6#\"\"!\"\"\"*&-%%diffG6$-F%6#F+F'F,F'F,F,*(-F/6$- F%6#F+-%\"$G6$F'\"\"#F,*$%\"xGF;F,F;!\"\"F,*(-F/6$-F%6#F+-F96$F'\"\"$F ,*$F'FFF,\"\"'F>F," }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 41 "In the basis formed by the Frenet frame, \+ " }{XPPEDIT 18 0 "f(0) = 0;" "6#/-%\"fG6#\"\"!F'" }{TEXT -1 3 ", " } {XPPEDIT 18 0 "Diff(f(0),s) = `<,>`(1,0,0);" "6#/-%%DiffG6$-%\"fG6#\" \"!%\"sG-%$<,>G6%\"\"\"F*F*" }{TEXT -1 3 " , " }{XPPEDIT 18 0 "Diff(f( 0),`$`(s,2)) = `<,>`(0,kappa,0);" "6#/-%%DiffG6$-%\"fG6#\"\"!-%\"$G6$% \"sG\"\"#-%$<,>G6%F*%&kappaGF*" }{TEXT -1 3 " , " }{XPPEDIT 18 0 "Diff (f(0),`$`(s,3)) = `<,>`(-kappa^2,Diff(kappa,s),kappa*tau);" "6#/-%%Dif fG6$-%\"fG6#\"\"!-%\"$G6$%\"sG\"\"$-%$<,>G6%,$*$%&kappaG\"\"#!\"\"-F%6 $F5F.*&F5\"\"\"%$tauGF;" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "restart: with(LinearAlg ebra): with(VectorCalculus):with(plots):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "f[s] := <1, 0, 0>;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "f[ss] := <0, kappa, 0>;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "f[sss] := <-kappa^2, d_kappa, kappa*tau>;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "F := s*f[s]+s^2/2*f[ss]+s^3/6*f[sss ];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "interface(showassumed =0):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "assume(t>0):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "h := ; \n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "dh[t] := diff(h, t); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "kappa := Curvature(h, t ):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "tau := Torsion(h, t): " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "d_kappa := diff(kappa, \+ t)/Norm(dh[t], 2):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "kappa := eval(kappa, t=5.0);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 " tau := eval(tau, t=5.0);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "d_kappa := eval(d_kappa, t=5.0);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 7 "F := F;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 132 "spacecurve(evalm(F), s=-5..5, axes=normal, labels=[t, n, b], color=bl ue, title=\"The curve h(t) plotted on the Frenet frame at t=5\");" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 340 "Having gone this far, there is on e more interesting construction we would like to make. At each point \+ on a curve, one can draw a circle, lying in the plane of the tangent a nd the normal, the osculating plane, which has the same curvature as t he curve, the so called circle of curvature. The radius of this circle , the radius of curvature, " }{XPPEDIT 18 0 "rho(t);" "6#-%$rhoG6#%\"t G" }{TEXT -1 16 " is computed as " }{XPPEDIT 18 0 "rho(t) = 1/kappa(t) ;" "6#/-%$rhoG6#%\"tG*&\"\"\"F)-%&kappaG6#F'!\"\"" }{TEXT -1 2 " ." }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 260 12 " Example 5.4" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 153 "Find and plot the circle of curvature at t=5.\nRecolle ct that the polar representation of a circle centered at a point (0, p ) with radius r, is given by " }{XPPEDIT 18 0 "[r*cos(theta), p+r*sin (theta)];" "6#7$*&%\"rG\"\"\"-%$cosG6#%&thetaGF&,&%\"pGF&*&F%F&-%$sinG 6#F*F&F&" }{TEXT -1 92 " . Referred to the Frenet coordinate system \+ in the osculating plane, this translates to " }{XPPEDIT 18 0 "[rho*c os(theta), rho+rho*sin(theta)];" "6#7$*&%$rhoG\"\"\"-%$cosG6#%&thetaGF &,&F%F&*&F%F&-%$sinG6#F*F&F&" }{TEXT -1 26 " , for a circle of radius \+ " }{XPPEDIT 18 0 "rho;" "6#%$rhoG" }{TEXT -1 58 ", centered r units al ong the normal. Therefore, we plot:\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 54 "We multiply by a factor of three to improve visibility" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "rho := 3*1/kappa(5); " }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "C := ;\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "h_5 \+ := subs(t=5, h);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "CC := C +h_5;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "P1 := spacecurve(e valm(h), t=0..10):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 66 "P5 := spacecurve(evalm(CC), theta=0..2*Pi, axes=boxed, color=red):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "display(P1, P5);\n" }}} {EXCHG {PARA 0 "" 0 "" {TEXT -1 136 "By rotating this plot you will be able to convince yourself that the circle matches the curvature of th e curve at the point of tangency." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 355 "What we would really like to see \+ is curvature and torsion at work. What do they really look like? Aft er all, they are described by derivatives which imply motion. We need to put all of this together, compute a sequence of plots of the Frene t trihedron at different points on the curve and then display these pl ots in sequence to get a \"moving picture\"." }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 356 "The following code acc omplishes this. To make animations work, you must right click on the \+ plot, select animation from the menu and click on \"play\". The anima tion may be toggled between single cycle and continuous and may be slo wed down or speeded up from this submenu. Be forewarned! The sequenc es will take some 10 to 30 seconds each to be processed." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 64 "restart: with(LinearAlgebra): with( VectorCalculus): with(plots):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "interface(showassumed=0):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "assume(t>0):\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "h := ;\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "TNB := TNBFrame(h, t):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Tn := j->s*subs(t=j, TNB[1]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "Nn := j->s*subs(t=j, TNB[2]):" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 29 "Bn := j->s*subs(t=j, TNB[3]):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "H := j->subs(t=j, h);\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "TT := evalm(H(j/10)+Tn(j/10)):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "S1 := seq(spacecurve(TT, s=- 2..2, color=red), j=1..100):\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "NN := evalm(H(j/10)+Nn(j/10)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 56 "S2 := seq(spacecurve(NN, s=-2..2, color=red), j=1..10 0):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "BB := evalm(H(j/10)+ Bn(j/10)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "S3 := seq(spa cecurve(BB, s=-2..2, color=red), j=1..100):\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 238 " d1 := display(S1, insequence=true):\n d2 := di splay(S2, insequence=true):\n d3 := display(S3, insequence=true):\n d4 := spacecurve([h[1], h[2], h[3]], t=0..10, color=blue):\ndisplay(d1, \+ d2, d3, d4, scaling=constrained, orientation=[20,75]);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 321 "In some ways even more fascinating is th e moving circle of curvature. Its twists, turns and changing size cle arly demonstrate the meaning of torsion and curvature. Remember, it l ives in the osculating plane which also contains the derivative of the binormal. Here is the code to produce the moving circle of curvature ." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 63 "restart: with(LinearAl gebra): with(VectorCalculus):with(plots):" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 12 "assume(t>0):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "h := :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "dh[t] := diff(h, t):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "ds[t] := Norm(dh[t], 2):" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 21 "dh[s] := dh[t]/ds[t]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "dT := diff(dh[s], t):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "n := simplify(dT/ds[t]):" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 41 "rho := j->evalf(1/subs(t=j, Norm(n, 2))):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "H := i->subs(t=i, h):" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "T := p->subs(t=p, dh[s]):" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "N := q->subs(t=q, n/Norm(n , 2)):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "Z := H(k/10)+rho( k/10)*(N(k/10)+(cos(theta)*T(k/10)+sin(theta)*N(k/10))):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "Circ := k->evalm(Z):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 55 "S := seq(spacecurve(Circ(k), theta= 0..2*Pi), k=0..100):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "P1 \+ := display(S, insequence=true, color=blue):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "P2 := spacecurve([h[1], h[2], h[3]], t=0..10, colo r=red):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "display(P1, P2, \+ axes=framed);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{MPLTEXT 1 0 4 " " }{TEXT -1 385 "In both these code sequences, we started off with assume(t>0). This greatly simplifies the form of the results obt ained and cuts down on subsequent computation time. \nIt is sometimes \+ of interest to project a spacecurve (or a surface) onto a coordinate p lane or onto a plane parallel to a coordinate plane. This can be accom plished with the transform function in the plottools package.\n" }}} {EXCHG {PARA 0 "" 0 "" {HYPERLNK 17 "transform" 2 "transform" "" } {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 175 " To u se the transform function which operates on plot structures it is firs t necessary to define the plot structure and then specify the paramete rs to be transformed. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 83 " restart: with(plottools): with(plots): with(LinearAlgebra): with(Vec torCalculus):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "h := :" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 59 "c1 : = spacecurve(evalm(h), t=1..10, axes=boxed, color=red):" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "T1 := transform((x, y, z)->[x, y, 0 ]):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 345 " This is a trick y syntax. The parameters to be transformed are in round brackets, and the parameters to which they are to be transformed are in square brac kets. Of course, we are not limited to coordinate projections. A var iety of parameter changes could be implemented, including, in particul ar, coordinate system transformations. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "c2 := spacecurve(evalm(h), t=1..10, axes=boxed, color =blue):" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 265 " We needed a s econd definition of the curve in a different color. One of the plot st ructures, c1, now becomes an argument to g, and is displayed with the \+ second plot structure, c2. The original curve and its projection onto the x-y plane are then displayed." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "display(T1(c1), c2);\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 39 "To project onto the x-z plane we enter:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "T2 := transform((x, y, z)->[x, 0, z]):" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "display(T2(c1), c2);\n" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 262 0 "" }{TEXT 263 8 "Practice" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 135 "2. For each of the curves in prob.#1, compute \+ the curvature at the point indicated and plot the osculating circle an d Frenet trihedron." }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 145 "3. Select one of the curves in prob#1 and create an animation for;\n a) T he moving Frenet trihedron\n b) The moving osculating circle.\n " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 119 "4. Project the curves in Pro b#1 onto the coordinate planes and plot each of these projections tog ether with the curve." }}}}{MARK "0 0 2" 0 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }