Curvature
Intuitively, curvature measures how "curved" a curve is. Suppose that \(\gamma(t)\) is a pamameterized curve. As \(t\) changes to \(t+\Delta t\), the curve moves away from its tangent \(\gamma'(t)\) by
Then, Taylor's theorem gives
By Taylor's remainder theorem, \(rem\) vanishes faster than \(\Delta t^2\).
Therefore, we have
Then, note that \(\gamma'\cdot \gamma'' = 0\) and known that \(\gamma\) is unit-speed, hence \(\gamma'' \parallel \hat{\mathbf n}\). So that
Therefore, we can derive the definition:
If \(\gamma\) is a unit-speed curve, its curvature \(\kappa(t)\) at the point \(\gamma(t)\) is defined as \(\|\gamma''(t)\|\).
Cross Product
For 3D vectors \(\mathbf a, \mathbf b \in \mathbb R^3\), cross product is a 3D vector s.t. \(\mathbf a\times \mathbf b \in \mathbb R^3\) s.t. \(\forall w\in\mathbb R^3. (\mathbf a\times \mathbf b)\cdot \mathbf w = \det(\begin{bmatrix}\mathbf a&\mathbf b&\mathbf w\end{bmatrix})\).
Note that \(\det(A) = \det(A^T)\), and for \(3\times3\) matrices, switching two adjacent rows will flip the sign, then switch twice won't change the determinant.
Therefore, we can rewrite the cross product as
Properties of Cross Product
Linearity
- \(\mathbf a\times (\mathbf b + \mathbf c) = \mathbf a \times \mathbf b + \mathbf a \times \mathbf c\)
- \(\lambda \mathbf a \times \mathbf b = \lambda (\mathbf a \times \mathbf b) = \mathbf a \times \lambda\mathbf b\)
- \(\mathbf a \times \mathbf b + \mathbf c \times \mathbf d = (\mathbf a - \mathbf c) \times (\mathbf b - \mathbf d) + \mathbf a \times \mathbf d + \mathbf c \times \mathbf b\)
Plane Normal
Claim Cross product is perpendicular to both of its vectors.
proof. Note that
\(\begin{bmatrix}\mathbf a&\mathbf b&\mathbf a\end{bmatrix}, \begin{bmatrix}\mathbf a&\mathbf b&\mathbf b\end{bmatrix}\) are both linearly dependent, hence their determinant are both 0.
Geometric Meaning
Lemma \((\mathbf a \times \mathbf b)\cdot (\mathbf c \times \mathbf d) = \det(\begin{bmatrix}\mathbf a\cdot\mathbf c&\mathbf b\cdot\mathbf c\\\mathbf a\cdot\mathbf d&\mathbf b\cdot\mathbf d\end{bmatrix})\).
proof. By linearity, it is sufficient to show only when \(\mathbf a, \mathbf b, \mathbf c, \mathbf d \in \{\mathbf e_1, \mathbf e_2, \mathbf e_3\}\). Then, we can list all possible combinations and prove this claim.
Corollary (Lagrange's Identity in 3D). \(\|\mathbf a\times \mathbf b\|^2 = \det(\begin{bmatrix}\mathbf a\cdot\mathbf a&\mathbf a\cdot\mathbf b\\\mathbf b\cdot\mathbf a&\mathbf b\cdot\mathbf b\end{bmatrix})\).
proof. By the lemma above.
Corollary (Geometric Meaning of cross product in 3D). \(\|\mathbf a\times \mathbf b\| = \|\mathbf a\|\|\mathbf b\|\sin\theta\).
proof. Using Lagrange's Identity in 3D, we can then have
Therefore, \(\|\mathbf a\times \mathbf b\|\) can be understood are the area of the parallelogram the area of the parallelogram that \(\mathbf a, \mathbf b\) span. Also, \(\mathbf a\times \mathbf b, \mathbf a, \mathbf b\) forms a signed basis.
Curvature for 3D
Note that our definition for curvature depends on \(\gamma\) being unit-speed. However, find a unit-speed parameterization is not always easy even though we know it exist.
Claim Let \(\gamma(t)\) be a regular curve in \(\mathbb R^3\), then its curvature is \(\kappa = \frac{\|\gamma''\times \gamma'\|}{\|\gamma'\|^3}\).
proof. Since \(\gamma\) is regular, take \(s\) be a unit-speed map for \(\gamma\).
Note that \(s\) is the unit-length map, so that \((\frac{ds}{dt})^2 = (s')^2 = \|\gamma'\|^2 = \gamma'\cdot \gamma'\), differentiating both side gives
Then, we can insert these back to get
Using vector triple product identity
Note that \(\gamma'\) and \(\gamma''\times \gamma'\) are orthogonal by definition of cross product, so that \(\sin\theta = 1\)
Example: Compute curvature
(1) \(\gamma(t) = (\frac{(1+t)^{3/2} }{3},\frac{(1-t)^{3/2} }{3}, \frac{t}{\sqrt{2} })\)
(2) \(\gamma(t) = (\frac{4\cos t}{5}, 1-\sin t, \frac{-3\cos t}{5})\)
(3) \(\gamma(t) = (t, \cosh t)\)
(4) \(\gamma(t) = (\cos^3 t, \sin^3 t)\)
Source code
import plotly.graph_objects as go
import numpy as np
t = np.arange(-1, 1, 0.1)
d1 = go.Scatter3d(
x=0.333333 * (1 + t)**1.5, y=0.333333 * (1 - t)**1.5, z=2**(-0.5) * t,
mode='lines', name='(1)'
)
d3 = go.Scatter3d(
x=t, y=np.cosh(t), z=np.zeros(t.shape),
mode='lines', name='(3)'
)
t = np.arange(-1.5 * np.pi, 1.5 * np.pi, 0.01)
d2 = go.Scatter3d(
x=0.8 * np.cos(t), y=1 - np.sin(t), z=-0.6 * np.cos(t),
mode='lines', name='(2)'
)
d4 = go.Scatter3d(
x = np.cos(t)**3, y=np.sin(t)**3, z=np.zeros(t.shape),
mode='lines', name='(4)'
)
fig = go.Figure(data=[d1, d2, d3, d4])
fig.update_layout(margin=dict(l=0, r=0, b=0, t=0))
with open("../assets/curvature.json", "w") as f:
f.write(fig.to_json())
Claim 1
For some regular curve \(\gamma\), and its curvature o\(\kappa\), if \(\forall t,\kappa(t) > 0\), then \(\kappa\) is smooth.
proof. Let \(\gamma\) be regular, wlog assume \(\gamma\) is unit-length so that \(\kappa = \|\gamma''\|\).
Note that \(\gamma\) is smooth, hence all of its components are smooth, add is smooth, and square root is smooth on \((0, \infty)\). Therefore, \(\kappa = \|\gamma''\|\) is smooth on \((0,\infty)\).