From 1d31bf8ebeb2e27e005ca5c36248516cb23e46ed Mon Sep 17 00:00:00 2001 From: Youwen Wu Date: Sun, 23 Feb 2025 18:35:38 -0800 Subject: [PATCH] auto-update(nvim): 2025-02-23 18:35:38 --- .../by-course/math-6a/course-notes/dvd.typ | 341 ------------ .../by-course/math-6a/course-notes/main.typ | 505 +++++++++++++++++- 2 files changed, 503 insertions(+), 343 deletions(-) delete mode 100644 documents/by-course/math-6a/course-notes/dvd.typ diff --git a/documents/by-course/math-6a/course-notes/dvd.typ b/documents/by-course/math-6a/course-notes/dvd.typ deleted file mode 100644 index 06deb27..0000000 --- a/documents/by-course/math-6a/course-notes/dvd.typ +++ /dev/null @@ -1,341 +0,0 @@ -#import "@preview/ctheorems:1.1.3": * -#import "@preview/showybox:2.0.3": showybox - -#let colors = ( - rgb("#9E9E9E"), - rgb("#F44336"), - rgb("#E91E63"), - rgb("#9C27B0"), - rgb("#673AB7"), - rgb("#3F51B5"), - rgb("#2196F3"), - rgb("#03A9F4"), - rgb("#00BCD4"), - rgb("#009688"), - rgb("#4CAF50"), - rgb("#8BC34A"), - rgb("#CDDC39"), - rgb("#FFEB3B"), - rgb("#FFC107"), - rgb("#FF9800"), - rgb("#FF5722"), - rgb("#795548"), - rgb("#9E9E9E"), -) - -#let dvdtyp( - title: "", - subtitle: "", - author: "", - abstract: none, - bibliography: none, - paper-size: "a4", - date: "today", - body, -) = { - set document(title: title, author: author) - - set std.bibliography(style: "springer-mathphys", title: [References]) - - show: thmrules - - set page( - numbering: "1", - number-align: center, - header: locate(loc => { - if loc.page() == 1 { - return - } - box(stroke: (bottom: 0.7pt), inset: 0.4em)[#text( - font: "New Computer Modern", - )[ - *#author* --- #datetime.today().display("[day] [month repr:long] [year]") - #h(1fr) - *#title* - ]] - }), - paper: paper-size, - // The margins depend on the paper size. - margin: ( - left: (86pt / 216mm) * 100%, - right: (86pt / 216mm) * 100%, - ), - ) - - - set heading(numbering: "1.") - show heading: it => { - set text(font: "Libertinus Serif") - - block[ - #if it.numbering != none { - text(rgb("#2196F3"), weight: 500)[#sym.section] - - text(rgb("#2196F3"))[#counter(heading).display() ] - } - #it.body - #v(0.5em) - ] - } - - set text(font: "New Computer Modern", lang: "en") - - show math.equation: set text(weight: 400) - - - // Title row. - align(center)[ - #set text(font: "Libertinus Serif") - #block(text(weight: 700, 26pt, title)) - - - #if subtitle != none [#text(12pt, weight: 500)[#( - subtitle - )]] - - #if author != none [#text(16pt)[#smallcaps(author)]] - #v(1.2em, weak: true) - - #if date == "today" { - datetime.today().display("[day] [month repr:long] [year]") - } else { - date - } - - ] - - if abstract != none [ - #v(2.2em) - #set text(font: "Libertinus Serif") - #pad(x: 14%, abstract) - #v(1em) - ] - - set outline(fill: repeat[~.], indent: 1em) - - show outline: set heading(numbering: none) - show outline: set par(first-line-indent: 0em) - - show outline.entry.where(level: 1): it => { - text(font: "Libertinus Serif", rgb("#2196F3"))[#strong[#it]] - } - show outline.entry: it => { - h(1em) - text(font: "Libertinus Serif", rgb("#2196F3"))[#it] - } - - - // Main body. - set par( - justify: true, - spacing: 0.65em, - first-line-indent: 2em, - ) - - body - - // Display the bibliography, if any is given. - if bibliography != none { - show std.bibliography: set text(footnote-size) - show std.bibliography: set block(above: 11pt) - show std.bibliography: pad.with(x: 0.5pt) - bibliography - } -} - -#let thmtitle(t, color: rgb("#000000")) = { - return text( - font: "Libertinus Serif", - weight: "semibold", - fill: color, - )[#t] -} -#let thmname(t, color: rgb("#000000")) = { - return text(font: "Libertinus Serif", fill: color)[(#t)] -} - -#let thmtext(t, color: rgb("#000000")) = { - let a = t.children - if (a.at(0) == [ ]) { - a.remove(0) - } - t = a.join() - - return text(font: "New Computer Modern", fill: color)[#t] -} - -#let thmbase( - identifier, - head, - ..blockargs, - supplement: auto, - padding: (top: 0.5em, bottom: 0.5em), - namefmt: x => [(#x)], - titlefmt: strong, - bodyfmt: x => x, - separator: [. \ ], - base: "heading", - base_level: none, -) = { - if supplement == auto { - supplement = head - } - let boxfmt(name, number, body, title: auto, ..blockargs_individual) = { - if not name == none { - name = [ #namefmt(name)] - } else { - name = [] - } - if title == auto { - title = head - } - if not number == none { - title += " " + number - } - title = titlefmt(title) - body = [#pad(top: 2pt, bodyfmt(body))] - pad( - ..padding, - showybox( - width: 100%, - radius: 0.3em, - breakable: true, - padding: (top: 0em, bottom: 0em), - ..blockargs.named(), - ..blockargs_individual.named(), - [ - #title#name#titlefmt(separator)#body - ], - ), - ) - } - - let auxthmenv = thmenv( - identifier, - base, - base_level, - boxfmt, - ).with(supplement: supplement) - - return auxthmenv.with(numbering: "1.1") -} - -#let styled-thmbase = thmbase.with( - titlefmt: thmtitle, - namefmt: thmname, - bodyfmt: thmtext, -) - -#let builder-thmbox(color: rgb("#000000"), ..builderargs) = styled-thmbase.with( - titlefmt: thmtitle.with(color: color.darken(30%)), - bodyfmt: thmtext.with(color: color.darken(70%)), - namefmt: thmname.with(color: color.darken(30%)), - frame: ( - body-color: color.lighten(92%), - border-color: color.darken(10%), - thickness: 1.5pt, - inset: 1.2em, - radius: 0.3em, - ), - ..builderargs, -) - -#let builder-thmline( - color: rgb("#000000"), - ..builderargs, -) = styled-thmbase.with( - titlefmt: thmtitle.with(color: color.darken(30%)), - bodyfmt: thmtext.with(color: color.darken(70%)), - namefmt: thmname.with(color: color.darken(30%)), - frame: ( - body-color: color.lighten(92%), - border-color: color.darken(10%), - thickness: (left: 2pt), - inset: 1.2em, - radius: 0em, - ), - ..builderargs, -) - -#let problem-style = builder-thmbox( - color: colors.at(11), - shadow: (offset: (x: 2pt, y: 2pt), color: luma(70%)), -) - -#let exercise = problem-style("item", "Exercise") -#let problem = exercise - -#let theorem-style = builder-thmbox( - color: colors.at(6), - shadow: (offset: (x: 3pt, y: 3pt), color: luma(70%)), -) - -#let example-style = builder-thmbox( - color: colors.at(16), - shadow: (offset: (x: 3pt, y: 3pt), color: luma(70%)), -) - -#let theorem = theorem-style("item", "Theorem") -#let lemma = theorem-style("item", "Lemma") -#let corollary = theorem-style("item", "Corollary") - -#let definition-style = builder-thmline(color: colors.at(8)) - -// #let definition = definition-style("definition", "Definition") -#let proposition = definition-style("item", "Proposition") -#let remark = definition-style("item", "Remark") -#let observation = definition-style("item", "Observation") - -// #let example-style = builder-thmline(color: colors.at(16)) - -#let example = example-style("item", "Example") - -#let proof(body, name: none) = { - v(0.5em) - [_Proof_] - if name != none { - [ #thmname[#name]] - } - [.] - body - h(1fr) - - // Add a word-joiner so that the proof square and the last word before the - // 1fr spacing are kept together. - sym.wj - - // Add a non-breaking space to ensure a minimum amount of space between the - // text and the proof square. - sym.space.nobreak - - $square.stroked$ - v(0.5em) -} - -#let fact = thmplain( - "item", - "Fact", - titlefmt: content => [*#content.*], - namefmt: content => [_(#content)._], - separator: [], - inset: 0pt, - padding: (bottom: 0.5em, top: 0.5em), -) -#let abuse = thmplain( - "item", - "Abuse of Notation", - titlefmt: content => [*#content.*], - namefmt: content => [_(#content)._], - separator: [], - inset: 0pt, - padding: (bottom: 0.5em, top: 0.5em), -) -#let definition = thmplain( - "item", - "Definition", - titlefmt: content => [*#content.*], - namefmt: content => [_(#content)._], - separator: [], - inset: 0pt, - padding: (bottom: 0.5em, top: 0.5em), -) diff --git a/documents/by-course/math-6a/course-notes/main.typ b/documents/by-course/math-6a/course-notes/main.typ index 9d06b77..69d4719 100644 --- a/documents/by-course/math-6a/course-notes/main.typ +++ b/documents/by-course/math-6a/course-notes/main.typ @@ -98,9 +98,9 @@ $ kappa (t) = (||arrow(c)'(t) times arrow(c)''(t)||) / (||arrow(c)'(t)||^3) $ -== Arclength parameterization +== Arclength parametrization -Find an arc-length parameterization of $arrow(c)(t) = $. +Find an arc-length parametrization of $arrow(c)(t) = $. Let $s = 0$ when $t = 0$ and let $s$ be the arc-length that has traveled along the curve after $t$ seconds, then we can find $s$ by integrating the curve's @@ -273,3 +273,504 @@ the directional derivative is zero. critical points into $f$ and find the biggest/smallest. ] + += Midterm 2 review + +I literally forgot everything...time to cram. + +== Vector review + +We know about functions $y = f(x)$. We can parameterize functions by expressing +them as a pair of coordinates $(x(t), y(t))$, modeling for example a particle +traveling through space with respect to time. + +=== Derivative of parameterized curve + +Given $(x(t), y(t))$, the derivative is given +$ + (x'(t), y'(t)) +$ + +=== Parameterizing an ellipse + +Consider an ellipse + +$ + x^2 / n + y^2 / m = r^2 +$ + +Then we note that this is just a circle with $x$ stretched by a factor of +$sqrt(n)$ and likewise for $y$ by a factor of $sqrt(m)$. Then we can +parameterize the ellipse by + +$ + (r sqrt(n) cos(theta), r sqrt(m) sin(theta)) +$ + +A sanity check: when $n = 1$, $m = 1$, $r = 1$, we have a unit circle and the +parametrization reflects that. + +#example[ + Consider the ellipse $x^2/9 + y^2/4 = 16$. Then the parametrization is + $(12cos(theta), 8sin(theta))$, and this is indeed right. +] + +To parameterize a line passing through points $arrow(p)_1$ and $arrow(p)_2$, +simply +$ + arrow(c) (t) = arrow(p)_1 + t(arrow(p)_2 - arrow(p)_1) +$ +Algebraically we can justify this by noting $t=0$ gives $arrow(p)_1$ and $t=1$ gives $arrow(p)_2$. + +=== Polar coordinates + +Notation: $(r,theta)$ instead of $(x,y)$. Note that this is just highlighting +that we're parameterizing a curve in terms of a radius $r$ (also called +_modulus_)and argument (angle) $theta$. + +To get $r$, see that $r^2 = x^2 + y^2$ and it follows that $theta = +arctan(y/x)$. Blah blah. + +To plot in terms of $x,y$, note that +$ + x = r cos(theta) \ + y = r sin(theta) +$ + +=== Vector properties + +Many nonrigorous statements about vectors to add to our toolbox. + +Two vectors are parallel if and only if the angle formed between them is 0. +Vectors can be added in linear combinations. + +The magnitude of a vector length $n$ is given by the $n$ dimensional +Pythagorean theorem. + +$ + sqrt(a_1^2 + a_2^2 + dots.c + a_n^2) +$ + +A unit vector is a vector with magnitude 1. + +=== Dot product + +Dot products are useful for seeing properties about orthogonality, parallelism, +and projection. + +#definition[ + The dot product takes two vectors and returns a single scalar. It is sometimes + called the inner product. +] + +We can view the dot product algebraically, and geometrically. In the first +sense, it's just the sum of the products of each pair of coordinates in the +vectors. + +Let $A,B$ be vectors length $n$, and $a_i, b_i$ be the $i^"th"$ entry of their +respective vectors, then +$ + A dot B = a_1 dot b_1 + a_2 dot b_2 + dots.c + a_n dot b_n +$ + +Geometrically, it's the product of the magnitudes of the vectors and the cosine +of angle between them. + +$ + A dot B = |A| dot |B| dot cos(theta) +$ + +where $theta$ is the angle between the vectors. It's nontrivial to prove this +and we don't have time. + +Therefore, we know two vectors are parallel when $A dot B = |A| dot |B|$, +because $cos(theta) = 1$. We know two vectors are orthogonal if the dot product +is 0, because $cos(pi/2 + pi n)$ is 1. + +Dot products are very useful for projection. Pick a normal vector $arrow(u)$. +For any vector $arrow(w)$, $arrow(u) dot arrow(w)$ gives the size of the +parallel part. + +Also, note this gives the shortest distance between the tip of $arrow(w)$ and +the line passing in the direction of $arrow(u)$! + +=== Normalizing vectors + +Normalizing a vector means obtaining a vector pointing in the same direction, +with magnitude 1. For a nonzero vector $v$, its normalized vector is given + +$ + v / (|v|) +$ + +where $|v|$ is the magnitude. + +=== Cross product + +The cross product $times$ is a binary operation on vectors. For our purposes +it's only defined in $RR^3$ (in fact it's defined in some other dimensions, but +in general it is not defined). + +It produces a third vector perpendicular to both original vectors. Its +direction is determined by the right hand rule. + +The magnitude of the cross product is given by + +$ + |a times b| = |a| |b| sin theta +$ + +where $theta$ is the angle between $a$ and $b$. So we know two vectors are +parallel if the magnitude of the cross product is 0. + +In fact this magnitude is also the area of the parallelegram spanned by the two +vectors. This is an alternative way to view the cross product being 0 implying +the vectors parallel. + +We can compute the cross product by taking a determinant. + +$ + a times b = det mat(i,j,k; a_1, a_2, a_3; b_1,b_2,b_3) +$ + +The cross product is anticommutative, so $a times b = -(b times a)$. + +== Vector applications, building geometric intuition + +Let's build some geometric intuition for working with vectors, especially in +$RR^3$. + +=== Moving the equation of a line or plane while maintaining orientation + +We consider two cases. If we're working with a parametric equation, then we can +just add a vector to the equation to shift everything by said vector. + +Otherwise, with an implicit equation, let's consider only the plane (since we +need two implicit equations to specify a line, and at that point it's better to +solve the system and parameterize). + +The plane equation $a x + b y + c z = r$ can be shifted $n$ units in the +positive $x$, $y$, or $z$ direction by replacing all $x$, $y$, or $z$ with $x - +n$ and so on. Then we can just multiply out collect terms. + +=== Moving equation of a line/plane to pass through a specific point + +We want to do this without changing direction or orientation. We can just use +our technique discussed above for this. + +First let's make sure the plane passes through the origin. If we have +$ + 3x - 2y + 7z = 12 +$ +we can just set the right hand to $0$ +$ + 3x - 2y + 7z = 0 +$ +Note that by our technique of shifting the plane or line, we see that the +constant on the right side is determined entirely by shifts in space that +preserve direction/orientation. So we are sure that setting it to 0 does +nothing but move the plane/line through 0. + +=== Equation of a line through a given point perpendicular to a +plane + +Let's say we have a point $(5,2,3)$. Let's consider both parametric planes and +implicitly defined planes. + +Suppose the plane is given by +$ + 2x + 3y + 4z = 12 +$ +Then observe that we need the line to be perpendicular to the plane but it +doesn't really matter where the plane is. Recall that we can easily shift a +plane around while preserving orientation. So let's just move the plane through +the origin again. + +$ + 2x + 3y + 4z = 0 +$ + +Now note that we can obtain a perpendicular vector to the plane by finding a +vector perpendicular to any particular vector on this plane. + +Then note that $vec(2,3,4)$ is one such perpendicular vector. See this by +$ + vec(2,3,4) dot vec(x,y,z) = 2x + 3y + 4z = 0 +$ +Then we can simply scale our perpendicular vector by a parameter $t$ to obtain +a parametric line that's perpendicular to the plane. Now we can just shift it +by our desired point, and it remains orthogonal while passing through the line +(at $t = 0$). + +$ + vec(5,2,3) + t vec(2,3,4) +$ + +Now consider when we have a parametric equation, say +$ + vec(5,0,0) + s vec(2,0,-1) + t vec(0,4,-3) +$ +Then as long as we're perpendicular to both of the vectors being multiplied by +$s$ and $t$, we're perpendicular. This is easy to show, just note that the +plane is given by the span of the basis vectors $vec(2,0,-1)$ (shifted by +$vec(5,0,0)$) and $vec(0,4,-3)$, so any vector perpendicular to both is +perpendicular to the entire plane. + +So just take their cross product to get a desired vector. + +=== Distance between point and a plane + +Think geometrically. We really want to move in a perpendicular line from the +plane to the point (because that's the closest distance between them). We +should start on the point, but where do we stop on the plane? + +Consider +$ + 4x + y + 3z = 1 +$ +and we want the distance to $(1,1,-5)$. The perpendicular line passing through the point is +$ + vec(1,1,-5) + t vec(4,1,3) +$ +The line "starts" at the point $t=0$, so let's find a value of $t$ that makes +it stop precisely on the plane. To do this, simply note that our line is really a parametric equation +$(x,y,z)$ where +$x = 1 + 4t, y = 1 + t, z = -5 + 3t$. Then we can simply plug these into the +equation of the plane and solve for $t$ to get the value of $t$ where the line +meets the plane. Then plug $t$ into our line equation (which gives a vector) +and the magnitude is the distance between the point and plane. + +=== Area of a parallelogram formed by two vectors in $RR^3$ + +In $RR^2$ we can take the determinant. In $RR^3$ the determinant is the volume +of the parallelepiped. So instead we just take the magnitude of the cross +product. + +=== Distance from point to line passing through two other points in $RR^2$ + +Note that there are multiple ways to do this. Let $P = (1,7)$, $A = (1,1)$, and +$B = (3,9)$. We want the distance from $P$ to the line between $A$ and $B$. + +We could just find the line between them and then use a 2-dimensional version +of our point to plane technique (solve for a vector orthogonal to the line, in +the direction of $P$, passing through $P$), but since we're in $RR^2$, we can +just project $P$ onto the normalized line and do some stuff. + +In particular, note that the magnitude of the cross product of $A times B$ is +$|A| dot |B| dot sin theta$. So if we want the distance from the tip of $B$ to +the line spanned by $A$, we should do $(|A times B|)/(|A|)$. + +If instead we want the length of the projection of $B$ onto $A$, we should do +$(A dot B)/(|A|)$. There are multiple ways to interpret this geometrically. + +== Derivative of a curve + +What is the derivative of a curve? We can view the derivative at some point $x$ +as the slope of the tangent line. But that doesn't give the derivative of a +parametric curve traveling through the plane. + +However, this is simple. Because our curve is parameterized, each coordinate +$x,y,z$ and so on is independent of each other and given by $t$. Therefore, we +can collect another vector, taking the derivative of each coordinate, which +gives us a vector of the rates at which each coordinate is changing. + +== Arclength parametrization + +We want to find an arc length parametrization of a curve. That is, we want to +express a curve in terms of how far we've traveled on it. + +Idea: let $s=0$ when $t=0$, and let $s$ be the arclength traveled after $t$ +seconds. Then we can integrate the curve's speed over $t$ to find the arc +length. + +$ + s(t) = integral_0^t ||arrow(c)'(u)|| dif u +$ + +Then, we can solve for $t$ in terms of $s$, and plug it back into our original +vector in terms of $t$, $arrow(c)(t)$. Then its position will be expressed by +in terms of $s$, $arrow(c)(s)$, and we'll have a parametrization by arc +length. + +A key notion here is now the velocity vectors are tangent, but also unit length +(since we should imagine that we are always moving at unit speed along the +curve at any given point). + +What direction does the _acceleration_ vector point in, then? + +For a parameterized curve $arrow(c)(t)$ with velocity $arrow(v)(t)$ and +acceleration $arrow(a)(t)$, then the speed is magnitude $|arrow(v)(t)|$. When +the speed is constant, $|arrow(v)(t)|$ doesn't change with time. + +A prototypical example: consider uniform circular motion. Then the angular +velocity (speed) is always constant, yet there is always an acceleration vector +pointing perpendicular to the tangent velocity vector (the centripetal +acceleration). + +== Curvature + +The curvature in $RR^2$ is given by the second derivative. But this is just a +lucky coincidence. Let's think about the notion of curvature. + +Somehow, the curvature measures the best-fitting second order approximation of +a curve. Curvature is a measure of concavity with respect to the direction +perpendicular to the direction of motion. + +We do have a formula + +$ + kappa(t) = (|arrow(c)'(t) times arrow(c)'' (t)|) / (|arrow(c)'(t)|^3) +$ + +== Building intuition for curvature + +Curvature is essentially asking how closely our curve resembles a unit circle +at a given point. It follows that a unit circle has a curvature 1, and a +straight line has curvature 0. + +Let's consider a parametric curve +$ + arrow(s)(t) = vec(t-sin(t), 1-cos(t)) +$ +Consider the unit tangent vectors to the curve at some points. We're +essentially asking "how much do these tangent vectors change direction?" and +considering points arbitrarily close. This is the essence of curvature. + +Now let's think about some geometric intuition. Suppose you're moving along a +curve. It follows that if the curve is bending very sharply, the tangent +vectors are changing direction very fast, in larger increments. Likewise, if +the curve is straighter, the tangent vectors change direction less often. And +when you're traveling on a straight line, the tangent vectors don't change +direction at all. + +We want a mathematical model of this notion of "changing tangent vectors." The +idea is that we can capture this with some sort of derivative, but with respect +to what? If we just want to capture when the tangent vector is changing +directions, we clearly want to ignore any change in the actual magnitude of the +tangent vector itself, since this has no bearing on the directional change. Put +another way, if you're traveling along the curved path, the speed at which you +go (the magnitude of the tangent velocity vector) really doesn't matter with +regard to curvature. We only care when the tangent velocity vector changes +direction! + +So suppose $T$ is the unit tangent vector at each point. We want the rate of +change of $T$, its derivative, but _not_ $(dif T)/(dif t)$, with respect to +time. This is because we don't really care how _fast_ the tangent vector +changes with respect to time, curvature is about measuring how much the tangent +vector changes as we move some arbitrary distance on the curve! + +Instead, we really want $(dif T)/(dif s)$, where $s$ is the arc length we've +traveled so far (from some arbitrarily chosen starting point). And this makes +intuitive sense, because we just want how fast the tangent vector changes +direction with regards to the distance we travel on the curve. + +Now we may note that we can actually find curvature if we can find an +arc-length parametrization of $arrow(s)$! Because an arclength +parametrization always has unit speed, its derivative gives the tangent +vectors at every point, and we can differentiate with respect to arclength and +take the magnitude to obtain the curvature. That is, +$ + kappa = abs((dif T) / (dif s)) +$ + +But if we can't find an arclength parametrization, we're out of luck. Let's +continue investigating. + +Consider a prototypical example: + +#example[ + Let $arrow(s)(t) = vec(cos(t) R, sin(t) R)$. We're drawing a circle with + radius $R$. + + Let's differentiate with respect to $t$. + $ + arrow(s)'(t) = vec(-sin(t) R, cos(t) R) + $ + But we want unit tangent vectors, so let's normalize it. Call our unit + tangent $T$. + + $ + T(t) = (arrow(s)'(t)) / (|arrow(s)'(t)|) + $ + We have + $ + |arrow(s)'(t)| = lr(|vec(-sin(t) R, cos(t) R)|) \ + = sqrt(sin^2(t) R^2 + cos^2(t) R^2) = R + $ + Now we have our unit tangent vectors in terms of $t$. + $ + T(t) = (arrow(s)'(t)) / R + $ + We take + $ + (dif T) / (dif t) = vec(-cos(t), -sin(t)) + $ + and the magnitude of this is just 1. + + We should immediately note that not all cases will be so easy. When taking + $|arrow(s)'(t)|$, in general, we have a very disgusting square root that cannot + be simplified. + + Now note: + $ + abs((dif T)/(dif s)) = abs((dif T)/(dif t)) / abs((dif T)/(dif s)) + $ + + So in fact $kappa = 1/R$! +] + +The key here is this equation: +$ + abs((dif T)/(dif s)) = abs((dif T)/(dif t)) / abs((dif s)/(dif t)) +$ +Although we didn't have an arclength parametrization of $T$, we note that its +magnitude is essentially given by the magnitude at which it's changing with +respect to time, and divided by the rate the curve is moving to "correct" for +the discrepancies introduced by taking the derivative with respect to time! + +Obviously this is very nonrigorous. But I'm running out of time. + +Now if we do a bunch more reasoning and nonsense we can obtain the formula +above, but at this point the goal seems to have been reached. We have an +intuitive understanding of what curvature should measure. + +So recall the formula: + +$ + kappa(t) = (|arrow(c)'(t) times arrow(c)'' (t)|) / (|arrow(c)'(t)|^3) +$ + +Essentially, it's saying that the area of the parallelogram formed by the +curve's velocity and acceleration vectors, divided by the cube of the speed, +gives us the curvature. Intuitively we see that the more the acceleration +vector diverges from the velocity vector, the sharper the velocity vector is +changing direction, which gives us a notion of curvature. And somehow dividing +by the speed cubed is normalizing out any influence due to speed to give us our +curvature. + +== Quadric surfaces + +We really only need to know the identities and derivatives to do some integral +hacks. + +The quadric surface is the generalization of the conic section to $n$ dimensions. + +Now recall that one conic section is the hyperbola. It turns out we can define +analogues of the trigonometric functions that parameterize a so-called unit +hyperbola instead of the unit circle. These functions are + +$ + sinh(x) = (e^x -e^(-x)) / 2 \ + cos(x) = (e^x + e^(-x)) / 2 \ + tanh(x) = sinh(x) / cosh(x) +$ + +The derivatives are + +$ + (dif) / (dif x) sinh(x) = cosh(x) \ + (dif) / (dif x) cosh(x) = sinh(x) +$ + +It's pretty easy to show these using their definitions, and derive the +derivative of $tanh$.